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 | 1817 (1468) | radiergummi | 
| » | python -slovarOddelek: Programiranje | 3358 (2337) | Valex86 | 
| » | java net beans pomočOddelek: Programiranje | 1760 (1648) | i33a | 
| » | [JAVA] branje iz datotekeOddelek: Programiranje | 2542 (2177) | Bela01 | 
| » | [JAVA]Konstruktor v Vector razreduOddelek: Programiranje | 1290 (1165) | kopernik | 
