C++ Qt5 C++;:子类化QSpinBox和keyPressEvent赢得';行不通
我想跟踪按下enter/return键的时间,然后关注其他一些小部件,但如果没有按下,spinbox应该采取正常操作,而不是其他任何操作。我已经将QSpinBox子类化并创建了受保护的void keyPressEvent(QKeyEvent*event)。里面有这样的代码:C++ Qt5 C++;:子类化QSpinBox和keyPressEvent赢得';行不通,c++,qt,keypress,subclassing,qspinbox,C++,Qt,Keypress,Subclassing,Qspinbox,我想跟踪按下enter/return键的时间,然后关注其他一些小部件,但如果没有按下,spinbox应该采取正常操作,而不是其他任何操作。我已经将QSpinBox子类化并创建了受保护的void keyPressEvent(QKeyEvent*event)。里面有这样的代码: void MytSpinBox::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Return) { qDebug()
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
qDebug() << "Other key";
event->accept();
}
}
void MytSpinBox::keyPressEvent(QKeyEvent*event){
if(event->key()==Qt::key\u Return){
qDebug()如果需要调用事件的默认处理,则需要调用基类实现:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
QSpinBox::keyPressEvent(event);
}
}
void MytSpinBox::keyPressEvent(QKeyEvent*event){
if(event->key()==Qt::key\u Return){
qDebug()如果需要调用事件的默认处理,则需要调用基类实现:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
QSpinBox::keyPressEvent(event);
}
}
void MytSpinBox::keyPressEvent(QKeyEvent*event){
if(event->key()==Qt::key\u Return){
qDebug()是您的全部代码吗?您没有调用基类实现(QSpinBox::keyPressEvent(event)
),这当然会破坏您的spinbox。它是您的全部代码吗?您没有调用基类实现(QSpinBox::keyPressEvent(event)
),这当然会破坏您的spinbox。