我想在点击 QLineEdit 时显示 osk.exe(onscreenkeyboard),并在关注osk.exe 隐藏或最小化? 我该怎么办?
感谢
答案 0 :(得分:0)
您需要使用QProcess
并重新实施方法QLineEdit::focusInEvent
和QLineEdit::focusOutEvent
。尝试实现一个继承自QLineEdit
的类,如下所示:
#include <QLineEdit>
#include <QProcess>
class MyLineEdit: public QLineEdit
{
public:
MyLineEdit(QWidget * parent = 0): QLineEdit(parent)
{
process_ = new QProcess();
}
protected:
void focusInEvent(QFocusEvent * e)
{
QLineEdit::focusInEvent(e);
process_->start("start C:\\osk.exe");
}
void focusOutEvent(QFocusEvent * e)
{
QLineEdit::focusOutEvent(e);
process_->kill();
}
private:
QProcess * process_;
}
(当然用这个osk.exe的确切地址替换C:\\osk.exe
)。
然后只使用MyLineEdit
代替QLineEdit
,它应该有效。我不知道如何隐藏或最小化过程,所以我决定杀死它并在必要时重新启动它; - )