我想在单击QLineEdit时显示osk.exe(onscreenkeyboard)并且当关注 osk.exe隐藏或最小化时?我能怎么做?
谢谢
我想在单击QLineEdit时显示osk.exe(onscreenkeyboard)并且当关注 osk.exe隐藏或最小化时?我能怎么做?
谢谢
您需要使用 aQProcess
并重新实现方法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_;
}
(当然替换C:\\osk.exe
为这个osk.exe的确切地址)。
然后只需使用 aMyLineEdit
而不是 a QLineEdit
,它应该可以工作。我不知道如何隐藏或最小化该进程,因此我决定将其杀死并在必要时重新启动它;-)