2016-07-25 19 views
0

Ich wollte die Farbe eines Radiobutton nach Überprüfung, ob einige Dateien in einem Verzeichnis vorhanden sind, aber nicht in der Lage, es zu erreichen, wie nicht sicher konfigurieren -background color funktioniert für Radio Taste.TCL: Wie Farbe der Radiobutton nach Prüfung bestimmter Bedingung ändern

Hier ist ein Beispielcode sieht aus wie

set topdir $path 

ttk::checkbutton .top.d.z.$t -text $v -variable s -command [list select_lib $v $elem $g $t] $t] \ 
     -value $v.kill -padx 2 -pady 2 
if {file exist $path/rc.log == 1} { 
    #change color to green in widget 
} else { 
    # retain same background of radio button 
} 

Bitte jede Methode vorschlagen, dies zu erreichen.

+0

Auch sollte der Test 'sein {[Datei existiert $ path/rc.log]}', aber ich nehme an, dies nur Demonstration Code. –

+0

Ich denke, eine andere Frage ist, möchten Sie die Farbe des Radiobutton ändern, oder möchten Sie ändern, ob es ausgewählt ist? –

Antwort

1

OK, mit Dank an RLE und Brad Lanam für ihre Beschreibungen des ttk-Stils im Wiki.

erstellen und Radiobutton finden:

pack [ttk::radiobutton .b -text foo] 

einen benutzerdefinierten Stil auf dem TRadiobutton Stil Standard basierte erstellen, mit dem Hintergrund auf grün:

ttk::style configure greenstyle.TRadiobutton -background green 

Wenden Sie diesen Stil auf den Radiobutton zu drehen der Hintergrund grün:

.b configure -style greenstyle.TRadiobutton 

Zurück zum Normalzustand Hintergrundfarbe:

.b configure -style TRadiobutton 

Wenn wechselnde Farben, etc. auf einem Thema-Widget kann man entscheiden

  • Den Standardstil zu ändern (in diesem Fall TRadiobutton): Dies betrifft alle Widgets des gleichen Typs
  • substyle A, wie in diesem Beispiel (greenstyle.TRadiobutton)
  • klonierte style
  • kratz eingebauten Stil (here für ein Beispiel, siehe) (fo Siehe Beispiele im Verzeichnis unter Windows): nur für Experten.

Bearbeiten von Brad Lanam:

Weitere Informationen über ttk :: RadioButton- Farben

Einige Definitionen:

  • Hintergrund: Die gesamte Hintergrundfarbe hinter allem
  • Vordergrund: Die Farbe des Textes auf dem Radiobutt auf dem Etikett
  • Indikatorfarbe: Die Farbe des Indikators.

Diese Optionen können eingestellt werden, mit dem ttk::style Befehl:

ttk::style configure greenstyle.TRadiobutton -indicatorcolor lightgreen 
ttk::style map greenstyle.TRadiobutton -indicatorcolor \ 
    [list selected darkgreen pressed white] 

die Menge übernehmen und wie oben zurückgesetzt.

Dokumentation: pack, ttk::radiobutton (widget), Introduction to the Tk theme engine, Changing Widget Colors (ttk::radiobutton)

+0

Es tut mir leid, tatsächlich mit ttk: radioButton und es funktioniert nicht dafür. ttk :: checkbutton .top.dz. $ T -text $ v -variable s -kommando [liste select_lib $ v $ elem $ g $ t] –

+1

@DanishSheikh: alles klar. Die themenbezogenen Widgets sind auf diese Weise schwieriger zu konfigurieren, und ich persönlich tue dies nie. Ich werde es später noch einmal untersuchen, es sei denn, hoffentlich kommt Brad Lanam vorbei und gibt Ihnen sofort die Antwort. –

+0

Danke Peter .... –