gpt4 book ai didi

python - 更新python ui而不重写所有按钮事件

转载 作者:行者123 更新时间:2023-12-01 01:56:56 26 4
gpt4 key购买 nike

我正在寻找一种更好的方法来处理来自 QtDesigner 的 python UI“更新”而不覆盖按钮事件。我现在得到的工作流程是:

  1. 在 QtDesigner 中设计 UI 布局
  2. 通过 pyuic5 将 .ui 转换为 .py
  3. 在.py文件中添加按钮事件
  4. 执行.py以查看窗口和按钮操作

因此,如果我的 UI 不断更改设计,如何保留添加到 .py 中的所有按钮事件,而不在转换后被覆盖?谢谢。

最佳答案

回答我自己的问题,我发现有三个python文件。 Main.py、CallUI.py 和 MainWindow.py。 (按你想要的命名。)因此,您可以继续重新生成 UI 并覆盖 MainWindow.py,而无需清除您编写的按钮事件。

1.Main.py 是启动所有内容的那个,名称==“ma​​in”。调用CAllUI.py的setup函数。

#Main.py
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import CallUI


def setUp():
CallUI.setUpWindow()
raw_input()


if __name__ == "__main__":
setUp()

2.CallUI.py是使用“QtWidgets.QApplication(sys.argv)”来显示UI并添加按钮单击功能的。

#CallUI.py
import sys
from MainWindow import Ui_Dialog
from PyQt5 import QtCore, QtGui, QtWidgets
import os

class CallUI(QtWidgets.QWidget):
def __init__(self):
QtWidgets.QWidget.__init__(self)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.setUpBtnconnect()

def setUpBtnconnect(self):
self.ui.pushButton.clicked.connect(self.myFunction)

def myFunction(self):
os.system("ipconfig")
raw_input()

def setUpWindow():
app = QtWidgets.QApplication(sys.argv)
nowWindow = CallUI()
nowWindow.show()
sys.exit(app.exec_())

3.MainWindow.py是你从pyuic5转换而来的,它描述了所有的UI布局。

#MainWindow.py
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("MainWindow")
Dialog.resize(466, 417)
self.centralwidget = QtWidgets.QWidget(Dialog)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 260, 75, 23))
self.pushButton.setObjectName("pushButton")
self.menubar = QtWidgets.QMenuBar(Dialog)
self.menubar.setGeometry(QtCore.QRect(0, 0, 466, 21))
self.menubar.setObjectName("menubar")
self.statusbar = QtWidgets.QStatusBar(Dialog)
self.statusbar.setObjectName("statusbar")

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

def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
self.pushButton.setText(_translate("MainWindow", "PushButton"))

关于python - 更新python ui而不重写所有按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50060030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com