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