Qt InputDialog 置顶后模拟键盘输入失效问题
开发环境: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)未注释部分为功能替换部分,创建对象时需要指定父对象,否者窗口不会置顶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现