import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QMenu, QToolButton
from PySide6.QtCore import QObject, Slot
from ui_mainwindow import Ui_MainWindow # ваш сгенерированный файл из .ui
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
# Создаём меню
menu = QMenu(self)
# Добавляем пункты
action1 = menu.addAction("Пункт 1")
action2 = menu.addAction("Пункт 2")
action3 = menu.addAction("Пункт 3")
# Подключаем обработчики
action1.triggered.connect(lambda: self.on_menu_selected("Пункт 1"))
action2.triggered.connect(lambda: self.on_menu_selected("Пункт 2"))
action3.triggered.connect(lambda: self.on_menu_selected("Пункт 3"))
# Привязываем меню к кнопке
self.pushButton.setMenu(menu)
# (Опционально) Меню открывается по клику, а не по удержанию
self.pushButton.setPopupMode(QToolButton.InstantPopup)
def on_menu_selected(self, text):
print(f"Выбрано: {text}")
# Здесь можно сделать что-то полезное
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())