Hintergrund Farbe über colorchooser.askcolor ändern

Fragen zu Tkinter.
Antworten
Woody_99
User
Beiträge: 10
Registriert: Montag 20. November 2017, 20:16

Hallo, ich möchte die Hintergrundfarbe des Programms mit der colorchooser.askcolor Funktion ändern. Ich schaffe es bereits, dass sich bei dem Fenster etwas auswählen kann, aber leider wird nichts übernommen, woran kann das liegen und was kann ich dagegen machen? :D

Danke, Woody
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@Woody_99: was hast Du denn versucht?
Woody_99
User
Beiträge: 10
Registriert: Montag 20. November 2017, 20:16

Sirius3 hat geschrieben:@Woody_99: was hast Du denn versucht?
Das hab ich versucht(Ausschnitte des Programms):

Code: Alles auswählen

def backcolorselect():
    backcolorakt = colorchooser.askcolor(color="#FFFFFF", title = "Hintergrundfarbe")
    
    noteStyler.configure("TFrame", background=backcolorakt , foreground='black', borderwidth=0)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Woody_99

Hier ein Beispiel zum ausprobieren:

Code: Alles auswählen

#!/usr/bin/python3
# -*- coding: utf-8 -*-

try:
    # Tkinter for Python 2.xx
    import Tkinter as tk
    #from Tkinter import ColorChooser
    import tkColorChooser as colorchooser
except ImportError:
    # Tkinter for Python 3.xx
    import tkinter as tk
    from tkinter import colorchooser


class ColorChooser(tk.Frame):
  
    def __init__(self, master):
        self.master = master 
        tk.Frame.__init__(self, master)
               
        self.master.title("Color chooser")      
        self.pack(fill='both', expand=1)
        
        tk.Button(self, text="Farbwahl", command=self.change_bg_color).pack(
            expand=True)
        
    def change_bg_color(self):
        rgb_format, hex_format = colorchooser.askcolor()
        self.config(bg=hex_format)

         
def main():
    app_win = tk.Tk()
    app_win.geometry("300x300+100+100")
    ColorChooser(app_win).pack(fill='both', expand=True)
    
    app_win.mainloop()  


if __name__ == '__main__':
    main()  
Gruss wuf :wink:
Take it easy Mates!
Antworten