docs: def fill_treeview(self, tree, input_dict):
          """
          fills a treeview with nested parameters
          Args:
              tree: QtWidgets.QTreeView
              parameters: dictionary or Parameter object
  
          Returns:
  
          """
  
          tree.model().removeRows(0, tree.model().rowCount())
  
          def add_element(item, key, value):
              child_name = QtWidgets.QStandardItem(key)
  
              if isinstance(value, dict):
                  for key_child, value_child in value.items():
                      add_element(child_name, key_child, value_child)
                  item.appendRow(child_name)
              else:
                  child_value = QtWidgets.QStandardItem(str(value))
  
                  item.appendRow([child_name, child_value])
  
          for index, (key, value) in enumerate(input_dict.items()):
  
              if isinstance(value, dict):
                  item = QtWidgets.QStandardItem(key)
                  for sub_key, sub_value in value.items():
                      add_element(item, sub_key, sub_value)
                  tree.model().appendRow(item)
              elif isinstance(value, str):
                  item = QtGui.QStandardItem(key)
                  item_value = QtGui.QStandardItem(value)
                  item_value.setEditable(True)
                  item_value.setSelectable(True)
                  tree.model().appendRow([item, item_value])