2013-06-27 1 views
2

У меня есть несколько вопросов:Как поймать изменения раскладки клавиатуры

  • Поймайте события клавиатуры изменения макета.
  • Получить текущий язык клавиатуры.
  • Изменение раскладки клавиатуры из моей программы.

Я попытался это первый:

bool MyWindow::event(QEvent* e) 
{ 
    if (e->type() == QEvent::KeyboardLayoutChange) 
     qDebug() << "Keyboard Layout Changed"; 

    return QWidget::event(e); 
} 

Но этот тип события никогда не передается. Кроме того, я не знаю, как решить другие 2 проблемы.

Не могли бы вы показать мне какой-либо практичный пример в последней версии Qt или некоторых других кросс-платформенных решениях этой проблемы?

Qt 5.0.2
Windows 7 Visual Studio 2012
Ubuntu 12,04 G ++ 4.7.0

+0

Это регрессия в Qt 5: https://bugreports.qt-project.org/browse/QTBUG-27681 – Mitch

+0

@Mitch Спасибо. Я не видел этого отчета раньше. – DeadWarlock

ответ

0

Там нет кросс-платформенное решение, чтобы получить язык клавиатуры или изменить его расположение внутри Qt. Вам понадобятся решения для платформы: одна для Windows, одна для X11. В будущем вам понадобится Wayland, я бы предположил.

 Смежные вопросы

  • Нет связанных вопросов^_^