pyqt学习

什么是Pyqt

  Pyqt是python的一个第三方模块,它主要支持gui编程,和Python的Tkinter、PyGTK、wxPython;另外,Qt是一个跨平台的C++应用程序开发框架,广泛用于开发GUI程序;

Qt Designer

  Python图形界面,可以通过载入pyqt模块,通过代码实现,也可以通过Qt Designer来实现,它可以通过拖拽、点击完成图形界面的设计,最后得到的是ui文件,pyqt支持将ui文件转换成py文件,即可以生成py代码。下面给出我的designer.exe的路径

D:\Anocanda\Anaconda\envs\py37\Library\bin\designer.exe D:\Anocanda\Anaconda\Library\bin\designer.exe

  envs下的py37是我的一个用来写python的虚拟环境;

  在QT Designer中设计界面,首先需要选择界面模板,主要分三种:

  1. Main Window
  2. Widget
  3. Dialog

  具体选择区别,这里就不说了;

ui文件生成python代码

  1. 方法1:
1
python -m PyQt5.uic.pyuic 文件名.ui -o 文件名.py
  1. 方法2:使用pyuic5
1
pyuic5 文件名.ui -o 文件名.py

  直接在cmd中使用,或者在pycharm的终端中使用,注意ui文件的路径,如果不在当前路径,需要是绝对路径。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: utf-8 -*-  

# Form implementation generated from reading ui file 'FirstQtWindow.ui'
#
# Created by: PyQt5 UI code generator 5.12.3
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(828, 457)

self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))

  上述代码是,一个空的,无任何控件的一个Widget模板的窗体,那么怎么使用它呢,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  
from PyQt5.QtWidgets import QApplication,QWidget
import sys
from FirstQtWindow import Ui_Form

class Win(QWidget,Ui_Form):
def __init__(self):
super(Win, self).__init__()
self.setupUi(self)


if __name__ == '__main__':
app = QApplication(sys.argv)
emptywindow = Win()
emptywindow.show()
sys.exit(app.exec_())