Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Странник от Декабрь 04, 2011, 14:24



Название: QKeySequence: два шотката на одно действие
Отправлено: Странник от Декабрь 04, 2011, 14:24
доброго времени суток.
вопрос довольно дурацкий, прошу прощения - цейтнот = )

можно ли без танцев с бубном назначить два сочетания клавиш на одно действие? к примеру, мне нужно, чтобы кнопка срабатывала по Ctrl+Enter и Ctrl+Return. некоторые стандартные QKeySequence имеют два сочетания: например, QKeySequence::Copy под Windows включает Ctrl+C и Ctrl+Ins. как бы мне изобразить подобное?


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: andrew.k от Декабрь 04, 2011, 16:33
http://doc.qt.nokia.com/stable/qkeysequence.html#QKeySequence-4


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: kambala от Декабрь 04, 2011, 17:22
и при чем тут эта ссылка? автор хочет чтоб 2 совершенно разных комбинации выполняли одно и то же действие, а не одно действие выполнялось одной большой комбинацией (типа как в студии комментирование строки Ctrl+K, Ctrl+C)

отвечая на вопрос - переопредели keyPressEvent, через QKeySequence так не сделаешь


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: Авварон от Декабрь 04, 2011, 19:09
у экшна есть метод к-ый ставит список шорткатов


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: andrew.k от Декабрь 04, 2011, 19:10
Ну прочитай, что делает этот конструктор, узнаешь при чем.
Цитировать
Constructs a key sequence with up to 4 keys k1, k2, k3 and k4.

Как я понял, это то, что требуется автору.
QKeySequence(Qt::CTRL + Qt::Key_C, Qt::CTRL + Qt::Key_Insert);


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: kambala от Декабрь 04, 2011, 19:24
Ну прочитай, что делает этот конструктор, узнаешь при чем.
Цитировать
Constructs a key sequence with up to 4 keys k1, k2, k3 and k4.

Как я понял, это то, что требуется автору.
QKeySequence(Qt::CTRL + Qt::Key_C, Qt::CTRL + Qt::Key_Insert);
а не одно действие выполнялось одной большой комбинацией (типа как в студии комментирование строки Ctrl+K, Ctrl+C)
QKeySequence::Copy под Windows включает Ctrl+C и Ctrl+Ins
это означает, что копирование чего-либо в винде будет выполняться комбинацией Ctrl+C или Ctrl+Ins, а указанный тобой конструктор будет использовать комбинацию Ctrl+C и Ctrl+Ins, как в приведенном мною примере про visual studio


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: andrew.k от Декабрь 04, 2011, 19:34
Сейчас проверил, приведенный мной конструктор будет работать как последовательное нажатие одного и другого сочетания)
Кто бы мог подумать? (QKeySequence)  ::)

Тогда как Авварон сказал.


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: andrew.k от Декабрь 04, 2011, 19:37
QKeySequence::Copy под Windows включает Ctrl+C и Ctrl+Ins
Откуда это?
Я проверил, срабатывает только Ctrl+C


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: kambala от Декабрь 04, 2011, 19:54
Сейчас проверил, приведенный мной конструктор будет работать как последовательное нажатие одного и другого сочетания)
Кто бы мог подумать? (QKeySequence)  ::)
и в самом деле, кто бы мог подумать? Constructs a key sequence with up to 4 keys k1, k2, k3 and k4.
QKeySequence::Copy под Windows включает Ctrl+C и Ctrl+Ins
Откуда это?
Я проверил, срабатывает только Ctrl+C
в документации к классу есть табличка, к которой написано "The table below shows some common key sequences that are often used for these standard shortcuts by applications on four widely-used platforms". так что это все-таки просто рекомендуемые шорткаты.


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: andrew.k от Декабрь 04, 2011, 20:34
Вот эта табличка меня и сбила с толку.


Название: Re: QKeySequence: два шотката на одно действие
Отправлено: Странник от Декабрь 05, 2011, 10:02
у экшна есть метод к-ый ставит список шорткатов
в том и беда, что мне нужно было реализовать это для кнопки, поэтому QAction меня не устраивал. но после вашей реплики я подумал: а почему бы не сделать связку QToolButton + QAction. спасибо за идею = )