PyQt4菜单操作为QTabWidget添加新选项卡

时间:2013-11-08 15:50:47

标签: python qt pyqt4 qtabwidget

我正在开发一个用于工作的小型应用程序w / python和用于GUI的PyQt4。我想要实现的是拥有一个标签式GUI,当用户点击菜单项时,所采取的操作会在QTabWidget中添加一个标签。我目前无法采取行动来做这样的事情。我已尝试手动创建GUI并使用QT设计器,但我无法弄清楚如果可能的话,如何获得向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文件是否有用,请告诉我

2 个答案:

答案 0 :(得分:2)

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

首先,尝试这样的事情:

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_())

答案 1 :(得分:0)

QTabWidget的addTab()方法,巧合地命名相同,添加了一个标签。