Найти - Пользователи
Полная версия: Tkinter помогите разобраться с интерфейсом
Начало » GUI » Tkinter помогите разобраться с интерфейсом
1
skyrider
Создаю форму по классу, который описываю в другом файле.
При запуске в текстовом поле уже записана одна строка “qwerty” и при нажатии конпки больше в него ни чего не пишется. Не могу с этим разобраться.
from MainWindow import *

appMainWindow = classMainWindow()
appMainWindow.mainWindow.mainloop()
from Tkinter import *
from ScrolledText import ScrolledText

class classMainWindow():
mainWindow = Tk()
mainWindow.title("Project")
mainFrame = Frame(mainWindow, width = 800, height = 600, background = "Grey")
mainFrame.pack(side = LEFT, fill = BOTH)
labelLog = Label(mainFrame, text = "Log:", background = "Grey")
labelLog.place(relx = 0.02, rely = 0.07, relwidth = 0.05, relheight = 0.03, anchor = NW)
logTextField = ScrolledText(mainFrame, width = 40, background = "White")
logTextField.place(relx = 0.02, rely = 0.1, relwidth = 0.5, relheight = 0.5, anchor = NW)
buttonTest = Button(mainFrame, text = "Test", command = logTextField.insert(END, "qwerty\n"))
buttonTest.place(relx = 0.02, rely = 0.02, relwidth = 0.1, relheight = 0.05, anchor = NW)
Evgeny
При биндинге события надо присваивать не результат выполнения функции, а саму функцию

Вот так будет работать:
from Tkinter import *
from ScrolledText import ScrolledText

class classMainWindow():
mainWindow = Tk()
mainWindow.title("Project")
mainFrame = Frame(mainWindow, width = 800, height = 600, background = "Grey")
mainFrame.pack(side = LEFT, fill = BOTH)
labelLog = Label(mainFrame, text = "Log:", background = "Grey")
labelLog.place(relx = 0.02, rely = 0.07, relwidth = 0.05, relheight = 0.03, anchor = NW)
logTextField = ScrolledText(mainFrame, width = 40, background = "White")
global logTextField
logTextField.place(relx = 0.02, rely = 0.1, relwidth = 0.5, relheight = 0.5, anchor = NW)
buttonTest = Button(mainFrame,text = "Test", command = lambda: logTextField.insert(END, "qwerty\n"))
buttonTest.place(relx = 0.02, rely = 0.02, relwidth = 0.1, relheight = 0.05, anchor = NW)

appMainWindow = classMainWindow()
appMainWindow.mainWindow.mainloop()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB