Хобрук: Ваш путь к мастерству в программировании

Python 2.7 Tkinter в Windows не отвечает

У меня проблема с Tkinter. Я сделал графический интерфейс с двумя списками. В моей Mac OS X все работает нормально, но в Windows моя программа работает, но графический интерфейс Tkinter не отвечает. Я читал об этом, и моя проблема, вероятно, в time.sleep(10), что мне нужно использовать, чтобы сделать задержку функции? На мой взгляд, Tkinter не любит time.sleep.

def showCars3():
while True:
    global hotList
    print("")   
    hotList.delete(0, END)
    for car in hotCars:
        hotList.insert(END, car.title)
    hotList.update_idletasks()
    time.sleep(10)


t5 = Thread(target = showCars3) 
25.02.2017

  • Насколько мне известно, Tkinter не является потокобезопасным. Если вы вносите изменения в графический интерфейс, делайте их из потока, в котором выполняется основной цикл Tkinter. 25.02.2017
  • Зачем тебе гуи спать? Разве настоящая проблема, которую вы пытаетесь решить, не заключается в том, как вставлять значения каждые 10 секунд? Для этого не нужно спать. 28.06.2019
  • Используйте python 3. Кроме того, в python функции и переменные называются с использованием lowercase_with_underscores, а не camelCase. 22.07.2019
  • И посмотрите этот вопрос stackoverflow.com/questions/10393886/tkinter-and- время сна 22.07.2019

Ответы:


1

Похоже, вы не определили окно Tkinter?

И ваш отступ перепутался:

Ваше:

def showCars3():
while True:
    global hotList
    print("")   
    hotList.delete(0, END)
    for car in hotCars:
        hotList.insert(END, car.title)
    hotList.update_idletasks()
    time.sleep(10)

Необходимые отступы:

def showCars3():
    while True:
        global hotList
        print("")   
        hotList.delete(0, END)
        for car in hotCars:
            hotList.insert(END, car.title)
        hotList.update_idletasks()
        time.sleep(10)

И нет, у Tkinter все в порядке с time.sleep.

Если это не решит вашу проблему, вам нужно показать мне весь код.

27.06.2019
  • Вам нужно немного уточнить свой ответ. Tkinter определенно не хорошо справляется со сном. Если вы поместите сон в другой поток, все в порядке, но если он находится в том же потоке, что и графический интерфейс, это приведет к зависанию пользовательского интерфейса. 28.06.2019
  • Мой очень хорошо работает с time.sleep. 29.06.2019

  • 2

    У тебя есть:

    import time
    

    где-то над вашим кодом?

    25.02.2017
  • Это не моя проблема. У меня есть это. 25.02.2017
  • Новые материалы

    Введение в контекст React
    В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

    Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
    Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

    Это оно
    Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

    7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
    Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

    Базовое руководство по переносу концепций обучения в глубокое обучение
    Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

    C в C.R.U.D с использованием React-Redux
    Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

    5 обязательных элементов современного инструмента конвейера данных
    В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..