Seite 1 von 1

[gelöst] [Qt4] QMenu(Mausklick verhält sich nicht wie Enter)

Verfasst: 7. November 2005 19:23
von ArneStocker
Hallo

ich habe testweise ein kleines prog. geschrieben und festgestellt, dass sich QMenu unterschiedlich verhält, je nachdem ob ich den Eintrag mit der Maus oder mit der Entertaste (navigiert durch die Pfeiltasten) auswähle

Code: Alles auswählen

QString PopMenu(..)
{
    // Popup füllen
    MenuBaum::iterator baumit;
    for ( baumit = m_baum.begin(); baumit != m_baum.end(); ++baumit ) {
          QString eintrag = baumit.key();
          pPopupScript->addAction(eintrag);
    }
    ....
    // popup ausführen
    QAction *pAction = pPopupScript->exec(pos);
    if (pAction != NULL)
         return pAction->text();
    else
        return "Mist";
}
Wenn ich das Menü mit der Maus auswähle, erhalte ich brav den ausgewählten Text, wenn ich das Menü mit der Entertaste auswähle, erhalte ich nur "Mist". Ist das normal oder nicht? Da es mir an dieser Stelle nur auf den Text ankommt (= Unterstützung der Texteingabe) möchte ich eigentlich nicht den Weg über die Slots gehen.

Gruss Arne

Re: QT 4.01 und QMenu (Mausklick verhält sich nicht wie Ente

Verfasst: 8. November 2005 07:36
von macman
Kann ich nicht nachvollziehen, allerdings fülle ich meine Menüs auch mit echten QActions und überlasse das erstellen nicht der addAction Methode. Sollte eigentlich keinen Unterschied machen, aber versuch es mal:

Code: Alles auswählen

QString PopMenu(..)
{
    // Popup füllen
    MenuBaum::iterator baumit;
    for ( baumit = m_baum.begin(); baumit != m_baum.end(); ++baumit ) {
          QString eintrag = baumit.key();
          QAction* act = new QAction(eintrag);
          pPopupScript->addAction(act);
    }
    ....
    // popup ausführen
    QAction *pAction = pPopupScript->exec(pos);
    if (pAction != NULL)
         return pAction->text();
    else
        return "Mist";
} 

Verfasst: 9. November 2005 10:06
von ArneStocker
das ändert leider auch nichts. Ich bin also den Umweg über die Slots gegangen

Gruss Arne