» »

Python, Tkinter - kako preoblikovati okno zagnanega programa?

Python, Tkinter - kako preoblikovati okno zagnanega programa?

Ezg3ta ::

Mene zanima, če obstaja način, kako v zagnanem programu (narejen s Tkinterjem) preoblikovati okno, glede na to, če se neka spremenljivka spremeni..

Moj primer:
from Tkinter import *

okno = Tk()
okno.title("Program za izris kota")

okvir1 = Frame(okno)
okvir1.pack()

navodilo1 = Label(okvir1, text="Izberi obliko zapisa kota:")
navodilo1.pack()

v = IntVar()
v.set(1)
v.trace("w", Nacin)

Radiobutton(okvir1, text="Stopinja", variable=v, value=1).pack(side="left", padx=10)
Radiobutton(okvir1, text="Radian", variable=v, value=2).pack(side="right", padx=10)

okvir2 = Frame(okno)
okvir2.pack()

if v.get()==1:
    velikost = Scale(okvir2, from_=0, to=360, orient=HORIZONTAL, width=10, sliderlength=20, length=250, tickinterval=60)
    velikost.pack()

elif v.get()==2:
    velikost = Entry(okvir2)
    velikost.pack()

izris = Button(okno, text="Izrisi", command=Krog)
izris.pack()

okno.mainloop()



To je sicer samo del programa, ker je samo ta del važen..

Jaz bi torej rad, da če se spremenljivka v spremeni iz 1 v 2 ali obratno, da se v oknu namesto drsnika pojavi vpisno polje, kamor boš lahko vpisal velikost kota.
Sklepam da gre to nekak nardit s komando trace, te komande pa ne poznam tako dobro.. Mi lahko kdo razloži, če je sploh ta prava v mojem primeru in kako jo naj uporabim??

Hvala!

Ezg3ta ::

Ne se preveč napenjat, sem že drugje dobil rešitev problema :P

Če koga muči kaj podobnega me naj vpraša ;)

Gandalfar ::

do share :)

Ezg3ta ::

Odgovor tiči v tem primeru: :P

from Tkinter import *

def updateWidgets(event=None):
    g = v.get()
    scale.pack_forget()
    size.pack_forget()
    if g == 1:
        scale.pack()
    elif g == 2:
        size.pack()

window = Tk()
v = IntVar()

size = Entry(window)
scale = Scale(window, from_=0, to=360, orient=HORIZONTAL)

a = Radiobutton(window, text="Scale", variable=v, value=1, command=updateWidgets)
a.pack(side="left", padx=10)
b = Radiobutton(window, text="Entry", variable=v, value=2, command=updateWidgets)
b.pack(side="right", padx=10)

window.mainloop()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - Tkinter - MessageBox

Oddelek: Programiranje
101597 (1248) radiergummi
»

python -slovar

Oddelek: Programiranje
223112 (2091) Valex86
»

java net beans pomoč

Oddelek: Programiranje
121589 (1477) i33a
»

[JAVA] branje iz datoteke

Oddelek: Programiranje
242398 (2033) Bela01
»

[JAVA]Konstruktor v Vector razredu

Oddelek: Programiranje
121200 (1075) kopernik

Več podobnih tem