Ändern Sie die rechteckige Qt-Taste zum Runden

8

Ich versuche eine runde Schaltfläche in Qt zu erstellen. Ein einfaches Formular mit einem einzigen Knopf 'PushButton' wurde im Designer erstellt. Ich versuche dies mit setMask in eine runde Schaltfläche umzuwandeln. Sobald setMask angewendet wird, verschwindet die Schaltfläche. Muss ein benutzerdefiniertes Widget erstellt werden, um eine runde Schaltfläche zu erstellen?

%Vor%

Hinweis: Wenn die Schaltfläche in Code erstellt und auf ein Fenster angewendet wird, bevor das Fenster angezeigt wird, wird die Schaltfläche angezeigt. Ich möchte die WYSIWIG-Funktionen des Qt-Designers verwenden, anstatt das gesamte Formular im Code zu erstellen.

    
DarwinIcesurfer 04.10.2012, 19:18
quelle

2 Antworten

15

Es wird unsichtbar, aber es ist, weil Sie die Ellipse nicht um den richtigen Punkt zentriert haben.

QWidget :: setMask " bewirkt, dass nur die Teile des Widgets sichtbar sind, die sich überlappen. Wenn die Region Pixel außerhalb des rect () des Widgets enthält, steuert das Fenstersystem in dieser Bereich kann oder kann nicht sichtbar sein, abhängig von der Plattform ".

Versuchen Sie stattdessen diesen Code und Sie werden sehen:

%Vor%

Ps. Warum legen Sie die Höhe des PushButton zweimal fest? Ich nehme an, das ist ein Tippfehler und du meinst Breite.

    
stackunderflow 04.10.2012, 19:56
quelle
10

Ich denke, die einfachste Lösung wäre ein Stylesheet.

So:

%Vor%

Siehe auch Beispiele und reference .

Beachten Sie, dass Sie für Ihre Schaltfläche einen vollständigen Stil erstellen müssen, da der Standardstil nicht anwendbar ist.

    
Lol4t0 04.10.2012 19:32
quelle

Tags und Links