Я пытаюсь добавить новые вкладки в QTabBar, и это не удалось.
Я пытаюсь добиться того, чтобы при нажатии на значок «Добавить» появилось 3 пункта меню.В зависимости от того, какой элемент выбран, он будет создавать новую вкладку помимо значка «Добавить».
Например, если я выбрал опцию - food
, графический интерфейс будет выглядеть примерно так:
| + | food |
В моем set_new_tab()
, хотя он, кажется, распечатал выбранную мной опцию, addTab
, похоже, ничего не делает.
Интересноесли я что-то упустил, или если QTabBar
следует использовать вместе с QTabWidget
?
Это мой код:
class MyWin(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyWin, self).__init__()
self.tab_bar = QtGui.QTabBar()
self.add_button = QtGui.QToolButton(self)
self.add_button.setIcon(QtGui.QIcon('add.png'))
self.add_button.setMenu(self.set_menu())
self.add_button.setPopupMode(QtGui.QToolButton.InstantPopup)
self.tab_bar.setTabButton(
0,
QtGui.QTabBar.ButtonPosition.RightSide,
self.add_button
)
def set_menu(self):
menu_options = ['food', 'drinks', 'snacks']
qmenu = QtGui.QMenu(self.add_button)
for opt in menu_options:
qmenu.addAction(opt, partial(self.set_new_tab, opt))
qmenu.addAction
return qmenu
def set_new_tab(self, opt):
print ">>> opt clicked on : ", opt
self.tab_bar.addTab(opt) # This does not seems to creating new tabs..
Благодарим за любые советы.