[英]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鍵,它將打印調試消息並關注我在editFinished()中設置的其他小部件。
我究竟做錯了什么?
如果需要調用事件的默認處理,則需要調用基類實現:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
QSpinBox::keyPressEvent(event);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.