crossplatform.ru

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


  Ответ в [РЕШЕНО] QAction и проверка нажатия кнопок клавиатуры
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 21.3.2010, 15:40
  zamnach, в описании оговорка есть, поэтому она меня несколько смутила.
zamnach Дата 21.3.2010, 15:06
  Юрий, 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, 13:36
  не уверен, но можно попробовать в слоте воспользоваться статическим членом:
Qt::KeyboardModifiers QApplication::keyboardModifiers () [static]
zamnach Дата 21.3.2010, 12:52
  так-итак:
есть QAction (созданы в Дизайнере, если это важно)
у QAction есть сигнал 'void QAction::triggered ( bool checked = false ) [signal]'
сигнал связывается со слотом, пока все ОК.
как мне в обработчике (в слоте) определить, что в момент нажатия на пункт меню (QAction)
была нажата клавиша 'Ctrl' и/или 'Shift' и/или 'Alt' (или какая-либо другая клавиша)?
shortcut мне не подходит, т.к. мне важно определить для пункта меню:
был просто клик или 'клик с кнопкой' (там сидит разная логика работы).
thanx for help.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 3:00