主界面中按钮弹出QWidget框,此时弹框上的QLineEdit无法输入字母和数字,我的是可以输入中文
解决方法:第一步QLineEdit安装焦点事件:(以两个QLineEdit控件为例)
ui->lineEdit_2->installEventFilter(this);
ui->lineEdit_3->installEventFilter(this);
第二步获取焦点事件并使QLineEdit控件获取键盘输入
bool CFuturesTradeLogin::eventFilter(QObject *watched, QEvent *event)
{
if(watched == ui->lineEdit_2)
{
if(event->type() == QEvent::FocusIn)
{
ui->lineEdit_2->grabKeyboard();
}
else if(event->type() == QEvent::FocusOut)
{
}
}
else if(watched == ui->lineEdit_3)
{
if(event->type() == QEvent::FocusIn)
{
ui->lineEdit_3->grabKeyboard();
}
else if(event->type() == QEvent::FocusOut)
{
}
}
return QWidget::eventFilter(watched, event); // 最后将事件交给上层对话框
}
ui->lineEdit_2和ui->lineEdit_3不能同时获取键盘输入,只给获取焦点的输入框键盘输入的功能
效果如下