wie mehrere Button-BackGround ändern, wie ?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
gambasso
Foriker
Beiträge: 903
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

wie mehrere Button-BackGround ändern, wie ?

Beitrag von gambasso » Do 19. Jul 2018, 10:35

moin,

wie ändere ich bei mehreren Buttons die Hintergrundfarbe unter 'qt5' ?
Da die neue Farbgestaltung unter den neuen Versionen ziemlich blass ist, möchte ich diese ändern.
Nach Möglichkeit sollte dieses automatisch erfolgen, wenn 'qt5' installeirt ist.

Gibt es dazu eine Möglichkeit? Ich bekomme zwar die erstellten Buttons einer Form ausgelesen, aber wie weise ich denen dann eine andere Hintergrund-Farbe zu?
Gruss

Benutzeravatar
cogier
Foriker
Beiträge: 4
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von cogier » Do 19. Jul 2018, 16:21


gambasso
Foriker
Beiträge: 903
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von gambasso » Do 19. Jul 2018, 17:11

hallo cogier,

ist leider nicht so wie ich es brauche. In dem Beispiel werden die Buttons zur Laufzeit erstellt und können dadurch per Programm verändert werden.
Bei der Erstellung über die IDE habe ich nocht nicht geschaft diese dann auszulesen und die Farbe zu wechseln.
Gruss

vuott
Foriker
Beiträge: 82
Registriert: Fr 16. Jan 2015, 01:27
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von vuott » Fr 20. Jul 2018, 12:38

Hello,

Gianluigi, from italian gambas forum, suggests you this example-program:

https://sourceforge.net/projects/qt5ct/

Benutzeravatar
cogier
Foriker
Beiträge: 4
Registriert: Do 19. Jul 2018, 16:18
Wohnort: Guernsey, Channel Islands
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von cogier » Fr 20. Jul 2018, 15:20

Es gab dort ein anderes Programm, das Sie ausprobieren konnten.

http://forum.gambas.one/viewtopic.php?f=4&t=616#p1204

besenmuckel
Foriker
Beiträge: 75
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von besenmuckel » Fr 20. Jul 2018, 17:11

Ich habe es in meinen Programm so gelöst. Über Menü -> Einstellungen öffnet sich ein TabStrip mit den verschiedenen Reiter. Dieses ist in der Höhe oben etwas kleiner, damit man die Änderungen gleich sieht. Für die das Ändern vervwende ich einen ColorButton. Es wird dann die ausgewählte Farbe den entsprechenden Button zugewiesen. Habe es bewust nicht für alle gemacht. In den Einstellungen soll er die default behalten, falls man mal aus Versehen z. B. schwarze Schrift auf schwarzen Grund ausgewählt hat. Die Einstellungen werden mit Projekt-Komponente(gb.settings) gespeichert und bleiben beim nächsten Start erhalten.
Das zusätzliche Abspeichern des Wert in einer Datei hat andere Gründe. Ich kopiere hier einfach mal mein Code für die Farbe(Hintergrund) der Schaltflächen hier rein. Für die Schriftfarbe der Buttons habe ich dazu einen weteren ColorButton für Foregrund. Vielleicht hilt es dir ja weiter.

Code: Alles auswählen

Public Sub tabtripColorButtonBackground_Change()
  
  btnAxscreensaver.Background = tabtripColorButtonBackground.Color
  btnAvideoFile.Background = tabtripColorButtonBackground.Color
  btnAvideoDir.Background = tabtripColorButtonBackground.Color
  btnAdvb.Background = tabtripColorButtonBackground.Color
  btnVDR.Background = tabtripColorButtonBackground.Color
  btnAwebcam.Background = tabtripColorButtonBackground.Color
  btnAwetter.Background = tabtripColorButtonBackground.Color
  btnAurl.Background = tabtripColorButtonBackground.Color
  btnyoutube.Background = tabtripColorButtonBackground.Color
  btnAlauftext.Background = tabtripColorButtonBackground.Color
  btnAglobus.Background = tabtripColorButtonBackground.Color
  btnProvider.Background = tabtripColorButtonBackground.Color
  tgbtnEPGload.Background = tabtripColorButtonBackground.Color
  btnVorschauOff.Background = tabtripColorButtonBackground.Color
  tlbLauf.Background = tabtripColorButtonBackground.Color
  btnStart.Background = tabtripColorButtonBackground.Color
  btnStop.Background = tabtripColorButtonBackground.Color
  btnEnde.Background = tabtripColorButtonBackground.Color
  tabtripButtonDefault.Background = tabtripColorButtonBackground.Color
  MyColorButtonBackground = tabtripColorButtonBackground.Color
  lbpanSaveOK.Background = Color.Green
  lbpanSaveOK.Foreground = Color.Default
  bmguckmysettings["FMain/ButtonBackground"] = MyColorButtonBackground
  File.Save(User.Home &/ ".config/bmguck/btnBack", MyColorButtonBackground)
  lbpanSaveOK.Visible = True
  Wait 1.0
  lbpanSaveOK.Visible = False
  
End
colorbutton.png
colorbutton.png (108.24 KiB) 167 mal betrachtet
Hintergrund für Button z. B. auf grün setzen

Code: Alles auswählen

Button1.Background = Color.Green
Farbe zurücksetzen dann z. B. so.

Code: Alles auswählen

Button1.Background = Color.Default
Änderung in der IDE geht mit Auswahl des Buttons und in den Eigenschaften dann Background + Foreground die Farben auswählen. Habe dieses aber nicht gemacht. Denn lege ich nur den Hintergrund für den Button fest und gebe das Programm jemand anders der als Standard-Farbschema was anderes benuttzt und die Schrifftfarbe der Buttons die des gesetzten Hintergrund entspricht dann ist das blöd.

gambasso
Foriker
Beiträge: 903
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von gambasso » Sa 21. Jul 2018, 10:14

moin,

ich dachte dabei an folgendes:

da wie ich schon erwähnt habe bei 'qt4' die Hintergrundfarbe von Buttons sich nich ändern läßt, wollte ich auslesen ob 'qt5' installiert ist. Wenn dem so ist, soll das Programm dann die auf der Form liegenden Buttons auslesen und die automatisch Hintergrundfarbe ändern. Und beim 'automatisch liegt bei mir das Problem. Ich kann zwar die Buttons auslesen, die Bezeichnung hab ich z.b. in einem Array stehen. Aber wie spreche ich diese dann an und ändere die Hintergrundfarbe?
Gruss

Benutzeravatar
gambi
Moderator
Beiträge: 318
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von gambi » So 22. Jul 2018, 10:31

Hallo gambasso,
gambasso hat geschrieben:
Sa 21. Jul 2018, 10:14
... soll das Programm dann die auf der Form liegenden Buttons auslesen und die automatisch Hintergrundfarbe ändern. ... Ich kann zwar die Buttons auslesen, die Bezeichnung hab ich z.b. in einem Array stehen. Aber wie spreche ich diese dann an und ändere die Hintergrundfarbe?
Du musst also durch alle Controls auf deiner Form (bzw. in dem interessierten Container) iterieren und dir die "Buttons" herauspicken.

Angenommen, deine Buttons sind alle auf einer Form: gambas code
Dim hCon as Control
 For Each hCon In Me.Controls                           ' Durchlaufe alle Controls der Form
    If Object.Class(hCon).Name = "Button" Then          ' Wenn der Klassenname des Controls ="Button" ist, dann ...
      hCon.Background = Color.Yellow                    '... mache den Hintergrund gelb.
    Endif
  Next
Hoffe, das hilft.
Schönen Sonntag noch

gg

gambasso
Foriker
Beiträge: 903
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: wie mehrere Button-BackGround ändern, wie ?

Beitrag von gambasso » So 22. Jul 2018, 11:55

moin,

hi gambi, das ist genau das Richtige. Klappt auch.Danke schön. Damit kann man eine Form, nach meiner Ansicht, wieder ansehlicher gestalten.
Gruss

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste