"我想删除并重新实例化QWidget。"我在PyQt4中编写GUI,为此我编写了继承自QGridLayout
的类。这些看起来像这样:
from PyQt4 import QtGui
class StartTab(QtGui.QGridLayout):
def __init__(self, mainWindow, tab):
super(StartTab, self).__init__(tab)
< body (whatever this tab needs) >
这里mainWindow
在某种程度上是菜单栏所属的GUI的框架窗口,并在程序启动时进行了实例化。所以像&#34;文件 - &gt;新项目&#34;将在本课程中处理。程序启动时,将在__init__
的{{1}}中创建标签,如下所示:
mainWindow
在from PyQt4 import QtGui, QtCore
from start_tab import StartTab
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
< some variables >
self.tabWidget = QtGui.QTabWidget(self)
self.tab1 = QtGui.QWidget()
self.startTab = StartTab(self, self.tab1)
self.tabWidget.addTab(self.tab1, 'Start Tab')
< some other tabs >
中我还有一个函数mainWindow
,当用户点击上面提到的&#34;文件 - &gt;时会调用它。新项目&#34;按钮。有我的问题。我尝试重新初始化newProject()
函数中的选项卡,以便删除旧选项卡,并在用户想要从正在运行的程序启动新项目时创建新选项卡。我不知道怎么回事。我尝试的只是复制newProject()
__init__
中的行:
mainWindow
但是这给我留下了一条错误消息:
QLayout:尝试添加QLayout&#34;&#34;到QWidget&#34;&#34;已经有了 布局
我知道我可能还没有理解整个Qt的概念,但我非常感谢一些帮助。谢谢!