2

我正在开发一个用于 GUI 的带有 python 和 PyQt4 的小型应用程序。我想要完成的是拥有一个选项卡式 GUI,当用户单击菜单项时,所采取的操作会将一个选项卡添加到 QTabWidget。我目前无法采取行动来做这样的事情。我尝试过手动和使用 QT 设计器创建 GUI,但如果可能的话,我无法弄清楚如何获得将选项卡添加到 QTabWidget 的操作。这是我的python代码:

import sys
from PyQt4 import QtGui, uic

class TestGUI(QtGui.QMainWindow):
    def __init__(self):
        super(TestGUI, self).__init__()
        uic.loadUi('TEST.ui', self)
        self.show()

        self.actionAdd_Tab.triggered.connect(addTab)

def addTab():
    print 'This works'
    #Add new tab to GUI

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = TestGUI()
    sys.exit(app.exec_())

按下菜单项会在控制台上打印“This works”,所以我知道它调用了 addTab() 函数,但是如何让它添加一个 Tab?

让我知道您是否想查看 .ui 文件是否有帮助

4

2 回答 2

3

您的操作的处理程序需要创建选项卡标签,以及选项卡内容的小部件,以便可以将它们添加到选项卡小部件中。

作为开始,尝试这样的事情:

import sys
from PyQt4 import QtGui, uic

class TestGUI(QtGui.QMainWindow):
    def __init__(self):
        super(TestGUI, self).__init__()
        uic.loadUi('TEST.ui', self)
        self.actionAdd_Tab.triggered.connect(self.handleAddTab)

    def handleAddTab(self):
        contents = QtGui.QWidget(self.tabWidget)
        layout = QtGui.QVBoxLayout(contents)
        # add other widgets to the contents layout here
        # i.e. layout.addWidget(widget), etc
        self.tabWidget.addTab(contents, 'Tab One')

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = TestGUI()
    window.show()
    sys.exit(app.exec_())
于 2013-11-08T17:47:14.063 回答
0

QTabWidget 的addTab()方法,巧合地同名,增加了一个选项卡。

于 2013-11-08T16:04:49.423 回答