QGroupBox Titel Schrift

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
GiJay
User
Beiträge: 36
Registriert: Freitag 5. März 2021, 14:40
Wohnort: Ratingen
Kontaktdaten:

Moin,

wie kann ich die Schrift (Farbe, Größe) des Titels einer GrouBox ändern?

Code: Alles auswählen

group_adress_layout = QGroupBox("Persönliche Daten")
group_adress_layout.setStyleSheet('color: rgb{}'.format(str(textcolor_k)) + '; font-size: 14px; font-weight: bold;')
So ändere ich die ganze Groupbox ... mit "QGroupBox.title" hatt ich leider keinen Erfolg :cry:

Merci !
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Benutzeravatar
Axel-WAK
User
Beiträge: 62
Registriert: Dienstag 29. November 2022, 11:52

Ich denke im StyleSheet kannst Du keine Variablen verwenden. (textcolor_k) StyleSheet ist ccs.
OS: LMDE5 *** Homepage *** Github Seite
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Axel: man kann schon styles setzen, die berechnet sind. Das Ergebnis ist dann ja ein normales Stylesheet.
Benutzeravatar
Axel-WAK
User
Beiträge: 62
Registriert: Dienstag 29. November 2022, 11:52

Du hast recht.
Da es scheinbar um die Titelschrift der GroupBox geht sollte vielleicht QGroupBox::title verwendet werden, vielleicht so

Code: Alles auswählen

setStyleSheet("QGroupBox::title { color: rgb{}'.format(str(textcolor_k)) + '; font-size: 14px; font-weight: bold;}")
OS: LMDE5 *** Homepage *** Github Seite
Benutzeravatar
Axel-WAK
User
Beiträge: 62
Registriert: Dienstag 29. November 2022, 11:52

Das funktioniert

Code: Alles auswählen

        textcolor_k = "#26a269"
        groupbox.setStyleSheet(f"color: {textcolor_k}; font-size: 14px; font-weight: bold;")
OS: LMDE5 *** Homepage *** Github Seite
GiJay
User
Beiträge: 36
Registriert: Freitag 5. März 2021, 14:40
Wohnort: Ratingen
Kontaktdaten:

Axel-WAK hat geschrieben: Freitag 20. Januar 2023, 10:27
Da es scheinbar um die Titelschrift der GroupBox geht sollte vielleicht QGroupBox::title verwendet werden, vielleicht so

Code: Alles auswählen

setStyleSheet("QGroupBox::title { color: rgb{}'.format(str(textcolor_k)) + '; font-size: 14px; font-weight: bold;}")
Das funktioniert leider nicht, aber die Idee war gut.

Das hier funktioniert:

Code: Alles auswählen

#group_adress_layout.setStyleSheet("QGroupBox::title {color: rgb(0, 0, 255);}")
Bei einem QLabel funktioniert auch eine Variable:

Code: Alles auswählen

headline.setStyleSheet('color: rgb{}'.format(str(textcolor_k)) + '; font-size: 20px; font-weight: bold;')
Aber leider nicht bei einer GroupBox:

Code: Alles auswählen

group_adress_layout.setStyleSheet('QGroupBox::title (color: rgb{}'.format(str(textcolor_k));)
Verstehen tue ich es jedoch nicht.
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

Was zeigt denn

Code: Alles auswählen

print('color: rgb{}'.format(str(textcolor_k)) + '; font-size: 20px; font-weight: bold;')
und

Code: Alles auswählen

print('QGroupBox::title (color: rgb{}'.format(str(textcolor_k));)
?
Vermutlich nur copy&paste-Fehler. Das zweite läuft bei mir auf "Syntaxfehler", das erste liefert zwar einen String, der aber nicht so aussieht wie ich das von CSS gewohnt bin und das QT-Zeug hier [kenne ich nun gar nicht] scheint sich hier sehr an CSS zu orientieren.
GiJay
User
Beiträge: 36
Registriert: Freitag 5. März 2021, 14:40
Wohnort: Ratingen
Kontaktdaten:

Also dies funktioniert bei mir aktuell in: QListWidget, QLabel, QGroupBox

Code: Alles auswählen

#textcolor_k = (255, 0, 0)

Code: Alles auswählen

self.leftlist = QListWidget()
self.leftlist.setStyleSheet('color: rgb{}'.format(str(textcolor_k)) + '; font-size: 18px; font-weight: bold;')

Code: Alles auswählen

headline = QLabel("Kontakt 'Neu'")
headline.setStyleSheet('color: rgb{}'.format(str(textcolor_k)) + '; font-size: 20px; font-weight: bold;')
... auch mit einer GroupBox, aber dann alles in der GroupBox - Überschrift, Text ...

Bei der reinen Überschrift von QGroupBox funtioniert es nicht. Es gibt auch keine Fehlermeldung :

Code: Alles auswählen

group_suche_layout = QGroupBox("Suche")
group_suche_layout.setStyleSheet('QGroupBox::title color: rgb{}'.format(str(textcolor_k)) + '; font-size: 20px; font-weight: bold;')
Das jedoch funktioniert bei der reinen Überschrift:

Code: Alles auswählen

group_suche_layout.setStyleSheet("QGroupBox::title {color: rgb(0, 0, 255);}")
GiJay
User
Beiträge: 36
Registriert: Freitag 5. März 2021, 14:40
Wohnort: Ratingen
Kontaktdaten:

... zum Abschluss. So funzt es:

Code: Alles auswählen

group_adress_layout.setStyleSheet(f'QGroupBox::title {{color: rgb{textcolor_k};}}')
Vielen Dank an alle Beteiligten :D
Antworten