Forum » Programiranje » 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:
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!
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 
Če koga muči kaj podobnega me naj vpraša
Če koga muči kaj podobnega me naj vpraša
Ezg3ta ::
Odgovor tiči v tem primeru: 
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 ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Python - Tkinter - MessageBoxOddelek: Programiranje | 1815 (1466) | radiergummi |
| » | python -slovarOddelek: Programiranje | 3356 (2335) | Valex86 |
| » | java net beans pomočOddelek: Programiranje | 1758 (1646) | i33a |
| » | [JAVA] branje iz datotekeOddelek: Programiranje | 2540 (2175) | Bela01 |
| » | [JAVA]Konstruktor v Vector razreduOddelek: Programiranje | 1290 (1165) | kopernik |