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'
答案 0 :(得分:0)
这一行:
self.welcomeScreen(self)
应该是
self.welcomeScreen(parent)
您实际上已将Class2
对象有效传递给welcomeScreen
两次。
self.welcomeScreen(b)
相当于Class2.welcomeScreen(self, b)