Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ruzik от Август 26, 2012, 15:44



Название: Действие shortcut'а у QAction
Отправлено: ruzik от Август 26, 2012, 15:44
Вот скажем есть такой код:
Код:
    QAction *addAction = new QAction(this);
    addAction->setShortcut(QKeySequence(QKeySequence::New));
    connect(addAction, SIGNAL(triggered()), this, SLOT(addItem()));
Но при нажатии на соответствующее сочетание клавиш сигнал не срабатывает.
При том что в меню это QAction имеет соответствующую надпись.
Получается единственный выход, переопределение нажатия клавиш?


Название: Re: Действие shortcut'а у QAction
Отправлено: kambala от Август 26, 2012, 15:47
а если написать "Ctrl+N" вместо QKeySequence::New, то работает?


Название: Re: Действие shortcut'а у QAction
Отправлено: ruzik от Август 26, 2012, 19:07
Нет


Название: Re: Действие shortcut'а у QAction
Отправлено: kambala от Август 26, 2012, 19:14
горячие клавиши будут работать у родителя экшена (который ты указал this) и у всех его дочерних виджетов — возможно дело в этом, т.к. код сам по себе правильный


Название: Re: Действие shortcut'а у QAction
Отправлено: ruzik от Август 27, 2012, 16:26
this - это главное окно, где все происходит.
И горячие клавиши я пытаюсь задействовать в этом же окне


Название: Re: Действие shortcut'а у QAction
Отправлено: kambala от Август 27, 2012, 16:40
значит без компилируемого примера не разобраться


Название: Re: Действие shortcut'а у QAction
Отправлено: ruzik от Август 27, 2012, 17:23
Выдрал код из проекта(компилируемый)
Qt 4.8.1


Название: Re: Действие shortcut'а у QAction
Отправлено: kambala от Август 27, 2012, 20:22
допиши this->addAction(addAction); и все заработает


Название: Re: Действие shortcut'а у QAction
Отправлено: ruzik от Август 27, 2012, 21:14
Понятно, большое спасибо!