crossplatform.ru

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


  Ответ в Контекстное меню
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
edwardoid Дата 30.6.2009, 10:12
 
Цитата(Litkevich Yuriy @ 30.6.2009, 6:27) *
насколько я помню обсуждение с прог.орга, в таком случае нужно выделение элементов меню самому рисовать.
Т.е. в штатном меню, при перемещении мышки над меню мы видим как выделяются пункты меню.
А в случае с собственными виджетами, это выделение нужно будет рисовать самим

edwardoid, я думаю стоит ещё статью из ежеквартальника Qt глянуть: Нестандартное меню




Litkevich Yuriy, вариант предложенный Kagami работает превосходно.
SABROG Дата 30.6.2009, 9:05
 
Цитата(Litkevich Yuriy @ 30.6.2009, 5:27) *
насколько я помню обсуждение с прог.орга, в таком случае нужно выделение элементов меню самому рисовать.
Т.е. в штатном меню, при перемещении мышки над меню мы видим как выделяются пункты меню.
А в случае с собственными виджетами, это выделение нужно будет рисовать самим

edwardoid, я думаю стоит ещё статью из ежеквартальника Qt глянуть: Нестандартное меню


Это было в теме про разный размер иконок в QMenu, я тогда предложил использовать QWidgetAction, вместо того, чтобы писать свой стиль. Но ведь никто не заставляет рисовать выделение, если оно ненужно в принципе.
Litkevich Yuriy Дата 30.6.2009, 4:27
  насколько я помню обсуждение с прог.орга, в таком случае нужно выделение элементов меню самому рисовать.
Т.е. в штатном меню, при перемещении мышки над меню мы видим как выделяются пункты меню.
А в случае с собственными виджетами, это выделение нужно будет рисовать самим

edwardoid, я думаю стоит ещё статью из ежеквартальника Qt глянуть: Нестандартное меню
IMPOMEZIA Дата 29.6.2009, 23:58
 
Цитата(edwardoid @ 29.6.2009, 20:40) *
IMPOMEZIA , eсть примеры кстати насчет QWidgetAction?


Примерно так:
void MyWidget::contextMenuEvent(QContextMenuEvent *event)
{
  QMenu menu(this);
  QLabel *myCustomWidget = new QLabel(tr("test"), &menu);

  QWidgetAction *action = new QWidgetAction(&menu);
  action->setDefaultWidget(myCustomWidget);

  menu.addAction(action);
  menu.exec(event->globalPos());
}


Что за виджет будет myCustomWidget целиком ваша забота, QWidgetAction это всего лишь способ разместить его в меню.
edwardoid Дата 29.6.2009, 19:40
 
Цитата(Kagami @ 29.6.2009, 21:03) *
Какая у тебя ось? И версия Qt?
P.S. У кого-нибудь еще есть проблемы с неправильным позиционированием меню?
P.P.S. Собрал пример в дебиане, все работает правильно

Windows 7, Qt 4.5.2


IMPOMEZIA , eсть примеры кстати насчет QWidgetAction?
IMPOMEZIA Дата 29.6.2009, 19:24
 
Цитата(Kagami @ 29.6.2009, 19:00) *
Проблема в том, как в таком случае располагать виджеты в произвольном порядке, например, в сетке 3х3.

Точно также как и сейчас, только не нужно заботиться о координатах меню.
Kagami Дата 29.6.2009, 19:03
  Какая у тебя ось? И версия Qt?
P.S. У кого-нибудь еще есть проблемы с неправильным позиционированием меню?
P.P.S. Собрал пример в дебиане, все работает правильно
edwardoid Дата 29.6.2009, 18:05
 
Цитата(Kagami @ 29.6.2009, 19:36) *
Хм.. у меня появляется точно в месте клика

UPD: новая версия с использованием QFrame

Странно... у меня пришлось :
CODE
menu->move(mapToGlobal(QPoint(point.x()+15,point.y()+70)));
Kagami Дата 29.6.2009, 18:00
  Проблема в том, как в таком случае располагать виджеты в произвольном порядке, например, в сетке 3х3.
IMPOMEZIA Дата 29.6.2009, 17:55
  По идее нужно использовать QWidgetAction для добавления своего виджета в QMenu.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 2.5.2024, 5:01