作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个菜单:
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/
我是一名优秀的程序员,十分优秀!