pyQt的基本使用

1. 基本窗口

import sys
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
    appProcess = QApplication(sys.argv)
    
    window = QWidget()
    window.setWindowTitle('hello')
    window.show()
    #显示窗口
    
    sys.exit(app.exec_())
  • QApplication(), 该类的对象每个窗口都需要有一个,用于处理事件
  • QWidget(), 是最基本的窗口类

2. 用类的实例来创建窗口

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, 
    QPushButton, QApplication)
from PyQt5.QtGui import QFont    

class WindowTest(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):   
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Tooltips')    
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = WindowTest()
    sys.exit(app.exec_())
  • 定义了一个叫WindowTest的类,其中有两个函数:初始化函数__init__(self)和定义的initUI
  • __init(self)_: 通过super().__init__()调用父类的初始换函数,其中super()指代父类
  • 在创建定义的WindowTest类的对象时,会自动运行初始化方法,也就是我们在WindowTest类中定义的__init(self)_方法。

3. 按钮、按钮提示与字体调整

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip, 
    QPushButton, QApplication)
from PyQt5.QtGui import QFont    

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
      	#创建按钮变量
        btn = QPushButton('Button', self)
        #定义所有按钮的提示内容
        self.setToolTip('This is a <b>QWidget</b> widget')
        #定义按钮提示的字体
        QToolTip.setFont(QFont('SansSerif', 10))
        #将按钮设为默认大小
        btn.resize(btn.sizeHint())
        self.setWindowTitle('Tooltips')    
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • QPushButton('NameOfButton', window_whereButBelongs): 定义按钮,第一个参数为按钮显示的字符;第二个参数为按钮附着的页面,在本例中为创建的QWidget窗口
  • self.setToolTip('content'): 定义了该窗口所有按钮提示的文字,content为其中的内容
  • QToolTip.setFont(QFont('SansSerif', 10)): 定义了按钮提示的字体与大小

4. 消息窗口——退出确认提示

import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):               
        self.setGeometry(300, 300, 250, 150)        
        self.setWindowTitle('Message box')    
        self.show()
        
    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message',"Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()        

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • event: 在closeEvent中用到的event,属于QCloseEvent。在关闭窗口Qwidget时,该操作会被event接收,并改变关闭窗口默认操作——执行定义的函数
  • QMessageBox.question(self, 'Title',"content", QMessageBox.Yes | QMessageBox.No, QMessageBox.No): 该函数有五个个参数,self, title, content, QMessageBox.Yes | QMessageBox.No, QMessageBox.No
    • title: 退出提示框的标题
    • content: 推出提示框显示的内容
    • QMessageBox.Yes | QMessageBox.No: 推出提示框显示的两个按钮,中间用|分隔开来。其中两个按钮的内容是QT中定义好的yes和no
    • QMessageBox.No: 第四个参数是默认选项,这里默认选了no
posted @ 2022-08-13 09:37  dysonkkk  阅读(246)  评论(0编辑  收藏  举报