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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAction и QMenu  (Прочитано 11395 раз)
Lion
Гость
« : Март 15, 2007, 19:41 »

Если QAction полученный от QMenu::menuAction() добавить в тулбар, то можно вызвать это меню только по нажатию на маленькую стрелку у кнопки. Как заставить вылезть меню при нажатии на саму кнопку?
Записан
Dodge
Гость
« Ответ #1 : Март 16, 2007, 11:52 »

Как я понял, тебе нужно чтоб при нажатии на кнопку на тулбаре, вылезало попап меню... в обработчик события клика по кнопке, добавь execute соответствующего меню.
Записан
Lion
Гость
« Ответ #2 : Март 17, 2007, 13:15 »

В этом случае меню появляется в произвольном месте, кроме QAction и QMenu мне ничего не известно.
Записан
Dodge
Гость
« Ответ #3 : Март 19, 2007, 13:26 »

ммм... я несовсем понял проблему... move после execute не помогает?
Записан
Lion
Гость
« Ответ #4 : Март 19, 2007, 15:34 »

А координаты для move как определить? У меня нет доступа к тулбару куда будет помещен QAction.
Записан
Dodge
Гость
« Ответ #5 : Март 21, 2007, 12:02 »

Цитата: "Lion"
А координаты для move как определить? У меня нет доступа к тулбару куда будет помещен QAction.

ну в крайнем случае, если совсем никак не получить необходимые координаты, можно в мов передавать текущие координаты курсора мыши.

#ifdef WIN32
  POINT p;
  CursorPos(&p);
  int x = p.x,
      y = p.y;
#else
  //код для линукса или макос...
#endif
Записан
_govorilka
Гость
« Ответ #6 : Март 22, 2007, 04:46 »

Цитата: "Lion"
Если QAction полученный от QMenu::menuAction() добавить в тулбар, то можно вызвать это меню только по нажатию на маленькую стрелку у кнопки. Как заставить вылезть меню при нажатии на саму кнопку?


Прочитай в справке про QToolButton. Оно для твоей проблемы специально создано!!! Постри пример про QMainWindow, там тоже написано, как все в жизни устроено.
Записан
Lion
Гость
« Ответ #7 : Март 26, 2007, 22:31 »

Цитата: "_govorilka"
Цитата: "Lion"
Если QAction полученный от QMenu::menuAction() добавить в тулбар, то можно вызвать это меню только по нажатию на маленькую стрелку у кнопки. Как заставить вылезть меню при нажатии на саму кнопку?


Прочитай в справке про QToolButton. Оно для твоей проблемы специально создано!!! Постри пример про QMainWindow, там тоже написано, как все в жизни устроено.

QToolButton это хорошо, но как его имея QAction или хотябы установить нужное дефолтное значение popupMode через QToolBar?
Записан
_govorilka
Гость
« Ответ #8 : Март 27, 2007, 07:34 »

Для установки поведения меню есть функция QToolButton::setPopupMode();
Для твоего случая подходит QToolButton::InstantPopup - меню показывается при нажатие на кнопку, эту константу надо передать функции
setPopupMode; Устанавить QAction можно через функцию setDefaultAction. Читай справку, смотри примеры, там все подробно написано!!!

p.s. QToolButton добавляется в QToolBar через QToolBar::addWidget();
Записан
Lion
Гость
« Ответ #9 : Март 28, 2007, 22:28 »

Цитата: "Lion"
кроме QAction и QMenu мне ничего не известно.

В этом случае похоже никак Грустный
Записан
sa_mel
Гость
« Ответ #10 : Сентябрь 08, 2013, 08:06 »

С великодушного разрешения Модератора возможный рецепт решения проблемы размещен в разделе "Уроки и статьи".
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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