Russian Qt Forum

Компиляторы и платформы => Mac OS X => Тема начата: Alex Custov от Апрель 27, 2017, 21:03



Название: [Решено] Пункт меню Help -> About пропал
Отправлено: Alex Custov от Апрель 27, 2017, 21:03
Привет.

У меня есть MainWindow с меню (QMenu). Там есть пункты (QAction) Help -> About... (законнекчен к слоту slotAbout) И Help -> About Qt... (законнекчен к слоту slotAboutQt) . В Маке Qt реорганизует меню, и получается какая-то ерунда. В подменю с именем программы есть только один пункт Help -> About..., который при этом вызывает не slotAbout(), а slotAboutQt(). То есть нажимаю на этот пункт - вылазит QMessageBox::aboutQt(). В виндоус всё нормально. Qt 5.7.1 и 5.8.0. Как сохранить оба моих экшона actionAbout и actionAboutQt в меню на Маке?


Название: Re: Пункт меню Help -> About пропал
Отправлено: Igors от Апрель 28, 2017, 12:42
Неск лет назад изучал это место, но уже успел все забыть :) В общих чертах так
Код
C++ (Qt)
QMenuBar * mainBar = new mainBar(0);
QMenu * helpMenu = new QMenu("Help", mainBar);
mainBar->addMenu(helpMenu);
 
QAction * act = helpMenu->addAction("About MyApp...");
act->setMenuRole(QAction::ApplicationSpecificRole);
connect(act, ...);
 
Да, он создается в help меню, его оттуда перенесут


Название: Re: Пункт меню Help -> About пропал
Отправлено: kambala от Апрель 28, 2017, 13:25
вообще эти пункты должны переезжать в главное меню приложения (которое самое первое, с жирным названием приложения), а не в хелпе висеть. по-моему AboutRole это регулирует.


Название: Re: Пункт меню Help -> About пропал
Отправлено: Alex Custov от Апрель 28, 2017, 15:47
Решилось установкой ролей AboutRole и AboutQtRole. Без этого Qt выбрасывал мой About.