Qt widgets for data sets

Dialog boxes for DataSet editing and showing

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

child_title(item: DataItemVariable) str

Return data item title combined with QApplication title

Parameters:

item – data item

Returns:

title

check() bool

Check input of all widgets

Returns:

True if all widgets are valid

accept() None

Validate inputs

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 for DataSet editing and showing

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

check_all_values() bool

Check input of all widgets

Returns:

True if all widgets are valid

accept_changes() None

Accept changes made to widget inputs

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

add_row(widget: DataSetShowWidget) None

Add widget to row

Parameters:

widget – widget to add

refresh_widgets() None

Refresh the status of all widgets

update_dataitems() None

Refresh the content of all data items

update_widgets(except_this_one: QWidget | AbstractDataSetWidget | None = None) None

Refresh the content of all widgets

Parameters:

except_this_one – widget to skip

widget_value_changed() None

Method called when any widget’s value has changed

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