Python支持多种图形界面的第三方库,包括:
Tk,wxWidgets,Qt,GTK等等。
Tk(Tkinter)是Python自带的库,使用Tkinter,无需安装任何包,就可以直接使用。
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。
一般的框架,需要熟悉很多的API,PyQt也能实现类似c#一样GUI开发, 只需要拖拽控件,无需熟记太多的API。
本文就探索用pycharm 和 PyQt5 开发python GUI程序。
1. 配置环境。
a. 下载并安装QtDesigner。
b. 将QtDesigner集成到Pycharm中,如图:
编写代码。
PyQt的核心就是信号与槽。
先拖拽几个控件,通过上图定义的工具,就可以轻松的定义UI.
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(180, 80, 47, 13)) self.label.setObjectName("label") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(390, 130, 47, 13)) self.label_2.setObjectName("label_2") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(190, 150, 75, 23)) self.pushButton.setObjectName("pushButton") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label.setText(_translate("MainWindow", "show")) self.label_2.setText(_translate("MainWindow", "TextLabel")) self.pushButton.setText(_translate("MainWindow", "PushButton"))
然后定义一个main函数调用一下。
import sys from passlevel.first import Ui_MainWindow from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import pyqtSlot class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self): super(MyWindow, self).__init__() self.setupUi(self) @pyqtSlot() def on_pushButton_clicked(self): print("hello") if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) mywindow = MyWindow() mywindow.show() sys.exit(app.exec_())
运行成功。
打包。
安装一个pyinstaller
pip install pyinstaller
然后运行命令:
pyinstaller -F -w yourscript
参数说明:
-F 表示生成单个可执行文件
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标
最终效果就是这样子的。
以上就是Python中图形界面(GUI)安装及用法。更多Python学习推荐:PyThon学习网教学中心。