ahoj, mám program a vněm mněním chceckbuttonem proměnou a chvá se velice divně, pokud jako první zadám barvu klobouku hnědou pak už ostatní barvy nefungují a vždy se uloží jako hnědá, pokud nastavím jako první jinou barvu uloží se jako 0 (předem jsem sice difinoval že se mají rovnat 0 ale pak to měním a nufunguje to ...jen u hnědé to funguje...):
from livewires import *
from Tkinter import *
oci = 0
pusa = 0
vlasy = 0
klobouk = 0
kloboukBarva = 0
vlasyBarva = 0
hnedevlasy = 0
cernevlasy = 0
zlutyKlobouk = 0
zelenyKlobouk = 0
hnedyKlobouk = 0
def SmileCreator():
def tvoreni():
set_colour(Colour.black)
begin_graphics()
circle(300,200,200)
move(300,250)
draw(350,175)
draw(275,175)
if oci == "modre":
set_colour(Colour.blue)
elif oci == "zelene":
set_colour(Colour.green)
elif oci == "hnede":
set_colour(Colour.brown)
circle(250,250,10, filled=1)
circle(350,250,10, filled=1)
if vlasy.get() == "ano":
if vlasyBarva == "hneda":
set_colour(Colour.brown)
elif vlasyBarva == "cerna":
set_colour(Colour.black)
circle(300,270, endpoints = ((490,270), (110,270)), filled=1)
elif vlasy.get() == "ne":
pass
if klobouk.get() == "ano":
if kloboukBarva == "hneda":
set_colour(Colour.brown)
elif kloboukBarva == "zelena":
set_colour(Colour.green)
elif kloboukBarva == "zluta":
set_colour(Colour.yellow)
move(50,300)
draw(550,300)
draw(550,330)
draw(50,330)
draw(50,300)
move(150,300)
draw(150,450)
draw(450,450)
draw(450,300)
elif klobouk.get() == "ne":
pass
set_colour(Colour.red)
if pusa == "vesela":
circle(300,180, endpoints = ((150,175),(450,175)))
elif pusa == "velmiVesela":
circle(300,150, endpoints = ((150,150),(450,150)), filled=1)
elif pusa == "rovna":
move(150,100), draw(450,100)
elif pusa == "smutna":
circle(300,0, endpoints = ((425,75),(175,75)))
tvoreni()
def oci_modre():
global oci
oci="modre"
def oci_zelene():
global oci
oci="zelene"
def oci_hnede():
global oci
oci="hnede"
def klobouk_zluta():
global Kloboukbarva
kloboukBarva="zluta"
def klobouk_zelena():
global Kloboukbarva
kloboukBarva="zelena"
def klobouk_hneda():
global kloboukBarva
kloboukBarva="hneda"
def pusa_smutna():
global pusa
pusa="smutna"
def pusa_vesela():
global pusa
pusa="vesela"
def pusa_rovna():
global pusa
pusa="rovna"
def pusa_velmiVesela():
global pusa
pusa="velmiVesela"
def vlasy_hneda():
global vlasyBarva
vlasyBarva="hneda"
def vlasy_cerna():
global vlasyBarva
vlasyBarva="cerna"
def zmena():
if vlasy.get() == "ano":
global hnedevlasy
global cernevlasy
cernevlasy = Button(desighn3, text="hnede", command=vlasy_hneda)
cernevlasy.pack()
hnedevlasy = Button(desighn3, text="cerne", command=vlasy_cerna)
hnedevlasy.pack()
elif vlasy.get() == "ne":
hnedevlasy.destroy()
cernevlasy.destroy()
def zmena1():
if klobouk.get() == "ano":
global zelenyKlobouk
global hnedyKlobouk
global zlutyKlobouk
zlutyKlobouk = Button(desighn4, text="zluty", command=klobouk_zluta)
zlutyKlobouk.pack()
hnedyKlobouk = Button(desighn4, text="hnedy", command=klobouk_hneda)
hnedyKlobouk.pack()
zelenyKlobouk = Button(desighn4, text="zeleny", command=klobouk_zelena)
zelenyKlobouk.pack()
elif klobouk.get() == "ne":
zlutyKlobouk.destroy()
hnedyKlobouk.destroy()
zelenyKlobouk.destroy()
volby=Tk()
volby.title("SmileCreator")
desighn1=Frame(volby)
desighn1.pack()
ocka=Label(desighn1,text="oci: ")
ocka.pack(side=LEFT)
modre=Button(desighn1,text="modre oci", command=oci_modre)
modre.pack()
zelene=Button(desighn1,text="zelene oci", command=oci_zelene)
zelene.pack()
hnede=Button(desighn1,text="hnede oci", command=oci_hnede)
hnede.pack()
nic = Label(volby, text="")
nic.pack()
desighn2 = Frame(volby)
desighn2.pack()
pusinka = Label(desighn2, text="pusa:")
pusinka.pack(side=LEFT)
rovna = Button(desighn2, text="rovna", command=pusa_rovna)
rovna.pack()
vesela = Button(desighn2, text="vesela", command=pusa_vesela)
vesela.pack()
velmiVesela = Button(desighn2, text="velmi vesela", command=pusa_velmiVesela)
velmiVesela.pack()
smutna = Button(desighn2, text="smutna", command=pusa_smutna)
smutna.pack()
nic1 = Label(volby, text="")
nic1.pack()
desighn3 = Frame(volby)
desighn3.pack()
vlasy=StringVar()
vlasy.set("ne")
vlasecky=Checkbutton(desighn3, text="vlasy", variable=vlasy, onvalue="ano", offvalue="ne", command=zmena)
vlasecky.pack(side=LEFT)
nic2 = Label(volby, text="")
nic2.pack()
desighn4 = Frame(volby)
desighn4.pack()
klobouk = StringVar()
klobouk.set("ne")
kloboucek=Checkbutton(desighn4, text="klobouk", variable=klobouk, onvalue="ano", offvalue="ne", command=zmena1)
kloboucek.pack(side=LEFT)
nic3 = Label(volby, text="")
nic3.pack()
start = Button(volby, text="START!", command=SmileCreator)
start.pack(fill=BOTH)
volby.mainloop()
k běhu programu potřebujete modul Livewires. https://pypi.python.org/pypi/LiveWires#downloads
je jednoduchý a můj problém jsou barvi a ty se pochopí velmi snadno.
a ještě u vlasů to celé funguje ale u klobouku to nefunguje přitom princim je úplně stajný - JAKTO??