2013-02-09 19 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