Ich mache ein Qt-Widget (nennen wir es A
), das ist wirklich eine Unterklasse QGraphicsView. Ich möchte jedoch die QGraphicsView-Methoden in meinem Widget nicht darstellen, nur die grundlegende QWidget-Schnittstelle und einige meiner eigenen Methoden. Daher möchte ich eine Instanz von A
als Mitglied einer einfachen QWidget-Unterklasse kapseln, die wir B
nennen werden.Richtige Methode zum Einkapseln von QWidgets?
Jetzt frage ich mich, was ist der richtige Weg, um dies zu zeichnen? Bis jetzt habe ich B
ein Layout gegeben, dessen einziger Artikel das A
Mitglied ist. Aber das fühlt sich irgendwie falsch an; Zum Beispiel muss ich Standard-Layout-Einstellungen überschreiben, um zusätzliche Ränder usw. zu vermeiden. Dies führt zu dem Gefühl, dass es eine richtige Möglichkeit gibt, dies zu tun, die ich vermisse. Irgendwelche Gedanken?
bearbeiten: Bei der Einstellung von RedX‘Antwort, meine Frage ist: Was ist der richtige Weg, um Verwendunggv
in dieser Einstellung? Geben Sie A
ein Layout und fügen Sie gv
hinzu, oder überschreiben Sie die Malmethoden von A
, um stattdessen die von gv
zu verwenden? Oder etwas anderes?
Ja, dies ist das Setup, wie es jetzt ist. Die Frage lautet dann: Was ist der richtige Weg, * 'gv' in dieser Einstellung zu verwenden? Geben Sie 'A' ein Layout und fügen Sie' gv' hinzu, oder überschreiben Sie 'A's Malmethoden, um stattdessen die von' gv' zu verwenden? Oder etwas anderes? – gspr
Das Überschreiben der Malmethode scheint übertrieben zu sein, wenn Sie nur einige Ränder reduzieren möchten. Verwenden Sie ein Layout in 'A' und fügen Sie' gv' hinzu. Das sollte auch die Absicht klarer machen. – RedX
OK, das war, was ich tun würde. Ich stimme deiner Argumentation zu. Ich wollte nur überprüfen, dass es keinen anderen Weg gibt, der als "der richtige Weg" angesehen wird. – gspr