2016-12-02 79 views
-1

我是python的初學者,但我的Java和Android的OOPS概念足夠強大,足以激勵我在python中製作一些工具。 我正在使用PyQt開發應用程序。在我的應用程序中使用了很多QTabWidget,並且在每個TAB小部件中都有很多UI控件。請參閱相同的截圖。 enter image description herePyQt UI事件控制隔離

所有的整個工具的事件控制我已經保存在一個單一的文件,但現在我想分離它基於一個單獨的python文件每個QTab在Tab中的事件控制。

我的項目文件中的建築看起來像:

enter image description here

我知道這將是一些很容易的事情,但考慮到我的Python經歷我發現很難。我真的很感激代碼片段的例子。因爲我能夠從單獨的文件控制真正複雜的QThread,但無法獲得如何爲UI控件執行操作。

我試圖使一個文件,它就像我的主題類製成,但與參數傳遞厚望超

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()

例外:

類型錯誤:INIT()需要完全3個參數(1給出)

+1

雖然整個事情看起來對我來說更像是一些問題,但文本中的任何地方都沒有問題。我想,將問題分解成不同的小問題並分別詢問每個問題是非常好的,突出顯示實際的具體問題,並在必要時提供顯示錯誤的最小運行示例。 – Trilarion

+0

@Trilarion剛剛工作 –

回答

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) 

問題傳遞參數在初始化(父),並試圖獲得的對象MainGUI直接而不是作爲參數來自MainWindow的數字表