I want the simplest possible way to pop up simple dialogs in Python scripts. Ideally, the solution would:
Work on Windows, OS X, Gnome, KDE
Look like a native dialog on any OS
Require minimal code
To pop up a simple standard dialog should require only minimal code. Essentially you're just saying "Pop up a standard dialog with this text", or "Pop up a dialog with question x and feed response into variable y".
This is for simple scripts that would otherwise run on the command line. I don't want to know about GUI frameworks or have to set up code that says "start a GUI thread, register an event handler, configure some window properties, run a loop", etc. I don't want to have to set up a window or close the window afterward. I give it the text to put in the window and/or buttons and/or checkboxes, it returns what the user clicked on. Everything else should be taken care of automatically. For example:
message_box('File conversion complete')
for a standard dialog box with an "Ok" button, or
balloon_tip('File conversion complete')
for a system tray popup balloon, or
format = button_box('Which file format do you want?', 'JPG', 'PNG')
and they press one of the two buttons, and then format equals 'JPG', or
response = text_query('What would you like to name the file?')
and after they type in the box and press Ok, response now equals 'bananas.txt'. No other code required. No ugly command line prompts for the poor user.
I've listed Zenity and EasyGUI as example answers, since they're similar to what I want, but not perfect.
解决方案
EasyGUI is a single file, and provides a simple way to work with Tkinter dialogs, but they're still ugly non-native Tkinter dialogs.
from easygui import msgbox
msgbox('Stuff')
Apparently it is now abandonware, but there's also a fork called EasyGuiTtk, obtainable via pip install https://github.com/Who8MyLunch/EasyGuiTtk/archive/master.zip