gpt4 book ai didi

python - tkinter add_checkbutton 菜单没有获得复选标记,尽管存在变量(MacOS)

转载 作者:行者123 更新时间:2023-11-30 22:45:41 37 4
gpt4 key购买 nike

我有一个菜单:

class NodePopup(tk.Menu):
def __init__(self, master):
super().__init__(master, tearoff=0)
self.send_disabled = tk.BooleanVar()
self.add_checkbutton(label="Disable sending",
command=self.toggle_send, variable=self.send_disabled)

def popup(self, node, event):
self.send_disabled.set(node.some_flag)
print('send_disabled:', self.send_disabled.get())
self.post(event.x_root, event.y_root)


class View:
def __init__(self, master)
self.master = master
self.canvas = #...
# ...
self.node_popup = NodePopup(self.master)
self.canvas.bind("<Button-2>", self.popup)

def popup(self, event):
node_oval, node = self.find_node(event.x, event.y)
self.node_popup.popup(node, event)

当调用my_menu.popup(e)时,它总是弹出而不带复选标记。 print() 打印出正确的值。

OS X 10.12,python 3.6.0b4。

问题是什么?

最佳答案

由于据报道此代码可以在 Linux 上运行,因此我报告了一个错误:http://bugs.python.org/issue28966 ,这又被关闭了。

由于 known problem ,用于 OS X 的 Python 没有内置 Tk,并使用 Apple 过时的 Tk 发行版。需要install an ActiveTcl .

作为解决方法,我更改了文本,很明显菜单项的含义发生了变化:

self.entryconfig(
0, label='Enable sending' if node.m_bSendOff else 'Disable sending')

关于python - tkinter add_checkbutton 菜单没有获得复选标记,尽管存在变量(MacOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132189/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com