Mat*_*art 6 python canvas tkinter
当矩形处于“禁用”状态时,我希望画布中矩形的轮廓获得更大的宽度。因此我使用参数“disabledwidth=4”。但当矩形处于“禁用”状态时,轮廓的宽度仍然为 1,而不是 4。
这是我的代码,它显示了问题:当我将鼠标移到矩形上时,矩形的状态更改为“活动”,一切都按预期工作,特别是轮廓宽度更改为 4。但是当我将状态更改为“通过单击按钮轮廓保持宽度 1 禁用”。我做错了什么?
import tkinter as tk
def disabled():
canvas.itemconfig(rect, state="disabled")
def normal():
canvas.itemconfig(rect, state="normal")
root = tk.Tk()
canvas = tk.Canvas(root, height=250, width=250)
button1 = tk.Button(root, text="change rectangle to state disabled", command=disabled)
button2 = tk.Button(root, text="change rectangle to state normal" , command=normal )
rect = canvas.create_rectangle(40, 40, 180, 180,
fill = "red",
activefill = "green2",
activeoutline = "green3",
activewidth = 4,
disabledfill = "grey",
disabledoutline= "grey2",
disabledwidth = 4
)
canvas.grid()
button1.grid()
button2.grid()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
这是由于 Tcl/Tk 中一个非常古老但简单的错误导致-disabledwidth无法正确解析矩形和椭圆形画布项目,从而导致它被默默地忽略(至少在某些情况下)。我将其连同修复程序一起报告给了 Tcl/Tk:https://core.tcl-lang.org/tk/info/f4d9d74df628
所以希望这个问题能在 Tcl/Tk 8.6.14 中得到修复(希望能在未来的 Python 发行版中使用)。
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |