我是python的初学者但是我的Java和Android的OOPS概念非常强大,足以激励我在python中制作一些工具。 我正在使用PyQt开发应用程序。在我的应用程序中,使用了很多QTabWidget,并且在每个TAB小部件中都有很多UI控件。请看截图同样的。
整个工具的所有事件控制都保存在一个文件中,但现在我想根据每个QTab的一个单独的python文件来隔离它,以便在Tab中进行事件控制。
我的项目文件架构如下:
我知道这将是一件非常简单的事情,但考虑到我使用Python的经验,我觉得很难。我非常感谢代码片段的示例。因为我能够从单独的文件控制真正复杂的QThread但是无法知道如何为Ui控件执行它。
我尝试为它创建一个文件,就像我为Thread类创建的那样,但最终将参数传递给super
from generated.MainGUI import Ui_MainWindow
class SemiAuto_Create_Load(QtGui.QMainWindow):
def __init__(self,parent=none):
super(SemiAuto_Create_Load, self).__init__()
self.ui = Ui_MainWindow
self.ui.setupUi(self)
self.connectControlEvents()
尝试:self.sacl = SemiAuto_Create_Load()
例外:
TypeError: init ()只需要3个参数(给定1个)
答案 0 :(得分:0)
好的,我在
中进行了更改 Mainwindow.py
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
Profile().notify(None)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.connectButtons()
SemiAuto_Create_Load(self, self.ui)
并且
<强> SemiAuto_Create_Load
强>
class SemiAuto_Create_Load(QtGui.QMainWindow):
def __init__(self, parent, ui):
super(SemiAuto_Create_Load, self).__init__(parent)
self.ui = ui
self.connectControlEvents()
def connectControlEvents(self):
self.ui.load_vsa_radio.clicked.connect(self.onLoad_vsa_radio)
self.ui.create_vsa_radio.clicked.connect(self.onCreate_vsa_radio)
问题是在init()中使用parent传递参数并尝试直接获取MainGUI的对象,而不是从MainWindow获取参数