Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QT WinCE mouseReleaseEvent
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
zss
подскажите, почему при задержке стилуса на QTreeView мне приходит лишь Qt::LeftButton, но не приходит Qt::RightButton ?
ViGOur
Тебе я думаю нужно глянуть реализацию QTreeView, обрабатывается ли там Qt::RightButton или может просто забыли или забили. :)
Если так, то тебе придется дописывать данный обработчик.

zss, ты же вроде в MFC был замечен, там же подобное с пол пинка делалось, если помнишь.
zss
Цитата(zss @ 9.6.2009, 13:31) *
zss, ты же вроде в MFC был замечен, там же подобное с пол пинка делалось, если помниш

никогда под mfc не писал :)

Цитата(zss @ 9.6.2009, 13:31) *
Тебе я думаю нужно глянуть реализацию QTreeView, обрабатывается ли там Qt::RightButton или может просто забыли или забили.


но там и LeftButton не обрабатывается. Думаю обработка где-то выше
ViGOur
Цитата(zss @ 9.6.2009, 14:16) *
никогда под mfc не писал :)
я тебя помнится на сырцах видел не единожды в MFC'ном разделе. Ну ладно, проехали.

Цитата(zss @ 9.6.2009, 14:16) *
но там и LeftButton не обрабатывается. Думаю обработка где-то выше
Все правильно, обработка и отсылка происходит CE, а вот дальнейшая обработка, как я понимаю, предоставлена целиком виджету, в данном случае QTreeView. Тебе нужно переопределить void QAbstractItemView::mousePressEvent ( QMouseEvent * event ) [virtual protected]
Что то вроде:
void MyTreeView::mousePressEvent(QMouseEvent* e)
{
  if ((e->button() == Qt::RightButton) && (e->modifiers() == Qt::NoButton))
    {
      QMenu menu( this );
      menu.addAction("Insert");
      menu.addAction("Edit");
      menu.addAction("Delete");

      QAction* action = menu.exec(e->globalPos());
   }
   else
      MyTreeView::mousePressEvent(e);
}
Код на работоспособность не проверял, но идея думаю должна быть понятна.
zss
Цитата(zss @ 9.6.2009, 14:16) *
Все правильно, обработка и отсылка происходит CE, а вот дальнейшая обработка, как я понимаю, предоставлена целиком виджету, в данном случае QTreeView. Тебе нужно переопределить void QAbstractItemView::mousePressEvent ( QMouseEvent * event ) [virtual protected]

тоесть ты хочешь скачать что для mousePressEvent приходит Qt::RightButton ?
ViGOur
Угу, если я ничего не путаю конечно же. :)
Я для CE на Qt не писал, но писал на MFC и делал что-то вроде этого...
zss
Цитата(zss @ 9.6.2009, 14:39) *
Угу, если я ничего не путаю конечно же. :)
Я для CE на Qt не писал, но писал на MFC и делал что-то вроде этого...

нифига - для mousePressEvent не приходит Qt::RightButton
zss
что же делать-то. никак не получается получить Qt::RightButton

Завел даже свой таймер, что если держу стилус более 1 сек, то выводить меню.
Но это как-то криво, да и при том нет кружочка, который показывает что идет задержка стилуса (то есть нажатие правой кнопки)

З.Ы. Кстати - может кто знает как выводить системные часы при каких-либо действиях, чтоб пользователь не нервничал
Litkevich Yuriy
Цитата(zss @ 12.6.2009, 14:20) *
как выводить системные часы при каких-либо действиях, чтоб пользователь не нервничал
не понял
zss
Цитата(zss @ 12.6.2009, 11:20) *
не понял

ну когда запускаешь любое win-приложение показываются песочные часы для win32 и значек винды для wince.
Чтоб не показывать QSplashScreen на момент загрузки (он продолжительный) хочется вывести значок винды.
BRE
Цитата(zss @ 12.6.2009, 15:41) *
Цитата(zss @ 12.6.2009, 11:20) *
не понял

ну когда запускаешь любое win-приложение показываются песочные часы для win32 и значек винды для wince.
Чтоб не показывать QSplashScreen на момент загрузки (он продолжительный) хочется вывести значок винды.

void QApplication::setOverrideCursor ( const QCursor & cursor ) [static]
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.