相关疑难解决方法(0)

tkinter GUI 仅部分更新,直到鼠标移动

我在 tkinter 中发现了一些意想不到的(对我来说)行为,我想更好地理解一下。

这是 macOS 上的 Tcl/Tk 8.6 和 Python 3.9.2,下面的代码创建一个非常简单的窗口,其中标签 c 由单选按钮 a 和 b 更新。

如果选择“蓝莓”单选按钮(因此Label显示“蓝莓”),然后单击“苹果”单选按钮但不移动鼠标,则出现意外行为,出现文本“苹果”,但是“blueberry”的“bl”和“y”在其后面仍然可见,并且它们(大概还有“blueberry”的其余部分)只有在我移动鼠标时才会消失。

我可以通过简单地添加'sticky=EW'c.grid()语句中来轻松地解决这个问题,我假设文本“蓝莓”实际上仍然存在(但现在被填充整个单元格的标签隐藏),并且只有当我移动鼠标时才会再次消失。

我认为了解这里发生的情况会很好,以防万一我遇到没有这种简单解决方案的情况,并且对我的编程质量有总体好处。我能在 SO 上找到的最接近的问题是Tkinter GUI 仅在鼠标移动时更新,但我认为我对它的理解不够好,无法知道它是否与我所描述的行为相同。

from tkinter import *
from tkinter import ttk

root = Tk()
frame = ttk.Frame(root)
frame.grid()

fruit = StringVar()

a = ttk.Radiobutton(frame, text='apple', variable=fruit, value='apple')
b = ttk.Radiobutton(frame, text='blueberry', variable=fruit, value='blueberry')
c = ttk.Label(frame, textvariable=fruit)

a.grid(sticky=W)
b.grid(sticky=W)
c.grid()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python macos tkinter

5
推荐指数
0
解决办法
428
查看次数

标签 统计

macos ×1

python ×1

tkinter ×1