Проблема: у меня есть пользовательское событие на QLineEdit
внутри пользовательского QComboBox
, и только определенные события передаются от 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
имеет пользовательское событие для стрелок влево и вправо и вкладки. Только стрелки пройдены. Но я не могу заставить вкладку перейти на нее.