【发布时间】:2018-11-03 17:24:42
【问题描述】:
我正在尝试为使用 QT/C++ 开发的应用程序调出 Windows 屏幕键盘。我目前有一个自定义屏幕键盘,但在所有屏幕尺寸下看起来都不是很好,所以我想使用 Windows 原生键盘。当输入焦点在文本框上时,我想自动调出键盘。我是 QT 的新手,但不是 C++ 的新手。我检查了其他一些类似的问题,但似乎这些解决方案没有太大帮助。
编辑:以下解决方案不会启动键盘。它们编译时没有错误,但实际上并没有启动 osk。
void MainWindow::on_Button_released()
{
ui->Button->setChecked(true);
//Attempt 1
//ShellExecute( NULL, NULL, L"osk.exe", NULL, NULL, SW_SHOW );
//Attempt 2
/* QObject *parent;
QString program = "./osk.exe";
QStringList arguments;
//arguments << "-b" << "-t" << "input.txt";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program);//, arguments);
*/
//Attempt 3
/* QProcess *process = new QProcess(this);
QString file = QDir::homepath + "/tabtip.exe";
process->start(file);
*/
//Attempt 4
/*
QProcess::execute ("start C:\\Windows\\System32\\osk.exe");
*/
//Attempt 5
system ("start C:\\Windows\\System32\\osk.exe");
}
**Attempt 5 特别给出了一个错误,详细说明找不到文件,并建议检查是否指定了正确的路径。我已经验证了路径,并且 osk.exe 运行良好 - 只是不在我的应用程序中。
【问题讨论】:
-
我真的很惊讶这个问题被搁置了。除了需要一些小的澄清之外,这对我来说似乎很好。
-
我并不感到惊讶...这里的许多人倾向于尽可能地摆脱问题而不是回答问题。出于这个原因,我只将这个网站作为最后的手段。
-
编辑您的问题(只需简单的编辑即可)。这将引起有权重新打开它的人的注意。我的编辑(由第三方)没有这种效果。顺便说一句,我投了赞成票。我敢肯定你不是唯一一个想要这样做的人。
-
修复了您在启动
osk时遇到的问题 - 见下文。
标签: c++ windows qt user-interface keyboard