问题:只要一修改ui文件,就需要重新生成Python文件,刚才添加的代码就都没有了
(UI界面更改后,由.ui文件生成.py文件,原先生成的.py文件会变化,且在这个基础上更新的代码会被覆盖,因此需要左到)
1、创建UI窗体
用Qt Designer设计相应的界面
2、转换为python文件
将.ui文件用PyUIC转换为.py文件
3、继承
新建一个.py文件,如maintesthj.py,用于继承UI窗体类
4、实现逻辑
在maintesthj.py中,实现外部一些显示逻辑
5、在main中调用
(相当于UI代码不变,用继承把接口调出来,然后对UI进行操作,而不是直接在UI内部操作)
from PyQt5 import QtWidgets, QtGui, QtCore # 导入窗体的类,窗体,图形,核心控件 from demo1 import Ui_LoginWindow # 导入自己文件,自己的类导入,继承的父类导入了 import sys # 编写自己的类,继承 class MainWindow(QtWidgets.QMainWindow,Ui_LoginWindow): # 编写初始化方法 def __init__(self,parent = None): # 调用父类的初始化方法 super(MainWindow, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) # 启动PyQt窗体 main_window = QtWidgets.QMainWindow() # 创建窗体对象 ui = MainWindow() # 创建PyQt设计的窗体对象,创建的是子类的对象 ui.setupUi(main_window) # 调用对象方法进行初始化设置 main_window.show() # 显示窗体 sys.exit(app.exec_()) # 程序关闭推出进程
其中,demo1是UI的文件名,Ui_LoginWindow是demo1中的类的名称
上面编写的自己的类
在MainWindow中,可以编辑各种逻辑,比如密码变成点点
运行即可