【发布时间】:2018-05-13 08:37:10
【问题描述】:
我有一个程序,它使用带有多个输入框的输入选项卡供用户填写,当这些输入框被填写时,我点击运行,另一个程序将运行输入的数据。我希望我的程序有一个带有加号的选项卡按钮,它将动态复制选项卡,以便我可以运行多个实例。我希望每个选项卡都使用相同的名称,但最后有一个变体 - 例如“EntryBox0”、“EntryBox1”、“EntryBox2”。
是否有一种简单的方法可以做到这一点,同时在所有选项卡中保持格式(小部件位置)相同?
我的第一个想法是手动编写多个选项卡,并为每个选项卡设置一个隐藏/取消隐藏按钮,但这会产生更多代码。
我想在“Tab 2”旁边添加 + 号。所有选项卡都将相同。这些小部件将具有相同的名称,但在末尾有一个动态数字来标识正在使用的选项卡。
from Stage import Ui_Form
from Tabs import Ui_TabPage
class TabPage(QWidget, Ui_TabPage):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
class Stage(QMainWindow, Ui_Form):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
button = QtWidgets.QToolButton()
button.setToolTip('Add New Tab')
button.clicked.connect(self.addNewTab)
button.setIcon(self.style().standardIcon(
QtWidgets.QStyle.SP_DialogYesButton))
self.tabWidget.setCornerWidget(button, QtCore.Qt.TopRightCorner)
self.addNewTab()
def addNewTab(self):
text = 'Tab %d' % (self.tabWidget.count() + 1)
self.tabWidget.addTab(TabPage(self.tabWidget), text)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Stage()
window.setGeometry(600, 100, 300, 200)
window.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python pyqt pyqt5 qtabwidget