crossplatform.ru

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


  Ответ в Послать сигнал по нажатию клавиш
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 10 сообщений [ в обратном порядке ]
FenixTES Дата 20.11.2009, 18:12
 
Цитата(MoPDoBoPoT @ 20.11.2009, 17:55) *
На клавиатуре есть две клавиши Enter, причем их коды различны:
Qt::Key_Return - большой Enter, на основном разделе клавы
Qt::Key_Enter - в разделе с num-keys
Может он у тебя ждет нажатия того Enter'а, который с num-keys, а ты жмешь "большой"?
Попробуй такой код:
...
qatmp->setShortcut(QKeySequence(Qt::CTRL, Qt::Key_Return));
...

заработало))) спс)))
MoPDoBoPoT Дата 20.11.2009, 17:55
  На клавиатуре есть две клавиши Enter, причем их коды различны:
Qt::Key_Return - большой Enter, на основном разделе клавы
Qt::Key_Enter - в разделе с num-keys
Может он у тебя ждет нажатия того Enter'а, который с num-keys, а ты жмешь "большой"?
Попробуй такой код:
...
qatmp->setShortcut(QKeySequence(Qt::CTRL, Qt::Key_Return));
...
Litkevich Yuriy Дата 20.11.2009, 14:38
 
Цитата(FenixTES @ 20.11.2009, 17:11) *
у меня на этот слот еще повешена кнопка, то есть сам слот пашет,
это отдельное соединение, и я спрашивал не о слоте, а о соединении.

сделай тестовое приложение, на основе текущего, выкинув всё лишнее.
FenixTES Дата 20.11.2009, 14:11
 
Цитата(Litkevich Yuriy @ 20.11.2009, 14:05) *
Цитата(FenixTES @ 20.11.2009, 17:02) *
а не может быть это потому что это окно идет с флагом ToolTip?
ну это легко проверить, убери этот флаг ради теста.
Вопрос: А сигнал со слотом точно соединился? (в консоли по этому поводу ругани не было?)

у меня на этот слот еще повешена кнопка, то есть сам слот пашет, ругани не было

такс, убрал флаг, но все по прежнему
Litkevich Yuriy Дата 20.11.2009, 14:05
 
Цитата(FenixTES @ 20.11.2009, 17:02) *
а не может быть это потому что это окно идет с флагом ToolTip?
ну это легко проверить, убери этот флаг ради теста.
Вопрос: А сигнал со слотом точно соединился? (в консоли по этому поводу ругани не было?)
FenixTES Дата 20.11.2009, 14:02
 
Цитата(Litkevich Yuriy @ 20.11.2009, 12:07) *
помести в свой слот slotSendMess вывод в консоль (qDebug() << "some text";) и посмотри при фокусе на разных виджетах срабатывает слот или нет.

в моём примере, Действие назначено виджету-окну, если я выделяю ячейку в виджете-таблице (т.е. фокус на ней), то комбинация клавиш всё равно действует

застрелица... неоткуда не пашет... не посылает сигнал и все... незнаю на что еще и гнать... а не может быть это потому что это окно идет с флагом ToolTip?
Litkevich Yuriy Дата 20.11.2009, 12:07
  помести в свой слот slotSendMess вывод в консоль (qDebug() << "some text";) и посмотри при фокусе на разных виджетах срабатывает слот или нет.

в моём примере, Действие назначено виджету-окну, если я выделяю ячейку в виджете-таблице (т.е. фокус на ней), то комбинация клавиш всё равно действует
FenixTES Дата 20.11.2009, 11:51
 
Цитата(Litkevich Yuriy @ 20.11.2009, 11:32) *
Цитата(FenixTES @ 20.11.2009, 14:29) *
потому что фокус у QTextEdit'а?
попробуй ему тоже установить это "действие"

поставил на этот текстэдит, но всеравно не пашет...
ЗЫ плохо, что тут нет грусных смайлов...
Litkevich Yuriy Дата 20.11.2009, 11:32
 
Цитата(FenixTES @ 20.11.2009, 14:29) *
потому что фокус у QTextEdit'а?
попробуй ему тоже установить это "действие"

П.С. и целыми сообщениями не цитируй, в этом нет нужды
FenixTES Дата 20.11.2009, 11:29
 
Цитата(Litkevich Yuriy @ 20.11.2009, 10:29) *
FenixTES, ты хочешь, чтобы некий твой виджет принимал комбинацию клавиш?
Если да, то не забывай назначить действие (QAction) этому виджету с помощью, например:
    QAction * togleFullScreen = new QAction(this);
    togleFullScreen->setShortcut(tr("Ctrl+W"));
    addAction(togleFullScreen);
    connect(togleFullScreen, SIGNAL(triggered()), this, SLOT(togleFullScreen()));

вроде сделал, как ты показал, но всеравно не пашет...
 QAction *qatmp = new QAction(this);
    qatmp->setShortcut(tr("Ctrl+Enter"));
    this->addAction(qatmp);
    connect(qatmp,SIGNAL(triggered()), qpbSend,SLOT(slotSendMess()));

так окошко QWidget с двумя QTextEdit'ами и кнопкой, я чтото ввожу в текстедите нажимаю Ctrl+Enter, ну а дальше должна вызваться некая функция...
может не пашет , потому что фокус у QTextEdit'а?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 12:06