0
型QLineEdit的我想告诉osk.exe(onscreenkeyboard)当点击该QLineEdit的当焦点移出osk.exe 隐藏或最小? 我该怎么办?显示onscreenkeyboard当Qt的
感谢
型QLineEdit的我想告诉osk.exe(onscreenkeyboard)当点击该QLineEdit的当焦点移出osk.exe 隐藏或最小? 我该怎么办?显示onscreenkeyboard当Qt的
感谢
你需要使用一个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
,它应该工作。我不知道如何隐藏或最小化这个过程,所以我决定杀了它,并在必要时重新启动它;-)