Python tkinter меняет состояние метки переменной и строку состоянияPython

Программы на Python
Ответить
Anonymous
 Python tkinter меняет состояние метки переменной и строку состояния

Сообщение Anonymous »

У меня есть небольшая проблема. Речь идет об обмене переменными метки в TKinter. Моя программа не обновляет значения.

Код: Выделить всё

class Application(Frame):
def __init__(self,parent,**kw):
Frame.__init__(self,parent,**kw)
self.x = None
self.directory = None
self.autostate = None
self.state = "closed"
self.GUI2()

def state(self):
#change states
self.stateVar="open"
self.statusbar = "Status: Opening gate..."

#update tkinter
self.group.update_idletasks()
self.w.update_idletasks()

def GUI2(self):

self.statusbar = "Status:..."

# menu left
self.menu_left = tk.Frame(root, width=150, bg="red", bd=1, relief=RIDGE)
self.menu_left_upper = tk.Frame(self.menu_left, width=300, height=900, bg="#C0C0C0")
self.menu_left_lower = tk.Frame(self.menu_left, width=300, bd=1, relief=GROOVE)

self.label1 = tk.Label(self.menu_left_lower, relief=FLAT, bg="blue" )
self.button1 = Button(self.menu_left_lower, text="RUN")
self.test = tk.Label(self.menu_left_upper, text="info", bg="#C0C0C0")

self.menu_left_upper.pack(side="top", fill="both", expand=TRUE)
self.menu_left_lower.pack(side="top", fill="both", expand=FALSE)

# right area
self.some_title_frame = tk.Frame(root, bg="#dfdfdf", bd=1, relief=RIDGE)
self.some_title = tk.Label(self.some_title_frame, text="some title", bg="#dfdfdf")
self.text_area = Listbox(root, width=50, height=10, background="#ffffff", relief=GROOVE)

#Label and Button
self.group = LabelFrame(self.menu_left_upper, text="info", height=70)
self.group.pack(side="top", fill="both", expand=TRUE)
Button(self.menu_left_lower, text='Press', command=self.state).pack(side="bottom")
self.w = Label(self.group, text='State='+self.stateVar)    #text printed!
self.w.pack(expand=TRUE)

# status bar
self.status_frame = tk.Frame(root)
self.status = tk.Label(self.status_frame, text=self.statusbar, bd=1, relief=SUNKEN)    #statusbar printed here
self.status.pack(fill="both", expand=True)
self.menu_left.grid(row=0, column=0, rowspan=2, sticky="nsew")
self.status_frame.grid(row=2, column=0, columnspan=2, sticky="ew")
root.grid_rowconfigure(1, weight=1)
root.grid_columnconfigure(1, weight=1)

#Starts the main loop and causes the class to interact with the init function
if __name__ == '__main__':
root = Tk()
root.title("simulation")
app = Application(root)
app.grid()
root.mainloop()
Здесь вы можете увидеть весь код.
Важно проверить # tab1, там будет кнопка. Эта кнопка относится к def state(self):. Здесь необходимо изменить метку и строку состояния. которые упакованы в self.w и self.status в программе, я добавил #text print! после строки.

Подробнее здесь: https://stackoverflow.com/questions/401 ... -statusbar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»