PyQt4 - 删除QWidgets并创建新的

时间:2016-11-11 17:50:05

标签: qt pyqt pyqt4

"我想删除并重新实例化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的概念,但我非常感谢一些帮助。谢谢!

0 个答案:

没有答案