Попытка получить значение из шкалы Tkinter и поместить его в ярлык

У меня есть небольшая программа Python, которая принимает значение шкалы Tkinter и помещает ее в метку.

#!/usr/bin/python from Tkinter import * class App: strval = StringVar() def __init__(self,master): frame = Frame(master) frame.pack() self.slide = Scale(frame, command = self.up, from_ = 1, to = 100) self.out = Label(frame, textvariable = self.strval) self.slide.pack() self.out.pack() def up(self,newscale): amount = str(newscale) self.strval.set(amount) root = Tk() app = App(root) root.mainloop() 

Когда я запускаю программу, она дает мне и сообщение об ошибке:

 Traceback (most recent call last): File "/Users/alex/Desktop/Python/Tkinter/scale_Entry.py", line 5, in <module> class App: File "/Users/alex/Desktop/Python/Tkinter/scale_Entry.py", line 7, in App strval = StringVar() File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 254, in __init__ Variable.__init__(self, master, value, name) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 185, in __init__ self._tk = master.tk AttributeError: 'NoneType' object has no attribute 'tk' Exception exceptions.AttributeError: "StringVar instance has no attribute '_tk'" in <bound method StringVar.__del__ of <Tkinter.StringVar instance at 0x69f238>> ignored logout 

Я не слишком уверен, что происходит не так, и я полностью дергаюсь за Tk-интерфейс. Мне бы очень хотелось, чтобы кто-то мог объяснить, что я делаю неправильно.

One Solution collect form web for “Попытка получить значение из шкалы Tkinter и поместить его в ярлык”

Это происходит потому, что вы создаете StringVar перед созданием корневого элемента Tk. Если вы переместите оператор root = Tk() перед определением класса, вы увидите, как он работает так, как ожидалось.

Однако идеальным решением было бы написать его таким образом, чтобы вы не зависели от порядка, чтобы заставить его работать, поэтому я предлагаю вам создать StringVar в конструкторе:

 class App: def __init__(self,master): frame = Frame(master) frame.pack() self.strval = StringVar(frame) # ... 
  • Изменение цвета нескольких кнопок tkinter
  • Индекс текстового виджета TK неправильно подсчитывает строки?
  • Python 2.7.2 глобальные переменные + tkinter
  • Действительно пользовательский шрифт в Tkinter
  • Как я могу сделать метод, который запускается каждый раз, когда кадр отображается в tkinter
  • Как я могу запрограммировать калькулятор с графическим интерфейсом, используя tkinter в Python?
  • Как создать окно сообщения с помощью tkinter?
  • Кнопка Tkinter не отображается в TopLevel?
  •  
    Interesting Posts for Van-Lav

    Python – определение позиции регулярного выражения в строке?

    Лучший способ доступа и закрытия базы данных postgres с использованием набора данных python

    Удаление набора данных hdf5 с использованием h5py

    Как объединить эти две строки кода в один (Python 3.X)?

    Используйте html5lib для преобразования фрагмента HTML в обычный текст.

    Boost :: Класс Python с шаблонами функций: как добавить экземпляры извне?

    Из часового пояса и времени UTC получите разницу в секундах по местному времени в этот момент времени

    Только Pylint Глобальная оценка

    Какие ключевые слова наиболее различают две группы людей?

    Как проверить в pycrypto подпись, созданную openssl?

    python все возможные комбинации 0,1 длины k

    Шрифт Matplotlib 'bold'

    sklearn "numpy.dtype имеет неправильный размер, попробуйте перекомпилировать" как в pycharm, так и в терминале

    Запустить скрипт python онлайн (django)

    Убедитесь, что эскиз sorl уже кэшировал изображение с использованием API низкого уровня

    Python - лучший язык программирования в мире.