crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> [РЕШЕНО] QAction и проверка нажатия кнопок клавиатуры, как определить нажатие кнопки в обработчике сигнала от QAction
zamnach
  опции профиля:
сообщение 21.3.2010, 12:52
Сообщение #1


Студент
*

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

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




Репутация:   0  


так-итак:
есть QAction (созданы в Дизайнере, если это важно)
у QAction есть сигнал 'void QAction::triggered ( bool checked = false ) [signal]'
сигнал связывается со слотом, пока все ОК.
как мне в обработчике (в слоте) определить, что в момент нажатия на пункт меню (QAction)
была нажата клавиша 'Ctrl' и/или 'Shift' и/или 'Alt' (или какая-либо другая клавиша)?
shortcut мне не подходит, т.к. мне важно определить для пункта меню:
был просто клик или 'клик с кнопкой' (там сидит разная логика работы).
thanx for help.

Сообщение отредактировал zamnach - 21.3.2010, 15:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.3.2010, 13:36
Сообщение #2


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

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

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




Репутация:   94  


не уверен, но можно попробовать в слоте воспользоваться статическим членом:
Qt::KeyboardModifiers QApplication::keyboardModifiers () [static]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zamnach
  опции профиля:
сообщение 21.3.2010, 15:06
Сообщение #3


Студент
*

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

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




Репутация:   0  


Юрий, thanx-a-lot.

// пример кода для решения проблемы
void CApplication::slOpenRecentFile()
{
    Qt::KeyboardModifiers keyMod = QApplication::keyboardModifiers ();
    bool isSHIFT = keyMod.testFlag(Qt::ShiftModifier);
    if (isSHIFT)
    {
        QMessageBox::information( 0,QObject::tr("Caution"),"slOpenRecentFile: with key SHIFT!" );
    }
// чего-то-там тра-ля-ля-ля
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.3.2010, 15:40
Сообщение #4


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

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

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




Репутация:   94  


zamnach, в описании оговорка есть, поэтому она меня несколько смутила.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.11.2024, 2:05