Форум сайта python.su
Разобраться не могу.
import urllib, string
from Tkinter import *
tk = Tk()
coll = StringVar()
coll.set("black")
a = StringVar()
a.set(...)
def nw(*arg):
try:
...
a.set(b)
coll.set("red")
except IOError, exc:
...
except NameError:
...
p = coll.get()
Label(c,
textvariable=den1,
relief="groove",
borderwidth=3,
font=("Courier", 12, "bold"),
foreground=p,
justify=LEFT,
width=30,
height=3,
takefocus=False,
).grid(row=2, column=1, columnspan=2, sticky=NW+SE)
Офлайн
Все должно работать. Приведите минимальный рабочий кусок кода, а то общая картина не ясна.
А причем здесь цвет вообще?
Отредактировано (Март 6, 2011 13:47:37)
Офлайн
Все, понял что вам нужно. Откуда у вас такая любовь к StringVar? Не нужно это пихать куда не нужно.
from Tkinter import *
root=Tk()
def foo():
label['foreground']='red'
label=Label(root,text='hello world')
label.pack()
but=Button(root,text='Change color',command=foo)
but.pack()
root.mainloop()
Офлайн
from Tkinter import *
from tkColorChooser import askcolor
def colorss():
but['bg'] = askcolor()[1]
root = Tk()
label=Label(root,text='hello world')
label.pack()
but=Button(root,text='Change color',command=colorss)
but.pack()
root.mainloop()
Офлайн
Спасибо.
Стринг вар потому, что не знал как иначе..
Офлайн
По варианту Игоря следующая ошибка
label["foreground"] = "red"
TypeError: 'NoneType' object does not support item assignment
Офлайн
Попробуйте тогда так, хотя это одно и то же, что и предложил Игорь:
import Tkinter
root = Tkinter.Tk()
def color(event):
label ["fg"] = "red"
label = Tkinter.Label(root)
label ["text"] = "color on"
label.pack()
button = Tkinter.Button(root)
button ["text"] = "COLOR"
button.bind("<Button-1>", color)
button.pack()
root.mainloop()
Офлайн
Это то же самое, думаю сути не поменяет.
Офлайн
Ну так работает или нет? Вы же писали ошибку.
Офлайн
Тут проблема в том, что приведённый код не отображает реально происходящих вещей.
Лично я знаю, что один и тот же метод не может работать через раз, вижу что ловится какое-то исключение и вижу что код выполняется внутри блока. И делаю вывод, что программист считает что исключение может быть, но почему-то рассчитывает что переменная внутри блока обязательно будет установлена. Возможно проблема не в этом, но чтобы сказать более, надо видеть код, чтобы иметь возможность восстановить последовательность работы программы.
Отредактировано (Март 6, 2011 19:34:19)
Офлайн