Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: unkeep от Август 09, 2013, 13:35



Название: QShortcuts срабатывают не только для родителя
Отправлено: unkeep от Август 09, 2013, 13:35
Код
C++ (Qt)
QShortcut *shortcut  = new QShortcut(Modules::ShortCuts::Add,parent);
   connect(shortcut, SIGNAL(activated() ), this, SLOT(AddModule()) );

сабж.
 в доках написано :
QShortcut::QShortcut ( const QKeySequence & key, QWidget * parent,....)
Constructs a QShortcut object for the parent widget. The shortcut operates on its parent, listening for QShortcutEvents that match the key sequence


соответственно ожидаю, что  shortcut будет слать сигнал только когда виджет parent в фокусе. А выходит не так. Почему?


Название: Re: QShortcuts срабатывают не только для родителя
Отправлено: Bepec от Август 09, 2013, 13:45
Вот объясните мне пожалуйста, где здесь написано про фокус? :) Где? Тыкните пожалуйста меня в это место. Ну пожааалуйста.



Название: Re: QShortcuts срабатывают не только для родителя
Отправлено: unkeep от Август 09, 2013, 13:49
Вот объясните мне пожалуйста, где здесь написано про фокус? :) Где? Тыкните пожалуйста меня в это место. Ну пожааалуйста.


видимо я заблуждаюсь, но я посчитал что "The shortcut operates on its parent" это и подразумевает. Если не так, то как тогда указать область действия?

проверять в слоте где фокус?


Название: Re: QShortcuts срабатывают не только для родителя
Отправлено: unkeep от Август 09, 2013, 14:00
всё, нашёл Qt::ShortcutContext надо указать Qt::WidgetShortcut. По дефолту стоит Qt::WindowShortcut


Название: Re: QShortcuts срабатывают не только для родителя
Отправлено: Bepec от Август 09, 2013, 14:08
Превосходно ^.^