Seite 1 von 1

[Gelöst] Fokus auf QLineEdit innerhalb QGraphicItem

Verfasst: 15. Oktober 2009 15:34
von Xander77
Hallo Forum,

ich habe für die Verwendung eines Touchpanels eine Tastatur implementiert, welche beim Antippen eines Textfeldes zur Texteingabe erscheinen soll. Der Cursor soll jedoch während der Eingabe weiterhin im QLineEdit-Objekt sichtbar sein.

In meiner Testumgebung habe ich das so realisiert, dass nach jedem Testendruck der Fokus darauf zurück gesetzt wird:

Code: Alles auswählen

void VirtualKeyboard_C::OnKeyPressed_Slot(QWidget *pbutton)
{
    if (_output_field != NULL)
    {
        QString key = ((QPushButton*)pbutton)->text();
        if (key == "Space")
            _output_field->insert(" ");
        else if (key == "Bksp") {
            _output_field->backspace();
        } else {
            _output_field->insert(key);
        }
        UpdateShiftState();
        CheckValidKeys();
        _output_field->activateWindow();
        _output_field->setFocus();
    }
}

In der Testumgebung hat das funktioniert, doch im Projekt klappt weder activateWindow() noch setFocus(). Ich vermute, das hängt damit zusammen, dass das Textfeld hier in einem QGraphicsItem liegt. Kann das sein?

Was kann ich tun, um während der Texteingabe weiter den Cursor im Textfeld zu sehen?

Vielen Dank für jegliche sachdienliche Hinweise!

Verfasst: 16. Oktober 2009 09:26
von Xander77
Man muss activateWindow() für das entsprechende QGraphicsView-Objekt aufrufen, dann geht's! :-D