crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Создание контекстного меню, при нажатии на правую клавишу мыша
AD
  опции профиля:
сообщение 15.7.2008, 9:38
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


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

[attachment=131:context_menu.JPG]

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

Сообщение отредактировал AD - 17.7.2008, 10:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 15.7.2008, 9:42
Сообщение #2


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

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




Репутация:   3  


делается все очень просто: создаешь в своем виджете QMenu с нужными QAction'ами, затем обрабатываешь событие contextMenuEvent:
public:
            QMenu *menu;
protected:
            virtual void contextMenuEvent(QContextMenuEvent *event) {
                                      menu->exec(event->globalPos());
            }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2008, 10:09
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(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
Сообщение #4


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

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




Репутация:   3  


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

а почему нет? ты можешь использовать любой объект QMenu, не обязательно тот, что на панели
по сути в обработчике события мы только запускаем меню в нужной точке (повторяю - меню может быть абсолютно любым)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2008, 17:38
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9668
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


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

В панели меню сгрупированы QAction'ы, суй эти же объекты в лбое другое меню
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 5.12.2021, 4:00