QT QcoreApplication postEvent() behaviour
QT QcoreApplication postEvent() behaviour
我已经编写了这个简单的QT主窗口,只有当我将QString参数传递给QKeyEvent时,它才会打印密钥,我希望即使没有QString参数也能打印密钥?
以下代码中的第 1 节似乎不起作用(我没有在 QLineEdit 字段中打印密钥;而第 2 节有效并且打印了"1"! 这是正常行为吗? 当事件发布在代码的第一部分中时会发生什么?
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->ui->lineEdit->setFocus();
Qt::Key key = Qt::Key_1;
// 1
QKeyEvent *event = new QKeyEvent (QEvent::KeyPress, key ,Qt::NoModifier);
QCoreApplication::postEvent(QWidget::focusWidget(), event); // Does not work! No key is set in the widget
//
//2
QKeyEvent *event2 = new QKeyEvent(QEvent::KeyPress, key, Qt::NoModifier, QKeySequence(key).toString());
QCoreApplication::postEvent(QWidget::focusWidget(), event2); // this one works!
}
并非所有键事件都有文本表示形式(删除、光标移动、快捷方式等(。对于那些拥有它的人,QKeyEvent
类将其存储在其文本中。您必须提供该文本,否则它是"无文本"事件。
QLineEdit
只会添加文本,而不是从事件类型推断它(如此处所示(
相关文章:
- 'undefined behaviour'为什么存在?
- Aligned_alloc behaviour
- QT QcoreApplication postEvent() behaviour
- 从qcoreapplication :: postevent提出QEVENT是安全的吗?
- std::async and std::future behaviour
- gettimeofday on uLinux wierd behaviour
- "undefined behaviour"扩展到编译时吗?
- Behaviour of std::string.assign(NULL)?
- Diffrent behaviour-VisualStudio Debugger against running exe
- Boost.Python and Polymorphic Behaviour with std::shared_ptr
- 为什么删除不完整的类型定义为"undefined behaviour"?
- Strange behaviour overriding QWidget::resizeEvent(QResizeEve
- behaviour of const_cast
- 如何使用QCoreApplication::postEvent注入合成输入事件
- ++和+=运算符不修改原始对象是否"incorrect behaviour"?
- 访问冲突QT PostEvent
- QCoreApplication::postEvent的异常安全保证
- "Observable behaviour"和编译器自由消除/转换片段 C++ 代码