1、 打开Qt Designer选择一个模板
2、按照以下步骤建立窗体界面(下面步骤从《Python Qt GUI快速编程》的7.1节摘录)
3、 从Qt Designer生成的xxx.ui文件生成Python代码
cmd中打开xxx.ui所在路径例如:cd C:/work
然后输入pyuic5 -o xxx.py xxx.ui 回车.其中,
-o 后的参数为输出文件的名称
-o 后第二个参数即为生成的ui文件的名称
如果建立好了PyCharm的开发环境也可以通过右键选择xxx.ui文件
然后选择扩展工具,PyUIC直接生成xxx.py
4、 使用上一步生成的xxx.py
这里我自动生成的代码如下:

在使用Qt Designer创建用户界面时,利用多重继承的方法会创建一个子类,
这样就可以把打算赋予用户界面行为的代码放到这里。这样就把界面设计和个
人的具体行为逻辑分离,是一种很好的解耦方法。因此新建一个my_test.py文
件,继承上面负责界面的test.py文件。my_test.py文件的内容如下:
我们先看看导入的模块:
第一个导入的是要用在代码中的常规表达式模块
import test导入了负责界面的test模块
后面是常规的Qt模块
现在看一下这个子类:
多重继承的第一个类是QMainWindow类,因为界面用了MainWindow模板,
如果界面用的QWidget,那第一个就要继承QWidget。然后第二个要继承
的是test模块中的Ui_MainWindow。
关注一下初始化函数的super调用,这个是调用父类的初始化方法
然后就是调用setupUi这个函数(《Python Qt GUI快速编程》中的说明摘录如下)
初始化函数最后调用我们自己定义的方法,updateUi()用来初始化一些默认状态。

即使用上一步生成的xxx.py一般要经过下面的步骤:
1、 另外新建一个py文件;
2、 导入xxx.py和用到的模块;
3、 新建一个子类,用多重继承的方式继承xxx.py中的类;
4、 这个子类的初始化函数中调用super(xxx,xxx)__init__(parent)调用父类的初始化函数
5、 这个子类的初始化函数中调用setupUi()建立Ui和启动信号槽的自动连接机制
6、 这个子类的初始化函数中调用updateUi()实现自己的初始化代码
7、 编写updateUi()函数
8、 编写处理信号的槽函数
9、 编写其他函数
我们下面再看看setupUi()这个函数支持的信号槽机制在代码上是怎么实现的。
由于初始化函数中调用了setupUi(),定义成“on_xxx控件_xxx信号”的函数会
自动连接到对应的信号上,如下面的on_findLineEdit_textEdited(self,text)函
数,自动连接到findLineEdit控件的textEdited信号上。

我们可以看到@pyqtSlot()修饰符,使用修饰符的目的是为了区分各个具有相同名字
但是不同参数的信号。如下图@pyqtSlot后面是可以跟不同参数的。
5、 Mian文件代码编写

Importsys 是因为用到了sys.argv参数
app= QApplication(sys.argv)

ui= myui(text)
生成ui对象
ui.show()

最后调用
app.exec_()
则Mian文件代码主要包含:
1、 app = QApplication(sys.argv)
2、 生产UI对象
3、 调用show()方法
4、 调用app.exec_()进入消息循环
6、例子工程见下面github链接
代码运行环境PyQt5 UI code generator 5.9.2
Python 3.6
https://github.com/philipyou/PyQt_QtDesigner.git