提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、现象描述?
-
二、使用步骤
- 1.生成界面类Py文件,获取到生成的Ui界面类
- 2.新建一个py文件,继承Ui界面类
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
PyQt使用designer每次设计Ui或者增加控件等操作后点击PyUic后py文件里面的内容会被重新覆盖掉,这就造成了一定困扰,故写此文章特地记录和帮助暂时未找到方法的兄弟们。
提示:以下是本篇文章正文内容,下面案例可供参考
一、现象描述
1、qtdesigner设计一个简单界面,如图:
2、使用PyUic将编辑的Ui文件生成py文件
3、当你对你的Ui界面做出修改时候,你再Pyuic你会发现你生成的py文件被覆盖了,这样就会导致我们在生成的py文件里面无法添加我们想要添加的代码,没关系看下面的使用步骤
二、使用步骤
1.生成界面类Py文件,获取到生成的Ui界面类
代码如下(示例):文章来源:https://www.toymoban.com/news/detail-779730.html
我生成的Ui界面类为:Ui_MainWdinow(如下代码所示)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1024, 768)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(380, 230, 161, 61))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1024, 26))
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.pushButton.setText(_translate("MainWindow", "按钮1"))
2.新建一个py文件,继承Ui界面类
继承关系如下代码:
# 先导入生成的Ui界面模块
from PyQt5.QtWidgets import QMainWindow
from MainWindow import Ui_MainWindow
# 继承
class ChildUiClass(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(ChildUiClass, self).__init__(parent=parent)
self.setupUi(self)
# 这样继承之后 你就可以在本文件中书写自己的程序而不会被影响
# 这样继承还有个好处就是后面你需要本界面调用其他界面的时候也很好操作
# 在main函数中调用
if __name__ == '__main__':
app = QApplication(sys.argv)
child_dlg = ChildUiClass()
# 例如下面这一行信号与槽的调用其他界面显示
# About_dlg = ABout()
# child_dlg .softversion.triggered.connect(About_dlg.show)
child_dlg .show()
sys.exit(app.exec_())
总结
以上是自己刚开始踩的一些坑,写下来让尚未解决问题的朋友参考参考,有啥问题联系我我及时纠正,非常感谢!文章来源地址https://www.toymoban.com/news/detail-779730.html
到了这里,关于Pyqt5继承被覆盖的Ui界面类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!