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