开发环境:Qt5.12.2 + QtCreator4.8.2
1、问题背景
嵌入式 linux-arm 触摸屏移植了谷歌拼音输入法后测试使用问题
2、问题现象
1)主窗口编辑框输入法有效
2)QInputDialog 弹框输入法失效
3、问题原因
初步怀疑是QInputDialog 置顶问题导致
4、问题解决
/* 判断权限 */
// bool ok;
// QString text = QInputDialog::getText(this, tr("请输入密码"), tr("密码:"),
// QLineEdit::Password, nullptr, &ok,
// Qt::MSWindowsFixedSizeDialogHint, Qt::ImhTime);
QString text;
QInputDialog inputDialog(this); // 指定输入框父对象,输入框为模态框 很重要
inputDialog.setWindowModality(Qt::WindowModal);
inputDialog.setInputMode(QInputDialog::InputMode::TextInput);
inputDialog.setWindowTitle("请输入密码");
inputDialog.setLabelText("密码:");
inputDialog.setOkButtonText("确认");
inputDialog.setCancelButtonText("取消");
if (inputDialog.exec() == QDialog::Accepted)
{
text = inputDialog.textValue();
}
1)注释部分为失效代码
2)未注释部分为功能替换部分,创建对象时需要指定父对象,否者窗口不会置顶