QCombobox пишет HELLO при нажатии Backspace

я хочу перехватывать сигнал, когда я нажимаю Qcombobox-> linEdit (), клавишу Backpace и очищаю весь текст. Я видел в Интернете, и я пишу этот код, но он не работает. Кажется, что функция keypressevent не вызывается.. Несколько советов???

 MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        ui->comboBox->addItem("11");
        ui->comboBox->addItem("21");
        ui->comboBox->addItem("32");
        ui->comboBox->addItem("41");
        ui->comboBox->addItem("54");
    }

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
  if (obj == ui->comboBox) {
     if (event->type() == QEvent::KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
         qDebug()<<"Ciao";
         if (keyEvent->key() == Qt::Key_Backspace)
         {
             ui->comboBox->clearEditText();
             return true;
         }
  }
     // pass the event on to the parent class
     return QMainWindow::eventFilter(obj, event);
}
}
MainWindow::~MainWindow()
{
    delete ui;
}

person user3589887    schedule 07.06.2017    source источник
comment
Что не работает? Вызывается ли метод eventFilter?   -  person Abrikot    schedule 07.06.2017
comment
eventFilter не вызывается. я не вижу CIAO в выводе   -  person user3589887    schedule 07.06.2017
comment
Я думаю, вам нужно установить этот eventFilter : здесь как это сделать Это.   -  person Abrikot    schedule 07.06.2017
comment
Может быть, вам просто нужен заполнитель? Если это так, см. этот ответ: stackoverflow.com/a/18275148/6165833   -  person ymoreau    schedule 07.06.2017


Ответы (1)


Добавить ui->comboBox->installEventFilter(this);

person olya    schedule 07.06.2017
comment
Добро пожаловать в Stack Overflow! Хотя этот код может помочь решить проблему, он не объясняет, почему и/или как отвечает на вопрос. Предоставление этого дополнительного контекста значительно повысит его долгосрочную ценность. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснение, включая применимые ограничения и предположения. - person Toby Speight; 07.06.2017