Qt5 C++:子类化 QSpinBox 和 keyPressEvent 不起作用
Qt5 C++: Subclassing QSpinBox and keyPressEvent won't work
我想跟踪输入/返回键被按下的时间,然后关注其他小部件,但如果它没有被按下,那么spinbox应该采取正常的行动,而不是其他任何事情。我已经子类化了QSpinBox并创建了受保护的void keyPressEvent(QKeyEvent *event)。里面是这样的代码:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
qDebug() << "Other key";
event->accept();
}
}
这段代码应该可以工作,但是它没有。我不知道出了什么问题,但是当我专注于提升spinbox并试图改变其中的数字时,它就是不起作用,我只得到调试消息打印。如果我按enter/return键,它会打印调试消息,并专注于我在editingFinished()中设置的其他小部件。
我做错了什么?
如果需要调用事件的默认处理,则需要调用基类实现:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
QSpinBox::keyPressEvent(event);
}
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 我的神经网络不起作用 [XOR 问题]
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- QSqlquery prepare()和bindvalue()不工作
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 检查输入是否不是整数或数字
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么这个运算符<重载函数对 STL 算法不可见?
- a到z的键盘字母在Qt的keyPressEvent中不起作用
- Qt5 C++:子类化 QSpinBox 和 keyPressEvent 不起作用
- Qt keyPressEvent不注册时W/A/S/D键按下