laut Fachbuch soll folgender Mini-Code einen Farbwähler, d.h. die Farbpalette von "tkinter" zeigen, funktioniert bei mir aber nicht.


Code: Alles auswählen
from tkinter import *
t = Tk()
colorchooser.askcolor()
Gruß ... Grexie

Code: Alles auswählen
from tkinter import *
t = Tk()
colorchooser.askcolor()
Code: Alles auswählen
from tkinter.colorchooser import askcolor
askcolor()
Code: Alles auswählen
from tkinter.colorchooser import *
color = askcolor()
print(color[0])
Code: Alles auswählen
from tkinter.colorchooser import askcolor
color = askcolor()
rgb = [int(rgb_value) for rgb_value in color[0]]
print(rgb)
moe hat geschrieben: Mittwoch 30. Juni 2021, 22:17 Noch ein kleiner Nachtrag: seltsamerweise werden die rgb-Werte als Gleitkommazahlen mit Nachkommastellen ausgegeben. Ich habe mal kurz recherchiert. Dies ist ein Bug in Tkinter, welcher mit Python 3.10 behoben sein wird (https://bugs.python.org/issue33289). Ein kurzer Workaround könnte so aussehen:
Damit wird eine Liste mit Ganzzahlen der rgb-Werte erstellt.Code: Alles auswählen
from tkinter.colorchooser import askcolor color = askcolor() rgb = [int(rgb_value) for rgb_value in color[0]] print(rgb)
Code: Alles auswählen
from tkinter.colorchooser import askcolor
color = askcolor()
#alle 4 gespeicherten RGB-Werte
print("Die gespeicherten RGB-Werte: ", color)
#die 3 gespeicherten RGB-Werte als "float"
rgb = color[0]
print("3 RGB-Werte: ", rgb)
#die RGB-Werte als Hexadezimalzahl
rgb_hex = color[1]
print("RGB als Hex: ", rgb_hex)
#die einzelnen RGB-Kanäle als "integer"
rgb1 = int(rgb[0])
print("1. RGB-Wert: ", rgb1)
rgb2 = int(rgb[1])
print("2. RGB-Wert: ", rgb2)
rgb3 = int(rgb[2])
print("3. RGB-Wert: ", rgb3)