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 | 1597 (1248) | radiergummi |
» | python -slovarOddelek: Programiranje | 3112 (2091) | Valex86 |
» | java net beans pomočOddelek: Programiranje | 1589 (1477) | i33a |
» | [JAVA] branje iz datotekeOddelek: Programiranje | 2398 (2033) | Bela01 |
» | [JAVA]Konstruktor v Vector razreduOddelek: Programiranje | 1200 (1075) | kopernik |