Название: Список доступных тулбаров Отправлено: davladus от Июль 31, 2006, 12:11 Имеется приложение (qt 4.1.2) с меню и тулбарами. Если кликнуть правой
кнопкой на любом тулбаре появляется список доступных тулбаров с возможностью выбора тех которые вы желаете видеть. Проблема в том, что если таким методом выключить все тулбары, то увидеть список досупных тулбаров или включить какой либо из них не возможно. Во многих приложения это проблема решается следующим способом - список появляется и при нажатии прав. кнопки на MenuBar. Вопрос Как сделать так, чтобы такой список отображался и при нажатии правой кнопки на MenuBar? P.S. пример приложения. qtdir\examples\mainwindows\application Название: Список доступных тулбаров Отправлено: Asaphus_Expansus от Июль 31, 2006, 18:03 1. Установить для MenuBar custom policy
menuBar()->setContextMenuPolicy(Qt::CustomContextMenu); connect(menuBar(), SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(abc(const QPoint &))); 2. Странслировать полученый сигнал до тулбара void MainWindow::abc(const QPoint & p) { QContextMenuEvent e(QContextMenuEvent::Other, p); QCoreApplication::sendEvent(fileToolBar, &e); } Название: Список доступных тулбаров Отправлено: davladus от Август 07, 2006, 09:52 Такой метод работает если видим хотя бы один из тулбаров. Если его выключить все тулбары из списка видимых тулбаров, то метод не работает.
Так что по-прежнему если Цитировать выключить все тулбары, то увидеть список досупных тулбаров или включить какой либо из них не возможно добавлено спустя 26 минут: Спасибо за ответы, я решил не искать лучшего в хорошем а просто создаю меню заново когда это необходимо. Методику создания скопировал из QMenu *QMainWindow::createPopupMenu() Код:
Название: Список доступных тулбаров Отправлено: davladus от Август 30, 2006, 13:38 А еще лучше так
Код:
Название: Список доступных тулбаров Отправлено: bigirbis от Август 30, 2006, 14:04 Думаю, что это плохой вариант. При нажатии на контекстном меню объекты тулбаров не разрушаются. Просто им вызывается слот hide().
Попробуй найти все тулбары Код: findChildren < QToolBar * > () , а за тем сделать нужному show() |