Issue 28966: Menu.add_checkbutton has no checkmark on OS X (original) (raw)

On Linux, this code toggles the checkmark on a checkbutton in right-click menu. On OS X 10.12 it doesn't.

OS X 10.12, python 3.6.0b4.

#!/usr/bin/env python3 import tkinter as tk

class NodePopup(tk.Menu): def init(self, master): super().init(master, tearoff=0)

    self.send_disabled = tk.BooleanVar()

    self.add_checkbutton(label="Disable sending",
                         variable=self.send_disabled, command=self.toggle_send)

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

def toggle_send(self):
    print('send_disabled after:', self.send_disabled.get())

def change(): state = not menu.send_disabled.get() menu.send_disabled.set(state)

root = tk.Tk() root.pack_propagate(0)

menu = NodePopup(root) root.bind('', menu.popup)

root.mainloop()