mirror of
https://github.com/python/cpython.git
synced 2024-12-03 23:06:43 +08:00
adbed2d542
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.
50 lines
1.5 KiB
Python
50 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()
|