本文整理汇总了Python中spyderlib.qt.QtGui.QTreeWidgetItem.setData方法的典型用法代码示例。如果您正苦于以下问题:Python QTreeWidgetItem.setData方法的具体用法?Python QTreeWidgetItem.setData怎么用?Python QTreeWidgetItem.setData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类spyderlib.qt.QtGui.QTreeWidgetItem
的用法示例。
在下文中一共展示了QTreeWidgetItem.setData方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: populate_tree
# 需要导入模块: from spyderlib.qt.QtGui import QTreeWidgetItem [as 别名]
# 或者: from spyderlib.qt.QtGui.QTreeWidgetItem import setData [as 别名]
def populate_tree(self, parentItem, children_list):
"""Recursive method to create each item (and associated data) in the tree."""
for child_key in children_list:
self.item_depth += 1
(filename, line_number, function_name, file_and_line, node_type
) = self.function_info(child_key)
(primcalls, total_calls, loc_time, cum_time, callers
) = self.stats[child_key]
child_item = QTreeWidgetItem(parentItem)
self.item_list.append(child_item)
self.set_item_data(child_item, filename, line_number)
# FIXME: indexes to data should be defined by a dictionary on init
child_item.setToolTip(0, 'Function or module name')
child_item.setData(0, Qt.DisplayRole, function_name)
child_item.setIcon(0, get_icon(self.icon_list[node_type]))
child_item.setToolTip(1, _('Time in function '\
'(including sub-functions)'))
#child_item.setData(1, Qt.DisplayRole, cum_time)
child_item.setData(1, Qt.DisplayRole, '%.3f' % cum_time)
child_item.setTextAlignment(1, Qt.AlignCenter)
child_item.setToolTip(2, _('Local time in function '\
'(not in sub-functions)'))
#child_item.setData(2, Qt.DisplayRole, loc_time)
child_item.setData(2, Qt.DisplayRole, '%.3f' % loc_time)
child_item.setTextAlignment(2, Qt.AlignCenter)
child_item.setToolTip(3, _('Total number of calls '\
'(including recursion)'))
child_item.setData(3, Qt.DisplayRole, total_calls)
child_item.setTextAlignment(3, Qt.AlignCenter)
child_item.setToolTip(4, _('File:line '\
'where function is defined'))
child_item.setData(4, Qt.DisplayRole, file_and_line)
#child_item.setExpanded(True)
if self.is_recursive(child_item):
child_item.setData(4, Qt.DisplayRole, '(%s)' % _('recursion'))
child_item.setDisabled(True)
else:
callees = self.find_callees(child_key)
if self.item_depth < 3:
self.populate_tree(child_item, callees)
elif callees:
child_item.setChildIndicatorPolicy(child_item.ShowIndicator)
self.items_to_be_shown[id(child_item)] = callees
self.item_depth -= 1
示例2: populate_tree
# 需要导入模块: from spyderlib.qt.QtGui import QTreeWidgetItem [as 别名]
# 或者: from spyderlib.qt.QtGui.QTreeWidgetItem import setData [as 别名]
def populate_tree(self):
"""Create each item (and associated data) in the tree"""
if not self.stats:
warn_item = QTreeWidgetItem(self)
warn_item.setData(
0, Qt.DisplayRole,
_('No timings to display. '
'Did you forget to add @profile decorators ?')
.format(url=WEBSITE_URL))
warn_item.setFirstColumnSpanned(True)
warn_item.setTextAlignment(0, Qt.AlignCenter)
font = warn_item.font(0)
font.setStyle(QFont.StyleItalic)
warn_item.setFont(0, font)
return
try:
monospace_font = self.window().editor.get_plugin_font()
except AttributeError: # If run standalone for testing
monospace_font = QFont("Courier New")
monospace_font.setPointSize(10)
for func_info, func_data in self.stats.items():
# Function name and position
filename, start_line_no, func_name = func_info
func_stats, func_peak_usage = func_data
func_item = QTreeWidgetItem(self)
func_item.setData(
0, Qt.DisplayRole,
_('{func_name} (peak {peak_usage:.3f} MiB) in file "{filename}", '
'line {line_no}').format(
filename=filename,
line_no=start_line_no,
func_name=func_name,
peak_usage=func_peak_usage))
func_item.setFirstColumnSpanned(True)
func_item.setData(COL_POS, Qt.UserRole,
(osp.normpath(filename), start_line_no))
# For sorting by time
func_item.setData(COL_USAGE, Qt.DisplayRole, func_peak_usage)
func_item.setData(COL_INCREMENT, Qt.DisplayRole,
func_peak_usage)
if self.parent().use_colors:
# Choose deteministic unique color for the function
md5 = hashlib.md5((filename + func_name).encode("utf8")).hexdigest()
hue = (int(md5[:2], 16) - 68) % 360 # avoid blue (unreadable)
func_color = QColor.fromHsv(hue, 200, 255)
else:
# Red color only
func_color = QColor.fromRgb(255, 0, 0)
# get max increment
max_increment = 0
for line_info in func_stats:
(line_no, code_line, usage, increment) = line_info
if increment is not None:
max_increment = max(max_increment, increment)
# Lines of code
for line_info in func_stats:
line_item = QTreeWidgetItem(func_item)
(line_no, code_line, usage, increment) = line_info
self.fill_item(
line_item, filename, line_no, code_line,
usage, increment)
# Color background
if increment is not None:
alpha = increment / max_increment if max_increment != 0 else 0
color = QColor(func_color)
color.setAlphaF(alpha) # Returns None
color = QBrush(color)
for col in range(self.columnCount()):
line_item.setBackground(col, color)
else:
for col in range(self.columnCount()):
line_item.setForeground(col, CODE_NOT_RUN_COLOR)
# Monospace font for code
line_item.setFont(COL_LINE, monospace_font)