Russian Qt Forum
Ноябрь 26, 2024, 21:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Странное поведение "контекстного" меню и underMouse()  (Прочитано 2291 раз)
Varan
Гость
« : Август 21, 2009, 15:33 »

Суть такова. По нажатию кнопки мыши вызывается функция mousePressed(QPoint pt), в которой происходит примерно вот что:
Код
C++ (Qt)
QMenu menuSelected(QString::fromUtf8("Уточнение выбора:"));
for (uint i = 0; i < 4; ++i)
{
menuSelected.addAction("Action");
}
QAction* selected = menuSelected.exec(m_pInstrRenderWindow->mapToGlobal(pt));
if ( menuSelected.actions().contains(selected) )
{
qDebug() << menuSelected.actions().indexOf(selected);
}
 
Это для отладки написано, конечно, но уже не так работает, как хочется. Вот место вызова этой функции из обработчика mouseEvent моего виджета (наследника QMainWindow):
Код
C++ (Qt)
qDebug() << "before" << underMouse();
m_InstrCamera.mousePressed(pEvent->pos());
qDebug() << "after" << underMouse();
 

Если мы выбрали что-то, то выводится TRUE - FALSE. Ну ладно, допустим, мышь еще "не успела" прийти в виджет, пробуем еще раз. Опять TRUE - FALSE. Ура. Однако, если мы промазали мимо меню, т.е. ничего не выбрали, то в следующий раз при нажатии мышью будет FALSE - FALSE. Эта штука у меня используется, поэтому интересно, что не так.
Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.422 секунд. Запросов: 21.