![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
wdefik |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 4.3.2010 Пользователь №: 1505 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
создаю тулбар, устанавливаю вниз окна
fileToolBar = new QToolBar(tr("&File")); fileToolBar->addAction(openAction); fileToolBar->addAction(fullScAction); fileToolBar->addAction(quitAction); fileToolBar->setMovable(false); addToolBar(Qt::BottomToolBarArea,fileToolBar); устанавливаю кастом контекст fileToolBar->setContextMenuPolicy(Qt::CustomContextMenu); соединяю сигнал запроса контекстного меню с функцией показа этого меню connect(fileToolBar,SIGNAL(customContextMenuRequested(const QPoint&)) ,this,SLOT(showContextMenu(const QPoint&))); создаю меню и собираюсь показать хотя бы примерно там где произошел вызов контекстного меню void SvMainWIndow::showContextMenu(const QPoint& position) { contMenu = new QMenu(this); contMenu->addAction(quitAction); contMenu->addAction(openAction); contMenu->addAction(fullScAction); contMenu->popup(mapToGlobal(position)); } в итоге контекстное меню выходит почти там, где должно было бы быть, если тулбар был наверху. более-менее правильно кон. меню выходит, когда тулбар на ходится либо слева, либо сверху. что я делаю не так ? ![]() |
|
|
MoPDoBoPoT |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
Может так?
contMenu->popup(fileToolBar->mapToGlobal(position)); На край, можно еще попробовать использовать QCursor::pos() |
|
|
wdefik |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 4.3.2010 Пользователь №: 1505 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 4:55 |