Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Tkinter помогите разобраться с интерфейсом [RSS Feed]

#1 Июль 29, 2011 20:12:34

skyrider
От:
Зарегистрирован: 2011-07-29
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter помогите разобраться с интерфейсом

Создаю форму по классу, который описываю в другом файле.
При запуске в текстовом поле уже записана одна строка “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)



Офлайн

#2 Июль 29, 2011 21:13:54

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Tkinter помогите разобраться с интерфейсом

При биндинге события надо присваивать не результат выполнения функции, а саму функцию

Вот так будет работать:

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()



Офлайн

  • Начало
  • » GUI
  • » Tkinter помогите разобраться с интерфейсом[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version