Я хочу показать osk.exe(onscreenkeyboard) при нажатии на QLineEdit и при фокусе на osk.exe скрыть или свернуть< /сильный>? Как я могу сделать?
Спасибо
Я хочу показать osk.exe(onscreenkeyboard) при нажатии на QLineEdit и при фокусе на osk.exe скрыть или свернуть< /сильный>? Как я могу сделать?
Спасибо
Вам нужно использовать 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_;
}
(Конечно замените C:\\osk.exe
на точный адрес этого osk.exe).
Тогда просто используйте MyLineEdit
вместо QLineEdit
, это должно сработать. Я не знаю, как скрыть или минимизировать процесс, поэтому я решил вместо этого убить его и перезапустить, если это необходимо ;-)