设计界面,编辑控件里的字符串会自动添加到后面的下拉列表。
#include "mywidget.h"
#include "ui_mywidget.h"
Mywidget::Mywidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Mywidget)
{
ui->setupUi(this);
ui->lineEdit->installEventFilter(this);//要先将事件过滤器安装到要监听的控件上
ui->lineEdit_2->installEventFilter(this);
}
Mywidget::~Mywidget()
{
delete ui;
}
bool Mywidget::eventFilter(QObject *watched, QEvent *event)
{
if (watched==ui->lineEdit) //首先判断控件(这里指 lineEdit)
{
if (event->type()==QEvent::FocusIn) //然后再判断控件的具体事件 (这里指获得焦点事件)
{
ui->lineEdit->text();
}
else if (event->type()==QEvent::FocusOut) // 这里指 lineEdit 控件的失去焦点事件
{
ui->comboBox->addItem(ui->lineEdit->text());
}
return false;
}
else if (watched==ui->lineEdit_2) //首先判断控件(这里指 lineEdit2)
{
if (event->type()==QEvent::FocusIn) //然后再判断控件的具体事件 (这里指获得焦点事件)
{
ui->lineEdit_2->text();
}
else if (event->type()==QEvent::FocusOut) // 这里指 lineEdit2 控件的失去焦点事件
{
ui->comboBox_2->addItem(ui->lineEdit_2->text());
}
return false;
}
return Mywidget::eventFilter(watched,event);
}