2
votes

This following is a follow-on to a previous question.

I've got a Qt dialog window that contains a QPlainTextEdit widget, for which I've created a Software Input Panel (SIP), following the example here. In this example an input widget, e.g. QPlainTextEdit, must be clicked twice in order for the SIP to appear. This is because (see example) a QEvent::WindowActivate event is not raised the QPlainTextEdit is clicked.

The workaround that I'm considering is to raise a QEvent::WindowActivate event when a QPlainTextEdit gets focus. Therefore I'd like to know how if it is possible to raise a QEvent::WindowActivate event and how to do so -- assuming the workaround makes sense.

1

1 Answers

2
votes

Found the solution, on the qt-project.org forum

QEvent event(QEvent::RequestSoftwareInputPanel);
QApplication::sendEvent(newFocus, &event);