Farbe auswählen und Hexzahl anzeigen
Verfasst: Donnerstag 24. März 2005, 19:44
Hallo,
da es mich immer genervt hat, die richtigen Farbeinstellungen herauszufinden, habe ich mir ein kleines Tool gebaut.
Da kann ich jetzt mit den Reglern die gewünschte Farbe einstellen, den Farbwert (z.B. '#8b5a4a') ablesen und ins Programm übernehmen.
Das lässt sich ggf. auch eleganter erstellen - es erfüllt aber seinen Zweck.
Stephan
da es mich immer genervt hat, die richtigen Farbeinstellungen herauszufinden, habe ich mir ein kleines Tool gebaut.
Da kann ich jetzt mit den Reglern die gewünschte Farbe einstellen, den Farbwert (z.B. '#8b5a4a') ablesen und ins Programm übernehmen.
Code: Alles auswählen
# -*- coding: utf-8 -*-
from Tkinter import *
class Farbschema:
def __init__(self):
self.root = Tk()
self.fr1 = Frame(self.root)# Hauptframe
self.fr1.pack()
self.fr2 = Frame(self.fr1) # Frame für die Schieberegler
self.fr2.pack()
self.fr3 = Frame(self.fr1) # Frame für die Farbanzeige
self.fr3.pack(fill=X)
self.fr4 = Frame(self.fr1) # Frame für die Buttons
self.fr4.pack()
# Regler für die Farbe Rot #
self.scale_r1 = Scale(self.fr2,length='6c',
from_=0,
to=15,
label='Farbanteil Rot:',
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_r1.pack()
self.scale_r2 = Scale(self.fr2,length='6c',
from_=0,
to=15,
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_r2.pack()
# Regler für die Farbe Grün #
self.scale_g1 = Scale(self.fr2,length='6c',
from_=0,
to=15,
label='Farbanteil Grün:',
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_g1.pack()
self.scale_g2 = Scale(self.fr2,length='6c',
from_=0,
to=15,
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_g2.pack()
# Regler für die Farbe Blau #
self.scale_b1 = Scale(self.fr2,length='6c',
from_=0,
to=15,
label='Farbanteil Blau:',
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_b1.pack()
self.scale_b2 = Scale(self.fr2,length='6c',
from_=0,
to=15,
orient=HORIZONTAL,
showvalue=0,
command=self.anzeige)
self.scale_b2.pack()
# Farblabel + Wertanzeige#
self.lb1 = Label(self.fr3,height=4,bd=1,relief=GROOVE)
self.lb1.pack(fill=X,padx=4,pady=4)
self.lb2 = Label(self.fr3,bd=1,font=('arial',11,'bold'))
self.lb2.pack(fill=X,padx=4,pady=4)
# Button Beenden '
self.bu = Button(self.fr4,text=' Beenden ',command=self.ende)
self.bu.pack(padx=4,pady=4)
def wert_r1(self):
self.r1 = self.scale_r1.get()
def wert_r2(self):
self.r2 = self.scale_r2.get()
def wert_g1(self):
self.g1 = int(self.scale_g1.get())
def wert_g2(self):
self.g2 = int(self.scale_g2.get())
def wert_b1(self):
self.b1 = int(self.scale_b1.get())
def wert_b2(self):
self.b2 = int(self.scale_b2.get())
def hexwert(self,zahl):
if zahl < 10:
z = zahl
elif zahl == 10:
z = 'a'
elif zahl == 11:
z = 'b'
elif zahl == 12:
z = 'c'
elif zahl == 13:
z = 'd'
elif zahl == 14:
z = 'e'
elif zahl == 15:
z = 'f'
return z
def anzeige(self,event):
self.wert_r1()
self.wert_r2()
self.wert_g1()
self.wert_g2()
self.wert_b1()
self.wert_b2()
self.farbe = '%s%s%s%s%s%s'%(self.hexwert(self.r1),
self.hexwert(self.r2),
self.hexwert(self.g1),
self.hexwert(self.g2),
self.hexwert(self.b1),
self.hexwert(self.b2))
self.lb1.config(bg='#%s%s%s%s%s%s'%(self.hexwert(self.r1),
self.hexwert(self.r2),
self.hexwert(self.g1),
self.hexwert(self.g2),
self.hexwert(self.b1),
self.hexwert(self.b2)))
self.lb2.config(text='Angezeigte Farbe: #%s%s%s%s%s%s'%(self.hexwert(self.r1),
self.hexwert(self.r2),
self.hexwert(self.g1),
self.hexwert(self.g2),
self.hexwert(self.b1),
self.hexwert(self.b2)))
def run(self):
self.root.mainloop()
def ende(self):
self.root.destroy()
if __name__ == '__main__':
Anwendung = Farbschema()
Anwendung.run()
Stephan