PyQT5基本功能
*无特殊注明,所有案例只修改第一个案例的对应部分* ## 创建一个基本窗口 ```python import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * # 继承QWidget,用户界面的基本控件,提供了基本的应用构造器 # 默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window) class Example(QWidget): # 继承父类构造 def __init__(self): super().__init__() # 使用initUI()方法创建一个GUI self.initUI() # 初始化组件 def initUI(self): # 设置窗口x,y坐标,宽,高 # 坐标原点在屏幕左上角,x,y为窗口左上角的坐标 self.setGeometry(300, 300, 300, 250) # 分别设置x,y坐标,宽,高 """ self.move(300, 300) self.resize(300, 250) """ # 设置窗口标题 self.setWindowTitle('Title') # 显示控件 self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() # 进入应用的主循环中,调用exit()方法或直接销毁主控件时,主循环就会结束 sys.exit(app.exec_()) ``` ![](https://blog.coolcooltomato.com/uploads/article/基本窗口.png) ## 更改窗口图标 ```python # 初始化组件 def initUI(self): # 位置,宽高 self.setGeometry(300, 300, 300, 250) # 标题 self.setWindowTitle('Icon') # 设置图标 self.setWindowIcon(QIcon('cat.jpg')) # 显示控件 self.show() ``` ![](https://blog.coolcooltomato.com/uploads/article/更改图标.png) ## 控件提示框 ```python # 初始化组件 def initUI(self): # 设置字体 QToolTip.setFont(QFont('SansSerif', 10)) # 鼠标悬停,显示提示框 self.setToolTip('This is a <b>QWidget</b> widget') # 创建一个按钮 btn = QPushButton('Button', self) # 设置大小,btn.sizeHint()为默认大小 btn.resize(btn.sizeHint()) # 设置坐标,以父元素左上角为原点 btn.move(50, 50) # 鼠标悬停在按钮,显示提示框 btn.setToolTip('This is a <b>QPushButton</b> widget') # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Tooltips') self.show() ``` ![](https://blog.coolcooltomato.com/uploads/article/控件提示框.png) ## 关闭窗口 ```python # 注意导入QCoreApplication类 from PyQt5.QtCore import QCoreApplication # 初始化组件 def initUI(self): # 创建按钮 qbtn = QPushButton('Quit', self) # 按钮初始化 qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) # 设置按钮事件(关闭窗口) qbtn.clicked.connect(QCoreApplication.instance().quit) # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Quit button') self.show() ``` ![](https://blog.coolcooltomato.com/uploads/article/关闭窗口.png) ## 消息盒子 ```python # 初始化组件 def initUI(self): # 不注释了 self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Message box') self.show() # 重写closeEvent方法 # 如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中 # 改变控件的默认行为,就是替换掉默认的事件处理 def closeEvent(self, event): # 创建一个消息框 # 参数分别代表self,标题栏,对话框,确认按钮,取消按钮,默认按钮 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() ``` ![](https://blog.coolcooltomato.com/uploads/article/消息盒子.png) ## 窗口居中 ```python # 初始化组件 def initUI(self): self.resize(300, 250) self.setWindowTitle('Center') # 调用自定义函数 self.center() self.show() # 自定义居中函数 def center(self): # 获得主窗口所在的框架 qr = self.frameGeometry() # 获取显示器的分辨率,然后得到屏幕中间点的位置 cp = QDesktopWidget().availableGeometry().center() # 然后把主窗口框架的中心点放置到屏幕的中心位置 qr.moveCenter(cp) # 然后通过move函数把主窗口的左上角移动到其框架的左上角 self.move(qr.topLeft()) ``` ![](https://blog.coolcooltomato.com/uploads/article/窗口居中.png)
创建时间:2023-04-18
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链