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