mirror of
https://github.com/python/cpython.git
synced 2025-07-08 20:05:28 +00:00

Previously, checkbuttons in different parent widgets could have the same
short name and share the same state if arguments "name" and "variable" are
not specified. Now they are globally unique.
(cherry picked from commit adbed2d542
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
# dialog.py -- Tkinter interface to the tk_dialog script.
|
|
|
|
from tkinter import _cnfmerge, Widget, TclError, Button, Pack
|
|
|
|
__all__ = ["Dialog"]
|
|
|
|
DIALOG_ICON = 'questhead'
|
|
|
|
|
|
class Dialog(Widget):
|
|
def __init__(self, master=None, cnf={}, **kw):
|
|
cnf = _cnfmerge((cnf, kw))
|
|
self.widgetName = '__dialog__'
|
|
self._setup(master, cnf)
|
|
self.num = self.tk.getint(
|
|
self.tk.call(
|
|
'tk_dialog', self._w,
|
|
cnf['title'], cnf['text'],
|
|
cnf['bitmap'], cnf['default'],
|
|
*cnf['strings']))
|
|
try: Widget.destroy(self)
|
|
except TclError: pass
|
|
|
|
def destroy(self): pass
|
|
|
|
|
|
def _test():
|
|
d = Dialog(None, {'title': 'File Modified',
|
|
'text':
|
|
'File "Python.h" has been modified'
|
|
' since the last time it was saved.'
|
|
' Do you want to save it before'
|
|
' exiting the application.',
|
|
'bitmap': DIALOG_ICON,
|
|
'default': 0,
|
|
'strings': ('Save File',
|
|
'Discard Changes',
|
|
'Return to Editor')})
|
|
print(d.num)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
t = Button(None, {'text': 'Test',
|
|
'command': _test,
|
|
Pack: {}})
|
|
q = Button(None, {'text': 'Quit',
|
|
'command': t.quit,
|
|
Pack: {}})
|
|
t.mainloop()
|