2013-02-09 40 views
0
import sys 
from PyQt4 import QtCore, QtGui 

class Class2(object): 
    def __init__(self,parent): 
     self.welcomeScreen(self) 


    def welcomeScreen(self,parent): 
     print 'hello' 
     self.centralwidget=QtGui.QWidget(parent) 
     self.tabWidget=QtGui.QTabWidget(self.centralwidget) 
     self.tabWidget.setGeometry(QtCore.QRect(0,0,661,511)) 
     self.tab=QtGui.QWidget() 
     self.lineEdit=QtGui.QLineEdit(self.tab) 
     self.tabWidget.addTab(self.tab,"") 
     self.tabWidget.show() 



class Class1(QtGui.QMainWindow): 
    def __init__(self): 
     super(Class1, self).__init__() 
     self.func() 

    def func(self): 
     ex=Class2(self) 





def main(): 
    app = QtGui.QApplication(sys.argv) 
    mw = Class1() 
    mw.show() 
    sys.exit(app.exec_()) 


if __name__=='__main__': 
    main() 

好的。所以在開發一個小型課程管理系統的過程中,我遇到了一個問題,我需要在類中創建選項卡,而不是定義主窗口。以下程序縮小了我的問題。關於在PyQt中創建制表符的困惑

問題出在welcomeScreen(self, parent)函數,其中我需要添加一個選項卡小部件。 錯誤是:TypeError: QWidget(QWidget parent=None, Qt.WindowFlags flags=0): argument 1 has unexpected type 'Class2'

回答

0

這一行:

self.welcomeScreen(self) 

應該

self.welcomeScreen(parent) 

您有效地傳遞Class2對象welcomeScreen兩次。

self.welcomeScreen(b)相當於Class2.welcomeScreen(self, b)

+0

老鼠!我現在有點蠢。 – sudeepdino008 2013-02-09 20:48:37