Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 21, 2018 16:02:45

Tosking
Зарегистрирован: 2018-07-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка

Пишу код

 from tkinter import *
root = Tk()
root.geometry('250x120')
root.resizable(False, False)
s1 = Scale(root, sliderlength=20, orient=HORIZONTAL, length=180)
s1.place(x=30, y=30)
def sa():
    if s1.get() == 0:
        pass
def main():
    root.mainloop()
    sa()
if __name__ == '__main__':
    main()
Выдаёт ошибку
Traceback (most recent call last):
File "C:/Users/123/PycharmProjects/untitled/delete.py", line 14, in <module>
main()
File "C:/Users/123/PycharmProjects/untitled/delete.py", line 12, in main
sa()
File "C:/Users/123i/PycharmProjects/untitled/delete.py", line 8, in sa
if s1.get() == 0:
File "C:\Users\123\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3010, in get
value = self.tk.call(self._w, 'get')
_tkinter.TclError: invalid command name ".!scale"
Что делать?

Офлайн

#2 Авг. 21, 2018 17:45:13

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Ошибка

Команда root.mainloop() должна быть самой последней командой, а у вас после неё идёт sa(). Получается, когда вы закрываете главное окно, вызывается функция sa() в то время, когда главного окна уже нет. Перепишите функцию main() так:

 def main():
    sa()
    root.mainloop()

Офлайн

#3 Авг. 21, 2018 18:48:00

Tosking
Зарегистрирован: 2018-07-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка

Помогло! Спасибо!

Офлайн

#4 Авг. 24, 2018 22:25:36

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Ошибка

можешь цикл ткинтера в отдельный поток запихнуть



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version