【发布时间】:2018-11-14 16:47:07
【问题描述】:
问题:我在自定义QComboBox 内的QLineEdit 上有一个自定义事件,并且当我需要时,只有特定事件从QComboBox 传递到QLineEdit。我无法让标签被传递。
我希望当一个事件传递给QComboBox 时,它将传递给QComboBox->lineEdit()。
QCustomCombo::QCustomCombo():
m_lineEdit(new QCustomLineEdit)
{
setEditable(true);
setLineEdit(m_lineEdit);
}
bool QCustomCombo::event(QEvent * event)
{
if(event->type() == QEvent::KeyPress)
{
QKeyEvent * keyEvent = static_cast<QKeyEvent *>(event);
if(keyEvent->key() == Qt::Key_tab)
{
//pass to lineEdit();
//I have tried 'return true/false and QWidget::event(event)'
//I have also tried commenting out QCustomCombo::event, same problem
}
}
return QWidget::event(event);
}
QCustomLineEdit
bool QCustomLineEdit::event(QEvent * event)
{
if(event->type() == QEvent::KeyPress)
{
QKeyEvent * keyEvent = static_cast<QKeyEvent *>(event);
if(keyEvent->key() == Qt::Key_tab)
{
//Do custom Stuff
return true;
}
if(keyEvent->key() == Qt::Key_Right)
{
//Do custom Stuff
return true;
}
}
return QWidget::event(event);
}
QLineEdit 具有左右箭头和标签的自定义事件。只有箭头可以通过。但我无法让标签传递给它。
【问题讨论】:
标签: c++ qt qt5 qcombobox qlineedit