#python #macos #tkinter
#python #macos #tkinter
Вопрос:
У меня проблема с PanedWindow, когда моя створка перемещается влево. Это нормально, когда я перемещаю ее вправо. Однако, когда я перемещаю ее влево, крайний правый виджет фрейма разрывается на полсекунды, прежде чем обновиться и встать на место. Разрыв усиливается, если я слишком быстро перетаскиваю створку влево.
В настоящее время я использую Python3 для этого, а также Tkinter версии 8.6.
Вот пример кода. Вы должны увеличить размер окна, чтобы увидеть его четко:
from tkinter import *
root = Tk()
m = PanedWindow(root, orient=HORIZONTAL, sashwidth=10)
rightF = Frame(m)
leftF = Frame(m)
top = Label(leftF, text="lefgt pane", bg='blue')
bottom = Label(rightF, text="right pane", bg='red')
top.pack(fill=BOTH, expand=1)
bottom.pack(fill=BOTH, expand=1)
m.add(leftF)
m.add(rightF)
m.pack(fill=BOTH, expand=1)
mainloop()
Похоже, это происходит только тогда, когда я добавляю фреймы в PanedWindow. Кто-нибудь как-то обошел это? Кто-нибудь это видит? Я использую Mac OSX Mavericks, если это поможет.
Ответ №1:
Я никогда не ожидал скорости Tkinter.
Когда вы добавляете фрейм, ему приходится перерисовывать фрейм перед тем, как перерисовать метку, но у фрейма другой цвет фона, чем у метки — и вы это видите. Установите красный фон для правого фрейма, и вы не увидите проблемы.