Descriptiontext eines CommandLinkButtons

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Hey zusammen.

Ich möchte im Designer einen CommandLinkButton mit Textgröße 12 in blau und als Descriptiontext Größe 8 und schwarz. Wie kann ich das ändern? Bei mir hat der Buttontext und die Description immer gleiche Größe und Farbe.

Danke.
Dies ist keine Signatur!
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

push
Dies ist keine Signatur!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Qt nutzt für das meiste dieser Dinge Stylesheets ähnlich der CSS, die man vom Web her kennt. Guck mal im Property-Editor unter dem QWidget-Teil nach. Dort gibts das Attribut "styleSheet". Klickst Du da rein, kannst Du Styles für dieses Widget anlegen. Welche es gibt für das jeweilige Widget kannst Du in der Doku zu Qt nachgucken. Da gibts über "Styling" ein extra Kapitel inkl. Referenz.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Hab schon gesucht, der CommandLinkButton erwartet für die Property "description" einfach nur einen QString. Wir kann ich dafür jetzt Farbe und Größe ändern, OHNE den eigentlichen Buttontext zu verändern.
Dies ist keine Signatur!
lunar

@shaldy: Mit dem Text hat das gar nichts zu tun. Für das Aussehen des Knopfs sich ganz andere Eigenschaften da, unter anderem eben das von Hyperion erwähnte Stylesheet. Also lies doch bitte die Dokumentation von Qt zu diesem Thema durch.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Hab mir die Dokumentation durchgelesen und nichts gefunden, dass auf den Descriptiontext eines CommandLinkButtons hinweisen könnte.
Dies ist keine Signatur!
lunar

@Shaldy: Ach so, ich hatte Dein Problem nicht vollständig verstanden, verzeih mir bitte. Es scheint in der Tat so zu sein, dass Qt es nicht ermöglicht, Text und Beschreibung eines QCommandLinkButton getrennt zu "stylen". Die Eigenschaft "color" ändert beide Schriften zugleich. Ich schätze, dass sich dies durch die Einschränkungen der Windows-API begründet, die unterschiedliche Farben offenbar nicht unterstützt.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Okay, danke schonmal für die Antwort.
Gibt es irgendeine Möglichkeit, dieses Problem zu umgehen?

Bin dankbar für alle Vorschläge!
Dies ist keine Signatur!
ichisich
User
Beiträge: 134
Registriert: Freitag 1. Januar 2010, 11:52

Du erstelltst ein Bild mit dem Text und legst es auf den Button und machst den "normalen" text duchsichtig falls Du irgendwie mit

Code: Alles auswählen

comandLinkButton.description ()
# oder
comandLinkButton.text()

an den jeweiligen String willst. (Auch wegen Barrierefreiheit etc.)

Kann man natürlich auch Dynamisch machen in dem man von der Klasse ableitet und die Klasse um Methoden erweitert die das übernehemen.

Ist nur so ein gedanke ...

Gruß
lunar

@shaldy: Eine direkte Möglichkeit, dieses „Problem“ zu umgehen, gibt es nicht. Es mag allenfalls mehr oder weniger hässliche Tricks geben, wie eben die von ichisich erwähnte Idee, ein Bild über den Knopf zu legen. Ich halte von dieser Idee nicht allzu viel, da eine Implementierung, bei der der Benutzer keine Schönheitsfehler sieht, sehr schwierig ist, und letztlich darauf hinausläuft, dass Bild dynamisch zu zeichnen (da man sonst nicht skalieren kann ohne die Schrift zu verzerren).

Das ist es schon sinnvoller, von QCommandLinkButton abzuleiten, ".paintEvent()" zu überschreiben, und das Steuerelement gleich zumindest teilweise selbst zu zeichnen. Da man aber keinen Zugriff auf die Zeichenlogik der Oberklasse hat, und zudem noch den Oberflächenstil berücksichtigen muss, ist auch das keinesfalls einfach.

Es mag andere Möglichkeiten geben, doch im Allgemeinen würde ich Dir raten, die Idee zu vergessen. Es ist sowieso allgemein keine gute Idee, Farben und insbesondere Schriftgrößen fest vorzugeben, da das zu Konflikten mit den Benutzereinstellungen und den Vorgaben des Betriebssystems führen kann. Gerade die Schriftgröße muss der Nutzer selbst bestimmen können, um sie den jeweiligen Zielgerät anzupassen. Ein 24''-Monitor verlangt nun mal nach ganz anderen Maßen als ein 10''-Netbook oder gar ein 3''-Mobiltelefon.
Antworten