A python package to define how a class member should be rendered in a UI.
Project description
propsettings
This packages enables you to decorate class member variables as a Setting. A Setting is a type of property that allows defining characteristics of a variable that are taken into account by a user interface code to render that variable properly.
Installation
pip install propsettings
Usage
To register a member variable as a Setting you must use the method register_as_setting
, e.g.
from propsettings.configurable import register_as_setting
class Example:
def __init__():
self._variable = 4
register_as_setting(Example, "_variable")
You can specify the label the UI will show for that variable with
register_as_setting(Example, "_variable", label="Variable label")
When the variable you want to decorate is initialized with None you must also specify the data type
class Example:
def __init__():
self._variable = None
register_as_setting(Example, "_variable", setting_value_type=str)
Sometimes is desirable to draw (in the user interface) your variable in a different way than the default. For example, the default way to show an integer value is with a text edit validated to only accept numeric values. However, maybe your variable only makes sense in the range [0 , 10]. In that case is better to have a slider than a text edit. That is when setting types come into play. A setting type is a type of annotation that gives more information about how to draw and validate a variable. For example:
from propsettings.setting_types.range_setting_type import Range
register_as_setting(Example, "_variable", setting_type=Range(0, 10))
To get a list of an object settings you can use
from propsettings.configurable import get_settings
e = Example()
settings = get_settings(e)
How to draw UI
This package is for variable annotation only. In order to draw user interfaces that take into account this annotations to render the variables you annotate, you must use another library. For Qt aaplications there is propsettings_qt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file propsettings-0.1.13.tar.gz
.
File metadata
- Download URL: propsettings-0.1.13.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abdfcb0e5eb0bb6ffd716e022dab36f1f5def91ce77956652646f4ffdcb92079 |
|
MD5 | 42b5302c6f884d3eb39c17df1018634b |
|
BLAKE2b-256 | b35dc5e0459d34d5a947f5199c61b04ddefadf0f938b832468d532941f27d481 |
File details
Details for the file propsettings-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: propsettings-0.1.13-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d79830b1caa067b0cabf39a95d6370a81ec72df5e45c6aff6afdde9bebda3d40 |
|
MD5 | 235d5864c7e245a279c161fd2a0a89ae |
|
BLAKE2b-256 | 646141172611b30ea0377f1ca2cb9ecf1fc73a8b7619ca3c0ce425ff7013eca8 |