Qt widgets for data sets¶
This module provides a set of widgets to edit and show data sets, using ready-to-use dialog boxes, layouts and group boxes.
Dialog boxes¶
- class guidata.dataset.qtwidgets.DataSetEditDialog(instance: DataSet | DataSetGroup, icon: str | QIcon = '', parent: QWidget | None = None, apply: Callable | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None)¶
Bases:
QDialog
Dialog box for DataSet editing
- Parameters:
instance – DataSet instance to edit
icon – icon name (default: “guidata.svg”)
parent – parent widget
apply – function called when Apply button is clicked
wordwrap – if True, comment text is wordwrapped
size – dialog size (default: None)
- button_clicked(button: QAbstractButton) None ¶
Handle button click
- Parameters:
button – button that was clicked
- setup_instance(instance: Any) None ¶
Construct main layout
- Parameters:
instance – DataSet instance to edit
- layout_factory(instance: DataSet, grid: QGridLayout) DataSetEditLayout ¶
A factory method that produces instances of DataSetEditLayout or derived classes (see DataSetShowDialog)
- Parameters:
instance – DataSet instance to edit
grid – grid layout
- Returns:
DataSetEditLayout instance
- class guidata.dataset.qtwidgets.DataSetShowDialog(instance: DataSet | DataSetGroup, icon: str | QIcon = '', parent: QWidget | None = None, apply: Callable | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None)¶
Bases:
DataSetEditDialog
Read-only dialog box
- Parameters:
instance – DataSet instance to edit
icon – icon name (default: “guidata.svg”)
parent – parent widget
apply – function called when Apply button is clicked
wordwrap – if True, comment text is wordwrapped
size – dialog size (default: None)
- layout_factory(instance: DataSet, grid: QGridLayout) DataSetShowLayout ¶
A factory method that produces instances of DataSetEditLayout or derived classes (see DataSetShowDialog)
- Parameters:
instance – DataSet instance to edit
grid – grid layout
- Returns:
DataSetEditLayout instance
- class guidata.dataset.qtwidgets.DataSetGroupEditDialog(instance: DataSet | DataSetGroup, icon: str | QIcon = '', parent: QWidget | None = None, apply: Callable | None = None, wordwrap: bool = True, size: QSize | tuple[int, int] | None = None)¶
Bases:
DataSetEditDialog
Tabbed dialog box for DataSet editing
- Parameters:
instance – DataSetGroup instance to edit
icon – icon name (default: “guidata.svg”)
parent – parent widget
apply – function called when Apply button is clicked
wordwrap – if True, comment text is wordwrapped
size – dialog size (default: None)
- setup_instance(instance: DataSetGroup) None ¶
Construct main layout
- Parameters:
instance – DataSetGroup instance to edit
Layouts¶
- class guidata.dataset.qtwidgets.DataSetEditLayout(parent: QWidget | None, instance: AnyDataSet, layout: QGridLayout, items: list[DataItem] | None = None, first_line: int = 0, change_callback: Callable | None = None)¶
Bases:
Generic
[AnyDataSet
]Layout in which data item widgets are placed
- Parameters:
parent – parent widget
instance – DataSet instance to edit
layout – grid layout
items – list of data items
first_line – first line of grid layout
change_callback – function called when any widget’s value has changed
- classmethod register(item_type: type, factory: Any) None ¶
Register a factory for a new item_type
- Parameters:
item_type – item type
factory – factory function
- transform_items(items: list[DataItem]) list[DataItem] ¶
Handle group of items: transform items into a GroupItem instance if they are located between BeginGroup and EndGroup
- Parameters:
items – list of data items
- Returns:
list of data items
- setup_layout(items: list[DataItem]) None ¶
Place items on layout
- Parameters:
items – list of data items
- build_widget(item: DataItem) DataSetShowWidget ¶
Build widget for item
- Parameters:
item – data item
- Returns:
widget
- class guidata.dataset.qtwidgets.DataSetShowLayout(parent: QWidget | None, instance: AnyDataSet, layout: QGridLayout, items: list[DataItem] | None = None, first_line: int = 0, change_callback: Callable | None = None)¶
Bases:
DataSetEditLayout
Read-only layout
- Parameters:
parent – parent widget
instance – DataSet instance to edit
layout – grid layout
items – list of data items
first_line – first line of grid layout
change_callback – function called when any widget’s value has changed
Group boxes¶
- class guidata.dataset.qtwidgets.DataSetShowGroupBox(label: QLabel | str, klass: type[AnyDataSet], wordwrap: bool = False, **kwargs)¶
Bases:
Generic
[AnyDataSet
],QGroupBox
Group box widget showing a read-only DataSet
- Parameters:
label – group box label (string)
klass – guidata.DataSet class
wordwrap – if True, comment text is wordwrapped
kwargs – keyword arguments passed to DataSet constructor
- get_edit_layout() DataSetEditLayout[AnyDataSet] ¶
Return edit layout
- Returns:
edit layout
- class guidata.dataset.qtwidgets.DataSetEditGroupBox(label: QLabel | str, klass: type[AnyDataSet], button_text: str | None = None, button_icon: QIcon | str | None = None, show_button: bool = True, wordwrap: bool = False, **kwargs)¶
Bases:
DataSetShowGroupBox
[AnyDataSet
]Group box widget including a DataSet
- Parameters:
label – group box label (string)
klass – guidata.DataSet class
button_text – text of apply button (default: “Apply”)
button_icon – icon of apply button (default: “apply.png”)
show_button – if True, show apply button (default: True)
wordwrap – if True, comment text is wordwrapped
kwargs – keyword arguments passed to DataSet constructor
When the “Apply” button is clicked, the
SIG_APPLY_BUTTON_CLICKED
signal is emitted.- SIG_APPLY_BUTTON_CLICKED¶
Signal emitted when Apply button is clicked
- get_edit_layout() DataSetEditLayout[AnyDataSet] ¶
Return edit layout
- Returns:
edit layout
- set(check: bool = True) None ¶
Update data item values from layout contents
- Parameters:
check – if True, check input of all widgets