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

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

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

4

1 回答 1

0

这一行:

self.welcomeScreen(self)

应该

self.welcomeScreen(parent)

您有效地将Class2对象传递给welcomeScreen两次。

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

于 2013-02-09T19:50:51.857 回答