Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Создание контекстного меню

Автор: AD 15.7.2008, 9:38

Не могу найти класс создания контекстного меню. Подскажите, пожалуйста

[attachment=131:context_menu.JPG]

P.S. Блин, почему картинку 18Кб загрузить не может???

Автор: void* 15.7.2008, 9:42

делается все очень просто: создаешь в своем виджете QMenu с нужными QAction'ами, затем обрабатываешь событие contextMenuEvent:

public:
            QMenu *menu;
protected:
            virtual void contextMenuEvent(QContextMenuEvent *event) {
                                      menu->exec(event->globalPos());
            }

Автор: AD 15.7.2008, 10:09

Цитата(void* @ 15.7.2008, 10:42) *
делается все очень просто: создаешь в своем виджете QMenu с нужными QAction'ами, затем обрабатываешь событие contextMenuEvent:
public:
            QMenu *menu;
protected:
            virtual void contextMenuEvent(QContextMenuEvent *event) {
                                      menu->exec(event->globalPos());
            }

Неплохо, спасибо. Но мне в это контекстное меню есть желание поместить то, что не отображено на панели меню. Такое возможно? По идее, для этого следует создать QMenu* myMenu, для него набор QAction* myActions[5], а потом запустить это меню в этой функции. Правильно я понял? Так, получается, надо сделать?

Автор: void* 15.7.2008, 10:14

Цитата(AD @ 15.7.2008, 10:09) *
Но мне в это контекстное меню есть желание поместить то, что не отображено на панели меню. Такое возможно?

а почему нет? ты можешь использовать любой объект QMenu, не обязательно тот, что на панели
по сути в обработчике события мы только запускаем меню в нужной точке (повторяю - меню может быть абсолютно любым)

Автор: Litkevich Yuriy 15.7.2008, 17:38

Цитата(AD @ 15.7.2008, 14:09) *
Но мне в это контекстное меню есть желание поместить то, что не отображено на панели меню

В панели меню сгрупированы QAction'ы, суй эти же объекты в лбое другое меню

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)