关于在PyQt中创建选项卡的困惑
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'
1 个回答
0
这一行:
self.welcomeScreen(self)
应该是
self.welcomeScreen(parent)
你实际上是把 Class2
的对象传给 welcomeScreen
两次。
self.welcomeScreen(b)
相当于 Class2.welcomeScreen(self, b)