Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: QuAzI от Декабрь 13, 2010, 03:18



Название: QMenu не QAction
Отправлено: QuAzI от Декабрь 13, 2010, 03:18
Как по феншую обработать клик по QMenu (имеется введу именно клик по QMenu, верхнего уровня, а не по дочернему QAction в выпадающем списке), если при привязке его выдаёт ошибку
Код:
Object::connect: No such signal QMenu::triggered() 

Привязываю так
Код:
connect(ui->mCacheDir, SIGNAL(triggered()), this, SLOT(mcCacheDir()));


Название: Re: QMenu не QAction
Отправлено: Fat-Zer от Декабрь 13, 2010, 04:59
А зачем? добавьте QAction в строку меню...


Название: Re: QMenu не QAction
Отправлено: QuAzI от Декабрь 13, 2010, 08:39
Не для всех пунктов меню удачно подбирается категория. А делать меню с одним пунктом немного странно, с точки зрения пользователя.


Название: Re: QMenu не QAction
Отправлено: alexman от Декабрь 13, 2010, 09:37
А делать меню с одним пунктом немного странно, с точки зрения пользователя.
Нормальная ситуация! А вообще можно попробовать void QMenu::aboutToShow () [signal].


Название: Re: QMenu не QAction
Отправлено: Авварон от Декабрь 13, 2010, 09:52
http://doc.qt.nokia.com/stable/qmenu.html#menuAction


Название: Re: QMenu не QAction
Отправлено: QuAzI от Декабрь 13, 2010, 13:11
Согласно документации всё-таки есть такой сигнал QMenu::triggered. Как и aboutToShow. Но ни на FreeBSD, ни на Windows (Qt SDK 2010.05) triggered() не отработал. Ну и чёрт с ним, aboutToShow отлично его заменяет.


Название: Re: QMenu не QAction
Отправлено: SABROG от Декабрь 13, 2010, 13:15
Так пробовал?

Код
C++ (Qt)
ui->menuBar->addAction(tr("Quit"), this, SLOT(close()));


Название: Re: QMenu не QAction
Отправлено: alexman от Декабрь 13, 2010, 14:46
Согласно документации всё-таки есть такой сигнал QMenu::triggered.
Вообще-то есть сигнал void QMenu::triggered ( QAction * action ) [signal] // This signal is emitted when an action in this menu is triggered. Но вы же не добавляете ни одного экшина, то есть сигнал и не должен отрабатывать.


Название: Re: QMenu не QAction
Отправлено: lit-uriy от Декабрь 13, 2010, 17:22
пункт меню на QMenuBar - это QAction, отсель и копайте


Название: Re: QMenu не QAction
Отправлено: Fat-Zer от Декабрь 13, 2010, 18:30
пункт меню на QMenuBar - это QAction, отсель и копайте
Вообще нет - смотрите документацию
ЗЫ: имел ввиду тоже, что и SABROG


Название: Re: QMenu не QAction
Отправлено: lit-uriy от Декабрь 13, 2010, 19:15
>>Вообще нет - смотрите документацию.
У QMenu можно узнать соответствующий ему QAction. Т.е. логика и напрашивается такая, как я описал. Просто до ума не доведено.