Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 42
PyQt5

Выполнение действия при нажатии на кнопку меню

23.04.2021, 14:31. Показов 7042. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Прошу помощи в следующем вопросе. Есть панель меню с кнопками Menu_1 и Menu_2. Menu_1 содержит выпадающее меню с кнопкой pop_menu. При нажатии на pop_menu открывается дочернее окно. Обработка события производится с помощью triggered. Однако с кнопкой Menu_2 это не работает. Каким образом нужно обработать событие, чтобы при нажатии на кнопку Menu_2 открывалось другое дочернее окно? Заранее спасибо!
Пример кода прикрепляю.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
 
        self.mdiArea = QtWidgets.QMdiArea(self.centralwidget)
        self.mdiArea.setFrameShape(QtWidgets.QFrame.Box)
        self.mdiArea.setObjectName("mdiArea")
        
        MainWindow.setCentralWidget(self.mdiArea)
        
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
 
        self.menu_1 = QtWidgets.QMenu(self.menubar)
        self.menu_1.setObjectName("menu_1")
        self.menu_2 = QtWidgets.QMenu(self.menubar)
        self.menu_2.setObjectName("menu_2")
        
        MainWindow.setMenuBar(self.menubar)
    
        self.pop_menu = QtWidgets.QAction(MainWindow)
        self.pop_menu.setObjectName("pop_menu")
        
        self.menu_1.addAction(self.pop_menu)
        self.menubar.addAction(self.menu_1.menuAction())
        self.menubar.addAction(self.menu_2.menuAction())
             
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
        self.pop_menu.triggered.connect(self.wnd_1)
        self.menu_2.triggered.connect(self.wnd_2)
 
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "FFF"))
        self.menu_1.setTitle(_translate("MainWindow", "menu_1"))
        self.menu_2.setTitle(_translate("MainWindow", "menu_2"))
        self.pop_menu.setText(_translate("MainWindow", "pop_menu"))
               
    def wnd_1(self):
        
        sub = QtWidgets.QMdiSubWindow()
        sub.setWindowTitle("wnd_1")
        
        self.mdiArea.addSubWindow(sub)
        sub.setGeometry(QtCore.QRect(0,0,200,100))
        sub.show()
 
    def wnd_2(self):
        
        sub = QtWidgets.QMdiSubWindow()
        sub.setWindowTitle("wnd_2")
        sub.setGeometry(QtCore.QRect(0,0,200,100))
        self.mdiArea.addSubWindow(sub)
        sub.show()
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
Миниатюры
Выполнение действия при нажатии на кнопку меню   Выполнение действия при нажатии на кнопку меню  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2021, 14:31
Ответы с готовыми решениями:

Действия при нажатии на кнопку
Всем привет! Я сейчас занимаюсь разработкой программы, в которой можно будет проходить различные тесты, не спрашивайте зачем мне это :( Так...

Последовательное выполнение функций при нажатии на кнопку
Написал код который при нажатии на кнопку выполняет последовательно несколько функций. import sys from Window import * from PyQt5...

Выполнение действия при нажатии на ссылку
Добрый вечер, может кто подскажет, в функцию give(val) значение ид передается, как переменную val добавить к var script_n ? <a...

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.04.2021, 18:53
Лучший ответ Сообщение было отмечено katyuhma как решение

Решение

katyuhma, меню подразумевает, что будет состоять из экшнов. Но поскольку у тебя в menu_2 выпадающих экшнов нет, то ее саму и надо сделать экшном!
Python
1
2
3
4
5
6
7
8
9
10
self.menu_1 = QtWidgets.QMenu(self.menubar)
self.menu_1.setObjectName("menu_1")
self.menu_2 = QtWidgets.QAction("menu_2", self.menubar)
self.menu_2.setObjectName("menu_2")
 
#...
 
self.menu_1.addAction(self.pop_menu)
self.menubar.addAction(self.menu_1.menuAction())
self.menubar.addAction(self.menu_2)
1
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 42
23.04.2021, 19:19  [ТС]
Спасибо!!! Вы мне очень помогли)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2021, 19:19
Помогаю со студенческими работами здесь

Необходимо, чтобы при нажатии на одну из кнопок меню, фрейм с рекламой сворачивался, и разворачивался снова при нажатии на другую кнопку
Задача такая: Есть три фрейма (расположены друг под другом) - это реклама (вверху), меню (посередке) и главная страница (внизу)....

Выполнение действия при нажатии екранной кнопки
Уважаемые програмисты у меня вот какая проблема. У меня не получается создать действие чтоб при нажатии на екранную кнопку...

Единовременное выполнение действия при нажатии клавиши
В программе по нажатию(если быть точным то по отпусканию) клавиши должны происходить определенные действия. У меня в программе они должны...

Выполнение одного действия при нажатии разных клавиш
Подскажите как написать в коде одно действие при нажатии разных клавишь. конечно можно напиать так: if...

Не выполняются действия при нажатии на кнопку
ВОТ МОЙ КОД не выполняются действия при нажатии на кнопки unit Unit6; interface uses Windows, Messages, SysUtils,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru