ui和python_python-如何在PyQT中将ui和实现分开?

在尝试将PyQT的UI与实现分开时,作者遇到了`TypeError`,指出`setupUi()`缺少参数。问题在于`self.setupUi();`需要改为`self.setupUi(self);`。此外,讨论了为何在`myUI.py`中`setupUi`函数需要`self, Form`作为参数,以便在UI组件中引用和操作。作者寻求理解这种设计的原因。" 79622489,7508504,Mac通过SSH配置提交Android Studio项目到GitLab,"['Git', 'GitLab', 'Android开发', '版本控制', 'SSH']
摘要由CSDN通过智能技术生成

我在尝试将ui和实现文件分开时遇到一个问题.

我使用QT创建器创建* .ui,然后将其转换为* .py

main.py

from PyQt5 import QtCore, QtGui, QtWidgets

from myUI import Ui_Form

import sys

class Prog(Ui_Form):

def __init__(self):

super().__init__();

def main():

Program = QtWidgets.QApplication(sys.argv);

MyProg=Prog();

MyProg.show();

Program.exec_();

if __name__=='__main__':

main();

myUI.py

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(QtWidgets.QWidget):

def __init__(self):

super().__init__();

self.setupUi();

def setupUi(self, Form):

Form.setObjectName("Form")

Form.resize(400, 300)

self.pushButton = QtWidgets.QPushButton(Form)

self.pushButton.setGeometry(QtCore.QRect(30, 230, 93, 28))

self.pushButton.setObjectName("pushButton")

self.pushButton_2 = QtWidgets.QPushButton(Form)

self.pushButton_2.setGeometry(QtCore.QRect(210, 250, 93, 28))

self.pushButton_2.setObjectName("pushButton_2")

self.textEdit = QtWidgets.QTextEdit(Form)

self.textEdit.setGeometry(QtCore.QRect(120, 80, 104, 87))

self.textEdit.setObjectName("textEdit")

self.retranslateUi(Form)

QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):

_translate = QtCore.QCoreApplication.translate

Form.setWindowTitle(_translate("Form", "Form"))

self.pushButton.setText(_translate("Form", "PushButton"))

self.pushButton_2.setText(_translate("Form", "PushButton"))

我的问题是

>我收到如下错误消息.

self.setupUi();

TypeError:setupUi()缺少1个必需的位置参数:“ Form”

但是如果我更改self.setupUi();进入self.setupUi(self);在myUI.py中

有用.我想知道为什么必须在self.setui()中调用self

>在myUI.py中,为什么没有def setupUi(self,Form):,而不是def setupUi(self):

我知道这是因为我们将Form视为变量,并将在以后使用它.但是,为什么我们需要它?或者我们可以将其创建为self.Form而不是调用Form

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值