Текст не отображается в окне, используя tkinter в python - PullRequest
0 голосов
/ 05 сентября 2018
root = Tk()
frame = Frame(root)
labelText = StringVar()
display = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...") #this is displayed
display.pack()
frame.pack()
display.update()

def change_root_label(message):
    labelText.set(message)
    display.pack()
    frame.pack()


change_root_label("Opening...") #this is not been displayed
print("hello") #though this is printed
time.sleep(15)

driver = webdriver.Chrome()
driver.get('https://google.com')
change_root_label("Opened...") #this is also displayed


root.mainloop()

Я добавил "time.sleep (15)" для проверки, требуется ли время для отображения ..., но также он не отображался ...

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

То, что вы ищете, это обновить графический интерфейс. Используйте root.update(). Также я не буду предлагать вам использовать задержку, так как она приостановит весь сценарий и не позволит селену открыться на 15 секунд.

root = Tk()
frame = Frame(root)
labelText = StringVar()
display = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...") #this is displayed
display.pack()
frame.pack()
display.update()

def change_root_label(message):
    labelText.set(message)
    display.pack()
    frame.pack()


change_root_label("Opening...") #this is not been displayed
print("hello") #though this is printed
root.update()

driver = webdriver.Chrome()
driver.get('https://google.com')
change_root_label("Opened...") #this is also displayed


root.mainloop()

Если вы хотите более простой способ, просто отредактируйте свою функцию:

def change_root_label(message):
    labelText.set(message)
    display.pack()
    frame.pack()
    root.update()
0 голосов
/ 05 сентября 2018

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

def change_root_label(message):
    labelText.set(message)
    display.pack()
    frame.pack()
    label.update()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...