桌面应用启动模板
Application
- QApplication类用于管理图形用户界面应用程序的控制流和主要设置,可以说QApplication是PyQt的整个后台管理的命脉。任何一个使用PyQt开发的图形用户界面应用程序,都存在一个QApplication对象。
- 比如它管理着初始化,程序入口参数的处理,用户事件(点击,输入,拖拽)分发给各对应的控件等等。
- 必须在任何GUI对象创建前,先创建它。
- PyQt5.QtWidgets下。
创建一个主窗口
PyQt5中的主窗口类型:
- QMainWindow : 可以包含菜单栏,工具栏,状态栏,标题栏,是最常见的窗口形式。
- QDialog:对话窗口的基类,一般用于执行一些短期任务,无上述几个栏。
- QWidget:不确定窗口的用途就使用Widget。
主窗口显示
- 使用窗口对象的show方法显示主窗口
退出主窗口
- 使用sys.exit()方法退出可以确保程序完整的结束。
- 在这种情况下系统的环境变量会记录程序是如何退出的。
- 如果程序运行成功,那么exec_()的返回值为0,否则为非0。
- sys.exit(app.exec_())
代码生成的GUI使用
- sys.argv参数是一个来自命令行的参数列表,Python脚本可以在shell中运行。这是我们用来控制应用启动的一种方法。
- app.exec_() —— 消息循环结束之后,进程自然也会结束。
- sys.exit(app.exec_()) —— 消息循环结束之后返回0,接着调用sys.exit(0)。
代码图示
设置步骤
# setWindowTitle 设置窗口标题
# setWindowIcon 设置窗口图标
app = QApplication(sys.argv)
window = QWidget()
window .resize(250, 150)
window .move(300, 300)
window .setWindowTitle('First Window')
window .setWindowIcon(QIcon('dog.png'))
window .show()
sys.exit(app.exec_())
代码模板
from PyQt5.QtWidgets import QMainWindow, QApplication
import sys
from PyQt5.QtGui import QIcon
class FirstMainWin(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle("First GUI")
self.setWindowIcon(QIcon("dog.png"))
self.status = self.statusBar()
self.status.showMessage("信息显示5s")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = FirstMainWin()
window.show()
sys.exit(app.exec_())
QT designer生成的GUI使用
直接load生成的ui
- 使用PyQt5下的uic下的loadUi方法。self.ui =uic.loadUi(r"pachong.ui")。
- 然后自定义set_ui方法,调用。
- 其它同 代码生成的GUI使用的介绍。
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QIcon
from PyQt5 import uic
import sys
class Mainwindow:
def __init__(self):
self.ui = uic.loadUi(r"pachong.ui")
self.set_ui()
def set_ui(self):
self.ui.setWindowTitle('First Window')
self.ui.setWindowIcon(QIcon(r"dog.png"))
self.ui.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Mainwindow()
sys.exit(app.exec_())
将ui文件转为py文件
- 先创建QMainWindow对象,然后创建ui对象(ui转成的py文件中的类)
- 调用其setupUi方法。
- 其它同 代码生成的GUI使用的介绍。
app = QApplication(sys.argv)
main_window = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(main_window)
main_window.show()
sys.exit(app.exec())