Название: сигналы QMenuBar Отправлено: Germiona от Май 30, 2008, 12:20 Добрый день!
Подскажите, чем отличаются сигналы QMenuBar: activated() и highlighted() ? Название: Re: сигналы QMenuBar Отправлено: pastor от Май 30, 2008, 12:31 activated() - когда вы произвели клин по кнопке
highlighted() - когды вы навели указатель мыши на кнопку Если выпишите на Qt 4 используйте triggered() и hovered() соответсвенно вместо указаных вами Название: Re: сигналы QMenuBar Отправлено: Germiona от Май 30, 2008, 12:55 Нет,я пишу Qt3
А как сделать,чтобы элемент меню активировался только при нажатии,а при наведении мыши ничего бы не происходило? Элемент представляет собой QString Код: int id = menuBar->insertItem("EXIT"); При создании connect-а он активируется и при нажатии,и при наведении Код: menuBar->connectItem(id,this,SLOT(exit())); Возможно ли это изменить? ??? Название: Re: сигналы QMenuBar Отправлено: pastor от Май 30, 2008, 13:13 cм. Example: progress/progress.cpp.
Название: Re: сигналы QMenuBar Отправлено: Germiona от Май 30, 2008, 13:28 Цитировать cм. Example: progress/progress.cpp. Вы имеете ввиду: Код: connect(menuBar, SIGNAL(activated(int),this,SLOT(doMenuItem(int)))) и в слоте doMenuItem задать id,при котором бы он выполнялся? Название: Re: сигналы QMenuBar Отправлено: pastor от Май 30, 2008, 14:52 имхо да, вне зависимости он id. Вам ведь все кнопки нужно так обработать?
Название: Re: сигналы QMenuBar Отправлено: Germiona от Июнь 02, 2008, 10:07 Нет,такой будет только одна кнопка "Выход", все остальные представляют собой выпадающее меню
Название: Re: сигналы QMenuBar Отправлено: Germiona от Июнь 02, 2008, 11:39 Ерунда какая-то получается,если делать как в примере:
Код: connect(menuBar, SIGNAL(highlighted(int),this,SLOT(doMenuItem(int)))) Сначала слот doMenuItem(int) отрабатывается,а потом тот,что при сигнале activated(int) Pastor, ну вы же гений в фильтрах :) Подскажите как с помощью их сделать Название: Re: сигналы QMenuBar Отправлено: pastor от Июнь 02, 2008, 11:48 Покажите код как вы создаете меню
Название: Re: сигналы QMenuBar Отправлено: Germiona от Июнь 02, 2008, 12:12 Код: void MainWindow::createMenus() Название: Re: сигналы QMenuBar Отправлено: Sergeich от Июнь 02, 2008, 14:40 activated() - когда вы произвели клин по кнопке Сигнал activated() вызывается при нажатии на элемент меню, не имеющего дочернего меню.highlighted() - когды вы навели указатель мыши на кнопку Сигнал highlighted() вызывается при раскрытии элемента меню или при наведении мыши на элемент меню, не имеющего дочернего меню. А как сделать,чтобы элемент меню активировался только при нажатии,а при наведении мыши ничего бы не происходило? Как я понял, проблема в том, что при ракрытии какого-либо элемента меню и последущем наведении на Exit вызывается сигнал activated(), а нужно чтобы Exit срабатывал только при нажатии на него.Элемент представляет собой QString Код: int id = menuBar->insertItem("EXIT"); При создании connect-а он активируется и при нажатии,и при наведении Код: menuBar->connectItem(id,this,SLOT(exit())); Возможно ли это изменить? ??? Проблему можно решить установкой событийного фильтра на MenuBar: ловить нажатие и отпускание кнопки мыши. Как-то так: Код: class MainWindow : public QMainWindow Название: Re: сигналы QMenuBar Отправлено: Germiona от Июнь 02, 2008, 15:41 Sergeich, огромнейшее вам спасибо :-* :-* :-*,у меня все получилось :D :D :D |