psidialogs (Python Simple Dialogs) is a wrapper for different standard dialogs: message, warning, error, ask_ok_cancel, ask_yes_no, ask_string, ask_file, ask_folder, choice.
Links:
back-ends:
$ python3 -m pip install psidialogsInstall all back-ends on Ubuntu 22.04:
$ sudo apt-get install python3-tk
$ sudo apt-get install python3-pyqt5
$ sudo apt-get install python3-pyside2.qtwidgets
$ sudo apt-get install python3-dialog
$ sudo apt-get install python3-easygui
$ sudo apt-get install python3-wxgtk4.0
$ sudo apt-get install zenity
$ sudo apt-get install gxmessage# psidialogs/examples/message.py
import psidialogs
psidialogs.message("Hello!")# psidialogs/examples/warning.py
import psidialogs
psidialogs.warning("Warning text.")# psidialogs/examples/error.py
import psidialogs
psidialogs.error("Error text.")# psidialogs/examples/ask_ok_cancel.py
import psidialogs
ok = psidialogs.ask_ok_cancel("Do you want to continue?")
if ok:
print("continue")# psidialogs/examples/ask_yes_no.py
import psidialogs
yes = psidialogs.ask_yes_no("Yes or no?")
if yes:
print("yes!")# psidialogs/examples/ask_string.py
import psidialogs
name = psidialogs.ask_string("What is your name?")
if name is not None:
print(name)# psidialogs/examples/ask_file.py
import psidialogs
f = psidialogs.ask_file("Select a file!")
if f is not None:
print(f)# psidialogs/examples/ask_folder.py
import psidialogs
f = psidialogs.ask_folder("Select a folder!")
if f is not None:
print(f)# psidialogs/examples/choice.py
import psidialogs
s = psidialogs.choice(["1", "2", "3"], "Choose a number!")
if s is not None:
print(s)The implemented backends can be listed, the order is the preference, which can be changed:
# psidialogs/examples/backends.py
import psidialogs
print(psidialogs.backends())
psidialogs.set_backend_preference(["tkinter", "zenity"])
print(psidialogs.backends())$ python3 -m psidialogs.examples.backends
['pyside2', 'tkinter', 'zenity']
['tkinter', 'zenity', 'pyside2']Changing the backend preference:
# psidialogs/examples/set_backend_preference.py
import psidialogs
psidialogs.set_backend_preference(["tkinter", "zenity"])
psidialogs.message("Hello!")All backends and all dialog types can be tested with the demo:
$ python3 -m psidialogs.examples.demoThe demo can be started with one backend:
$ python3 -m psidialogs.examples.demo --backend zenityThe demo can be started with one backend and one dialog type:
$ python3 -m psidialogs.examples.demo --backend zenity --dialogtype messageDemo full help:
$ python3 -m psidialogs.examples.demo --help
usage: demo.py [-h] [-b BACKEND] [-d DIALOGTYPE] [-t TITLE] [--debug]
optional arguments:
-h, --help show this help message and exit
-b BACKEND, --backend BACKEND
-d DIALOGTYPE, --dialogtype DIALOGTYPE
-t TITLE, --title TITLE
--debug set logging level to DEBUGScreenshots are created on Ubuntu 22.04 server with Xvfb.
Versions:
$ python3 -m psidialogs.check.versions
python 3.8.10
psidialogs 0.2.0
pyside2 5.14.0
tkinter 8.6
zenity 3.32.0| backend | message | warning | error |
|---|---|---|---|
| zenity | |||
| gmessage | |||
| wxpython | |||
| tkinter | |||
| easygui | |||
| pyqt5 | |||
| pyside2 | |||
| pythondialog | |||
| console |
| backend | ask_ok_cancel | ask_yes_no | ask_string |
|---|---|---|---|
| zenity | |||
| gmessage | |||
| wxpython | |||
| tkinter | |||
| easygui | |||
| pyqt5 | |||
| pyside2 | |||
| pythondialog | |||
| console |
| backend | ask_file | ask_folder |
|---|---|---|
| zenity | ||
| gmessage | ||
| wxpython | ||
| tkinter | ||
| easygui | ||
| pyqt5 | ||
| pyside2 | ||
| pythondialog | ||
| console |
| backend | choice |
|---|---|
| zenity | |
| gmessage | |
| wxpython | |
| tkinter | |
| easygui | |
| pyqt5 | |
| pyside2 | |
| pythondialog | |
| console |