使用python进行开发过程中,不可避免会用到图形用户界面(Graphical User Interface,GUI),目前常用的GUI控件集有PyQt、Tkinter、wxPython、PyGTK等。
本文选用的控件集为PyQt5,开发环境如下:
安装包 | 版本号 |
---|---|
windows10 | 64bit |
PyCharm | 2017.2.3 |
python | 3.6.3 |
PyQt5 | 5.10 |
PyCharm中添加Qt Designer工具
- 在“File—>Settings—>Tools—>External Tools”中点击“+”号,添加外部工具;
- Program中填入“designer.exe”的路径,
eg.D:\ProgramData\Anaconda2\Library\bin\designer.exe
; - Working directory中填入
$FileDir$
。
PyCharm中添加Pyuic工具
- 在“File—>Settings—>Tools—>External Tools”中点击“+”号,添加外部工具;
- Program中填入“python.exe”的路径,
eg.D:\ProgramData\Anaconda2\python.exe
- Parameters中填入
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
; - Working directory中填入
$ProjectFileDir$
。
设计UI文件并转换成 .py 文件
将Qt Desiginer设计的界面保存为.ui
文件,在PyCharm中选中此文件,用添加的外部工具Pyuic
转换成同名的.py
文件。
生成的.py
文件中只有一个从object
类继承的Ui_MainWindow
的类,无法运行,需要新建一个python文件调用。
调用 .py 文件,界面与逻辑的分离
界面文件:这种由 .ui 文件编译而来的 .py 文件称为界面文件。
逻辑文件:由于界面文件每次编译都会初始化,所以需要新建一个 .py 文件调用界面文件,这个 .py 文件称为逻辑文件,也可以称为业务文件。
界面文件和逻辑文件是两个相对独立的文件,即实现了界面与逻辑的分离,也即“显示和业务逻辑的分离”。
逻辑文件的实现只需要新建一个CallFirstMainWin.py
文件,并继承至界面文件的主窗口类。
# 界面文件为 FirstMainWin.py
from FirstMainWin import *
# 继承至界面文件的主窗口类
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyMainWindow()
myWin.show()
sys.exit(app.exec_())