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

Ok。そのため、小規模なコース管理システムの開発中に、メインウィンドウが定義されているクラス以外のクラスでタブを作成する必要があるという問題に遭遇しました。次のプログラムは私の問題を縮小します。

問題は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オブジェクトを効果的にwelcomeScreen2回 渡します。

self.welcomeScreen(b)と同等ですClass2.welcomeScreen(self, b)

于 2013-02-09T19:50:51.857 に答える