[英]Keyboard letters of a to z are not working in keyPressEvent in Qt
我在我的應用程序中使用KeyPressEvent
。 但是從a到z的字母不起作用。
void mywindow::keyPressEvent(QKeyEvent *event)
{
switch(event->key())
{
case Qt::Key_Left:
break;
}
}
這工作正常
但是,當我使用Key_R
或Key_L
它不起作用。
編輯:keyReleaseEvent使用這些字母。
嘗試這個:
void SimpleWidget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_R)
{
// Key R was pressed
}
}
或者,您可以簡單地使用QString QKeyEvent::text () const
方法檢查鍵值。
不知道您仍然需要它,但是也許有人會。
我處在相同的情況下,當按a到z字母時,沒有事件發送到我的QMainWindow,但是ctrl,cmd,alt或esc ...正在工作。
我解決了將此問題添加到構造函數中的問題。
this->setFocusPolicy ( Qt::StrongFocus );
閱讀setFocusPolicy文檔
然后
MyQMainWindow::keyPressEvent(:keyPressEvent(QKeyEvent *pevent)
{
if (pevent->key() == Qt::Key_Control)
qDebug() << "ctrl pressed";
if (pevent->key() == Qt::Key_A)
qDebug() << "a pressed";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.