关于在PyQt中创建选项卡的困惑

时间:2013-02-09 19:27:12

标签: python qt pyqt pyqt4

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

确定。因此,在开发小型课程管理系统期间,我遇到了一个问题,我需要在课程中创建选项卡,而不是定义主窗口的选项卡。以下程序缩小了我的问题。

问题出在welcomeScreen(self, parent)函数中,我需要添加一个tab小部件。 错误是:TypeError: QWidget(QWidget parent=None, Qt.WindowFlags flags=0): argument 1 has unexpected type 'Class2'

1 个答案:

答案 0 :(得分:0)

这一行:

self.welcomeScreen(self)

应该是

self.welcomeScreen(parent)

您实际上已将Class2对象有效传递给welcomeScreen两次。

self.welcomeScreen(b)相当于Class2.welcomeScreen(self, b)