crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 14:09