本文整理汇总了Python中PyQt5.QtWidgets.QTreeWidget.addTopLevelItems方法的典型用法代码示例。如果您正苦于以下问题:Python QTreeWidget.addTopLevelItems方法的具体用法?Python QTreeWidget.addTopLevelItems怎么用?Python QTreeWidget.addTopLevelItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QTreeWidget
的用法示例。
在下文中一共展示了QTreeWidget.addTopLevelItems方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DictParameterWidget
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import addTopLevelItems [as 别名]
class DictParameterWidget(GenericParameterWidget):
"""Widget class for DictParameter."""
def __init__(self, parameter, parent=None):
"""Constructor
.. versionadded:: 3.1
:param parameter: A DictParameter object.
:type parameter: DictParameter
"""
# pylint: disable=E1002
super().__init__(parameter, parent)
# pylint: enable=E1002
self.input = QTreeWidget()
# generate tree model
widget_items = self.generate_tree_model(self._parameter.value)
self.input.addTopLevelItems(widget_items)
# set header
self.input.headerItem().setText(0, 'Keys')
self.input.headerItem().setText(1, 'Values')
self.inner_input_layout.addWidget(self.input)
# override self._input_layout arrangement to make the label at the top
# reset the layout
self.input_layout.setParent(None)
self.help_layout.setParent(None)
self.label.setParent(None)
self.inner_input_layout.setParent(None)
self.input_layout = QVBoxLayout()
self.input_layout.setSpacing(0)
# put element into layout
self.input_layout.addWidget(self.label)
self.input_layout.addLayout(self.inner_input_layout)
self.main_layout.addLayout(self.input_layout)
self.main_layout.addLayout(self.help_layout)
def generate_tree_model(self, data_dict):
"""Generate a tree model for specified dictionary
:param data_dict: A dictionary
:type data_dict: dict
:return: list of QTreeWidgetItem
:rtype list:
"""
widget_items = []
font = QFont()
font.setBold(True)
for key in data_dict.keys():
entry = data_dict[key]
key_item = QTreeWidgetItem()
key_item.setText(0, str(key))
key_item.setFont(0, font)
if isinstance(entry, dict):
items = self.generate_tree_model(entry)
key_item.addChildren(items)
else:
# value_item = QTreeWidgetItem()
key_item.setText(1, str(entry))
key_item.setFlags(key_item.flags() | Qt.ItemIsEditable)
# key_item.addChild(key_item)
widget_items.append(key_item)
return widget_items
def extract_dict(self, widget_items):
"""Extract dictionary key and values from QTreeWidgetItems
:param widget_items: List of QTreeWidgetItems
:type widget_items: list
:return: hierarchical dictionary extracted from widget_items
:rtype dict:
"""
data_dict = {}
element_type = self._parameter.element_type
if element_type == object:
def object_cast(obj):
return obj
element_type = object_cast
for key_item in widget_items:
key = str(key_item.text(0))
value = None
if key_item.childCount() == 0:
# value_item = key_item.child(0)
value = element_type(key_item.text(1))
elif key_item.childCount() > 1:
value_items = [key_item.child(i)
for i in range(key_item.childCount())]
value = self.extract_dict(value_items)
data_dict[key] = value
return data_dict
def get_parameter(self):
#.........这里部分代码省略.........
示例2: Window
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import addTopLevelItems [as 别名]
#.........这里部分代码省略.........
# ------------------------------------------------------ end of creations ----------------------------------------------------------
# def create_actions(self):
# self.import_act = QAction("&Import...", self, shortcut="Ctrl+I", triggered=self.import_uj)
# self.export_act = QAction("&Export...", self, shortcut="Ctrl+E", triggered=self.export_uj)
# def update_content_subtypes(self, item):
# # item is supposed to be the text value of the combobox selection
# print('reached function update_content_subtypes with item=', item)
def debug__(self, message):
self.debug_edit.appendPlainText(message)
def load_data_file(self):
filename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME'))
self.ddi_delimited_filename_widget.set_text(filename[0])
self.selected_ddi.file_name = filename
def import_uj(self, filename=[]):
if not filename:
filename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME'))
self.uj = UserJourney('')
self.uj.import_uj(filename[0])
self.uj_name.set_text(self.uj.name)
ddi_nodes = []
for ddi in self.uj.dditems:
new_ddi_node = QTreeWidgetItem()
new_ddi_node.setText(0, ddi.name)
ddi_nodes.append(new_ddi_node)
self.ddi_tree.addTopLevelItems(ddi_nodes)
date_type_ddis = self.uj.find_ddis_by_attribute('type', 'DATE ')
if date_type_ddis:
self.ddi_date.related_ddi_box.reset_items({z.name:z.name for z in date_type_ddis})
relatable_type_ddis = []
for type_ in ['FLATFILE', 'LIST ', 'RESPONSE']:
relatable_type_ddis.extend(self.uj.find_ddis_by_attribute('type', type_))
if relatable_type_ddis:
self.ddi_related_ddi.reset_items({z.name:z.name for z in relatable_type_ddis})
sourceable_step_names = []
sourceable_steps = self.uj.find_steps_by_attribute('name_user_defined', True)
if sourceable_steps:
self.ddi_response_source_step.reset_items({ str(z.id):z.name for z in sourceable_steps })
sourceable_step_names = [ z.name for z in sourceable_steps ]
self.correlated_names = { z.field_name:z.field_name for z in self.uj.find_ddis_by_attribute('type', 'AUTOCORR') } # if z.field_type == 'Repeated Fields' }
self.ddi_auto_correlate_name.reset_items(self.correlated_names)
groupnodes = []
for stepgroup in self.uj.stepgroups:
new_group_node = QTreeWidgetItem()
new_group_node.setText(0, stepgroup.name)
stepnodes = []
for step in stepgroup.steps:
new_step_node = QTreeWidgetItem(new_group_node)
new_step_node.setText(0, step.name)
stepnodes.append(new_step_node)
groupnodes.append(new_group_node)