Можно ли как-то к кнопке меню привязать действие?
Хочу, чтобы при нажатии на кнопку меню "Выход" программа закрывалась.
Но, пока что удается сделать это только для подменю, т.к. они интерпретируются как QAction, а сам "Выход" нет.
Подскажите, пожалуйста, как я могу это сделать? Либо в Qt Designer либо кодом.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
void QMenu::aboutToShow()
Этот сигнал излучается непосредственно перед тем, как меню отображается пользователю.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, \
QAction, qApp, QTextEdit
class MenuDemo(QMainWindow):
def __init__(self):
super().__init__()
bar = self.menuBar()
file = bar.addMenu('File')
quit = bar.addMenu('Quit')
open_action = QAction('Open', self)
open_action.setShortcut('Ctrl+O')
save_action = QAction('Save', self)
save_action.setShortcut('Ctrl+S')
file.addAction(open_action)
file.addAction(save_action)
file.triggered.connect(self.selected)
quit.aboutToShow.connect(app.quit) #
#quit.aboutToShow.connect(exit) # или так
def selected(self, q):
print(q.text() + ' selected')
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MenuDemo()
w.resize(600, 400)
w.show()
sys.exit(app.exec_())

