crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Нажатие дополнительных клавиш, как правильно сделать?
AD
  опции профиля:
сообщение 15.7.2008, 14:36
Сообщение #11


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

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

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




Репутация:   17  


А вот этот вариант заработал :)

QAction* act = new QAction("test", this);
act -> setShortcut(QKeySequence(Qt::ALT + Qt::Key_X));
connect(act, SIGNAL(triggered()), this, SLOT(close()));
addAction(act);


Red Devil, thank you! :)


Цитата(Red Devil @ 15.7.2008, 14:45) *
либо можно QShortcut еще использовать, там практически тоже самое, только addAction делать не нужно.

А можно тоже пример кода, а то как и в пред. случае будет ошибка, что строчку забыли! :) Жду примерчик! :blush2:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Red Devil
  опции профиля:
сообщение 15.7.2008, 15:55
Сообщение #12


Студент
*

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

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




Репутация:   3  


Функция класса, в котором создаются shortcuts. У меня такой класс один, если их более одного, то еще не помешало бы вынести функцию отдельно и добавить параметр QObject * pSender, и заменить его там где this.
void CreateShortcut( QShortcut *& pShortcut, const char * sName, const char * sShortcut, const char * sHandler, Qt::ShortcutContext Context = Qt::WindowShortcut)
{
    pShortcut = new QShortcut(QKeySequence(tr(sShortcut)), this);
    pShortcut->setWhatsThis(tr(sName));
    pShortcut->setContext(Context);
    connect(pShortcut, SIGNAL(activated()), this, sHandler);
}

Добавление, где-то при инициализации приложения :
// обьявление 
QShortcut * m_pShortcut1;
QShortcut * m_pShortcut2;
...
// инициализация (в конструкторе например)
CreateShortcut(m_pShortcut1, "Shortcut 1", "Ctrl+S", SLOT(Shortcut1Slot()));
CreateShortcut(m_pShortcut2, "Shortcut 2", "Ctrl+D", SLOT(Shortcut2Slot()));


Сообщение отредактировал Red Devil - 15.7.2008, 15:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.1.2025, 21:41