SGZenity
SGZenity is a library for python which was inspired by Zenity.
When you write scripts, you can use SGZenity to create simple dialogs that interact graphically with the user.
Requirements
- Python 3
- GTK+4
- python3-gi
Installation
Install using pip:
$ pip install sgzenity
Or clone the repo:
$ git clone https://github.com/SoftGeekRo/sgzenity.git
$ cd ./sgzenity
$ python setup.py install
Example
Simple dialog:
API
Simple message
message(title='', text='', width=330, height=120, timeout=None)
Display a simple message
Parameters:
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Error
error(title='', text='', width=330, height=120, timeout=None)
Display a simple error
Parameters:
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Warning
warning(title='', text='', width=330, height=120, timeout=None)
Display a simple warning
Parameters:
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Question
question(title='', text='', width=330, height=120, timeout=None)
Display a question, possible answer are yes/no.
Parameters:
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: The answer as a boolean
Return type: bool
Progress Bar
progress_bar(title, text, pulse_mode, callback)
Display a text input
Parameters:
- title (str) – Title of the progress window
- text (str) – Text that will be present on top of the progress bar
- pulse_mode (bool) – Character of the progress bar, pulse of progress based on the callback returns values from 0.0 to 1
- callback (int) – callback function for control the progress bar. Returns a value between 0.0 and 1
Demo
import time
from sgzenity.thread import WorkerThread
from sgzenity import ProgressBar
class WorkingThread(WorkerThread):
def payload(self):
loading = self.data
steps = 10
for s in range(steps):
if self.stop:
break
loading.heartbeat()
print('Pulse {}.'.format(s))
time.sleep(1)
if self.stop:
print('Working thread canceled.')
else:
print('Working thread ended.')
loading.close()
def sg_progress_bar():
loading = ProgressBar("DEMO TITLE", "DEMO TEXT", pulse_mode=True)
workthread = WorkingThread(loading)
loading.show(workthread)
workthread.start()
Gtk.main()
sg_progress_bar()
Entry
entry(text='', placeholder='', title='', width=330, height=120, timeout=None)
Display a text input
Parameters:
- text (str) – text inside the window
- placeholder (str) – placeholder for the input
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: The content of the text input Return type: str
Password
password(text='', placeholder='', title='', width=330, height=120, timeout=None)
Display a text input with hidden characters
Parameters:
- text (str) – text inside the window
- placeholder (str) – placeholder for the input
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: The content of the text input
Return type: str
List of values
zlist(columns, items, print_columns=None, text='', title='', width=330, height=120, timeout=None)
Display a list of values
Parameters:
- columns (list of strings) – a list of columns name
- items (list of strings) – a list of values
- print_columns (int* (None if all the columns)*) – index of a column (return just the values from this column)
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: A row of values from the table
Return type: list
File selection
file_selection(multiple=False, directory=False, save=False, confirm_overwrite=False, filename=None, title='', width=330, height=120, timeout=None)
Open a file selection window
Parameters:
- multiple (bool) – allow multiple file selection
- directory (bool) – only directory selection
- save (bool) – save mode
- confirm_overwrite (bool) – confirm when a file is overwritten
- filename (str) – placeholder for the filename
- text (str) – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: path of files selected.
Return type: string or list if multiple enabled
Calendar
calendar(text='', day=None, month=None, title='', width=330, height=120, timeout=None)
Display a calendar
Parameters:
- text (str) – text inside the window
- day (int) – default day
- month (int) – default month
- text – text inside the window
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: (year, month, day)
Return type: tuple
And display the result :
$ python demo.py
$ (year=2017, month=6, day=4)
Color selection
color_selection(show_palette=False, opacity_control=False, title='', width=330, height=120, timeout=None)
Display a color selection dialog
Parameters:
- show_palette (bool) – hide/show the palette with preselected colors
- opacity_control (bool) – allow to control opacity
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: the color selected by the user
Return type: str
Scale
scale(text='', value=0, min=0, max=100, step=1, draw_value=True, title='', width=330, height=120, timeout=None)
Select a number with a range widget
Parameters:
- text (str) – text inside window
- value (int) – current value
- min (int) – minimum value
- max (int) – maximum value
- step (int) – incrementation value
- draw_value (bool) – hide/show cursor value
- title (str) – title of the window
- width (int) – window width
- height (int) – window height
- timeout (int) – close the window after n seconds
Returns: The value selected by the user
Return type: float
Metadata
Release files for sgzenity 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sgzenity-0.1.9.tar.gz | 24.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sgzenity-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.3 kB
Release files / sgzenity-0.1.9.tar.gz
| Download URL | sgzenity-0.1.9.tar.gz |
|---|---|
| Size | 24.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f2785a1572fd3666c524f1714ff23718bb1dee67254374800f30788c1aea05e
|
|
BLAKE2b-256 checksum How to use checksums |
c629737e57d9ab84747056aa854b148a2c9166eccf5ea9e30bc03666328f4dcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.0 CPython/3.12.4
|
Release files / sgzenity-0.1.9-py3-none-any.whl
| Download URL | sgzenity-0.1.9-py3-none-any.whl |
|---|---|
| Size | 27.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
11cd688a71f8fb6bd2ed543f2364ff5e3d1119249f7a0149bcab98c929803874
|
|
BLAKE2b-256 checksum How to use checksums |
a4d8b2ecbb8a045ebedb6933cdc0c4d3b2802d55dbd308ea1f9870a72c388f33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.0 CPython/3.12.4
|