#!/usr/bin/python3
# -*- coding: utf-8 -*-"""
ZetCode PyQt5 tutorialThis example shows a tooltip on
a window and a button.Author: Jan Bodnar
Website: zetcode.com
Last edited: August 2017
"""import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,QPushButton, QApplication)
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QCoreApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):QToolTip.setFont(QFont('SansSerif', 10))self.setToolTip('This is a QWidget widget')# 这里的内容是button进行设置btn = QPushButton('exit', self) # 实例化btnbtn.setToolTip('This is a QPushButton widget') # 设置btn提示框btn.resize(btn.sizeHint()) # 使用sizehint方法设置默认btn的大小btn.move(50, 50) # 将btn放到合适的位置# 设置btn的触发事件btn.clicked.connect(QCoreApplication.instance().quit)# 这是对窗体进行设置self.setGeometry(300, 300, 300, 200) # 这条语句相当于resize()和move()两条语句self.setWindowTitle('wgw') # 设置好窗口的标题self.show()# 请你写一个程序的入口程序,3q
if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
事件传递系统在PyQt5内建的single和slot机制里面。
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplicationclass Example(QWidget):def __init__(self):print('构造函数开始执行')super().__init__()self.initUI()print('构造函数执行完毕')def initUI(self):print('正在初始化UI')self.setGeometry(700, 400, 300, 250)self.setWindowTitle('Practice5')self.show()print('初始化UI结束')def closeEvent(self, event):# 弹出提示框reply = QMessageBox.question(self, 'Message', 'Are you want 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_())
如果关闭QWidget,就会产生一个QCloseEvent

根据相关函数提示进行学习
import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplicationclass Example(QWidget):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):print('初始化UI的函数执行')self.resize(450, 300)self.move(300, 300)self.setWindowTitle('test6')self.center() # 调用居中函数让组件完成居中self.show()def center(self):print('窗体居中的函数执行')qr = self.frameGeometry() # 获得主窗口所在的框架。cp = QDesktopWidget().availableGeometry().center() # 获取显示器的分辨率,然后得到屏幕中间点的位置。qr.moveCenter(cp) # 然后把主窗口框架的中心点放置到屏幕的中心位置。# 真正移动窗口的语句在这里self.move(qr.topLeft())# 程序入口程序
if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
主窗口和框架不是一回事? 确实是的
我们做的事情

注意函数得到的返回值的类型要对应上
最好是要有见名知意的效果