crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Не получается никак правильно показать контекстное меню
wdefik
  опции профиля:
сообщение 13.3.2010, 21:10
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   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
  опции профиля:
сообщение 13.3.2010, 21:48
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Может так?
contMenu->popup(fileToolBar->mapToGlobal(position));

На край, можно еще попробовать использовать QCursor::pos()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wdefik
  опции профиля:
сообщение 13.3.2010, 22:06
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 4.3.2010
Пользователь №: 1505

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(MoPDoBoPoT @ 13.3.2010, 21:48) *
Может так?
contMenu->popup(fileToolBar->mapToGlobal(position));

На край, можно еще попробовать использовать QCursor::pos()


Спасибо, помогло! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.11.2018, 17:53