Gibt es eine Möglichkeit in Qt, einem QMenu
ein Layout oder Widgets hinzuzufügen, um ein benutzerdefiniertes Menü zu erstellen?
Das Beispiel unten (links) ist das, was ich habe, und ich möchte etwas ähnliches wie das Mock-up auf der rechten Seite erreichen, indem ich Nicht-Menü-Widgets hinzufüge. Wenn dies von QMenu
nicht möglich ist, gibt es Anleitungen, um ähnliche Ergebnisse zu erzielen (vielleicht, indem Sie ein Standard-Widget als Kontextmenü verwenden), irgendwo?
Sicher gibt es! In Qt gibt es einen Weg, wenn es einen Willen gibt.
Sie müssen wahrscheinlich Ihre eigene Klasse erstellen, die QMenu
verwendet und ein Mitglied QListWidget
verwendet.
Sie müssen dann das Layout generieren und alle korrekten QLayout
-Funktionen für die Größenneuberechnung überladen.
Und dann müssen Sie dieses Layout verwenden (think QHBoxLayout
), um sowohl eine QMenu
als auch eine QListWidget
Seite an Seite anzuzeigen.
Das sollte genug sein, um Sie in die richtige Richtung zu weisen.
BEARBEITEN:
Wie ein Kommentator hervorhebt, können Sie nicht zwei QObject
Dinge erben, also habe ich die aktualisiert
antworte entsprechend.
Um Menüelemente anzupassen, können Sie QWidgetAction
class verwenden. Aber Sie möchten das Menü so anpassen, dass es wie ein Popup-Widget aussieht. Sie können also QMenu
ableiten und versuchen, das Layout des Menüs für Ihre Bedürfnisse zu verbessern ( QMenu
ist QWidget
). Deine Frage ist nicht klar.
Tags und Links qt qmenu custom-contextmenu