美文网首页
PyQT5杂笔1

PyQT5杂笔1

作者: ayusong870 | 来源:发表于2020-04-22 21:41 被阅读0次
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()    
    sys.exit(app.exec_())
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
class Example(QWidget):    
    def __init__(self):
        super().__init__()        
        self.initUI()       
    def initUI(self):        
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))    
        self.show()        
if __name__ == '__main__':    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

1. 响应事件EVENT:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication

def closeapp():
    sys.exit(app.exec_())
class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        qbtn = QPushButton('Quit', self)
        #qbtn.clicked.connect(QCoreApplication.instance().quit)
        qbtn.clicked.connect(closeapp)
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)       
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

2. Sender——信号从哪儿来:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        btn1 = QPushButton("Button 1", self)
        btn1.move(30, 50)

        btn2 = QPushButton("Button 2", self)
        btn2.move(150, 50)
      
        btn1.clicked.connect(self.buttonClicked)            
        btn2.clicked.connect(self.buttonClicked)
        
        self.statusBar()
        
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Event sender')
        self.show()
        
        
    def buttonClicked(self):
      
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
sys.exit(app.exec_())

3. 模态对话框,首先要是一个对话框!!!

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QDialog,QMainWindow, QPushButton, QApplication
class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        btn1 = QPushButton("Button 1", self)
        btn1.move(30, 50)

        btn2 = QPushButton("Button 2", self)
        btn2.move(150, 50)
      
        btn1.clicked.connect(self.buttonClicked)            
        btn2.clicked.connect(self.buttonClicked)
        
        self.statusBar()
        
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Event sender')
        self.show()
        
        
    def buttonClicked(self):
      
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
        d = Dialog2()
        d.setModal(True)
        d.exec_()
        print('close')
        
class Dialog2(QDialog):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        qbtn = QPushButton('Quit', self)
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)       
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')    
       
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

4 运用QT Desinger

仅适用代码构建GUI,有一些不方便,可以借用QT Designer将GUI设计出来,保存为xxx.ui文件,然后通过pyqt5自带的pyuic5命令将ui文件转换问可用的py文件,下面在Designer中简单设计一个界面,包含Menu,status Bar和一个按钮,保存为testGUI.ui。



然后再cmd命令行中输入:G:\work\python>pyuic5 testGUI.ui -o testGUI.py便将ui文件转换为pyqt中可以使用的py文件,代码内容如下:从生成的代码分析。

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(20, 40, 36, 36))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionNew = QtWidgets.QAction(MainWindow)
        self.actionNew.setObjectName("actionNew")
        self.actionSave = QtWidgets.QAction(MainWindow)
        self.actionSave.setObjectName("actionSave")
        self.actionLoad = QtWidgets.QAction(MainWindow)
        self.actionLoad.setObjectName("actionLoad")
        self.menu.addAction(self.actionNew)
        self.menu.addAction(self.actionSave)
        self.menu.addAction(self.actionLoad)
        self.menubar.addAction(self.menu.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "00"))
        self.menu.setTitle(_translate("MainWindow", "游戏"))
        self.actionNew.setText(_translate("MainWindow", "新建游戏"))
        self.actionSave.setText(_translate("MainWindow", "保存"))
        self.actionLoad.setText(_translate("MainWindow", "读取"))

若要使用Ui_MainWindow先创建一个QMainWindow,然后传递给ui初始化。

app = QApplication(sys.argv)

    window = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(window)
    window.show()
    sys.exit(app.exec_())

相关文章

  • PyQT5杂笔1

    1. 响应事件EVENT: 2. Sender——信号从哪儿来: 3. 模态对话框,首先要是一个对话框!!! 4 ...

  • Python杂笔1

    PS:以下内容针对python3 1. 数学操作符,优先级由高到低: 操作符操作例子求值为**指数2 ** 38%...

  • python使用PyQt5的简单方法

    一:安装PyQt5 pip install pyqt5 二:PyQt5简单使用 1:使用PyQt5创建一个简单窗口...

  • python使用PyQt5的简单方法

    一:安装PyQt5 pip install pyqt5 二:PyQt5简单使用 1:使用PyQt5创建一个简单窗口...

  • 如何用 PyQt5 快速构建一个简单的 GUI 应用

    1. 介绍 Python GUI 常用的 3 种框架是:Tkinter、wxpython、PyQt5 PyQt5 ...

  • pycharm python3 pyqt5搭建

    1、安装PyQt5 pip install pyqt5 2、安装pyqts-tools pip install p...

  • 杂笔

    最近几天,老是想起一个人。 一个从别人口中得知的,素不相识的人。 只知道她的QQ网名叫“小鱼”。 在没有微信的年代...

  • 杂笔/

    杂笔 与我最特别的日子/雪歌 雨,划破了天际,就这样肆孽的下着。似一个叛逆的少年,用美丽的花季在青葱的岁月...

  • 杂笔

    标准输出可能不会立即刷新。如果需要即时输出调试信息,请避免使用标准输出。测试发现,使用标准输出到屏幕时,如果加换行...

  • 杂笔

    最近九寨沟地震刷遍了我的各个网络社交平台,不过北方老家的朋友圈基本对此事相关甚少。 家在东北,人在昆明,所以每当西...

网友评论

      本文标题:PyQT5杂笔1

      本文链接:https://www.haomeiwen.com/subject/jxvcrhtx.html