本文整理汇总了Python中PyQt5.QtWidgets.QTreeWidget.invisibleRootItem方法的典型用法代码示例。如果您正苦于以下问题:Python QTreeWidget.invisibleRootItem方法的具体用法?Python QTreeWidget.invisibleRootItem怎么用?Python QTreeWidget.invisibleRootItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QTreeWidget
的用法示例。
在下文中一共展示了QTreeWidget.invisibleRootItem方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: MemUsageDialog
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import invisibleRootItem [as 别名]
class MemUsageDialog(QDialog):
def __init__(self, parent=None, update=True):
QDialog.__init__(self, parent=parent)
layout = QVBoxLayout()
self.tree = QTreeWidget()
layout.addWidget(self.tree)
self.setLayout(layout)
self._mgr = CacheMemoryManager()
self._tracked_caches = {}
# tree setup code
self.tree.setHeaderLabels(
["cache", "memory", "roi", "dtype", "type", "info", "id"])
self._idIndex = self.tree.columnCount() - 1
self.tree.setColumnHidden(self._idIndex, True)
self.tree.setSortingEnabled(True)
self.tree.clear()
self._root = TreeNode()
# refresh every x seconds (see showEvent())
self.timer = QTimer(self)
if update:
self.timer.timeout.connect(self._updateReport)
def _updateReport(self):
# we keep track of dirty reports so we just have to update the tree
# instead of reconstructing it
reports = []
for c in self._mgr.getFirstClassCaches():
r = MemInfoNode()
c.generateReport(r)
reports.append(r)
self._root.handleChildrenReports(
reports, root=self.tree.invisibleRootItem())
def hideEvent(self, event):
self.timer.stop()
def showEvent(self, show):
# update once so we don't have to wait for initial report
self._updateReport()
# update every 5 sec.
self.timer.start(5*1000)
示例2: ConfigurationWidget
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import invisibleRootItem [as 别名]
#.........这里部分代码省略.........
self.buttonBox.setStandardButtons(
QDialogButtonBox.Apply | QDialogButtonBox.Cancel |
QDialogButtonBox.Ok | QDialogButtonBox.Reset)
self.buttonBox.setObjectName("buttonBox")
if not self.fromEric and \
self.displayMode == ConfigurationWidget.DefaultMode:
self.buttonBox.button(QDialogButtonBox.Apply).hide()
self.buttonBox.button(QDialogButtonBox.Apply).setEnabled(False)
self.buttonBox.button(QDialogButtonBox.Reset).setEnabled(False)
self.verticalLayout_2.addWidget(self.buttonBox)
self.setWindowTitle(self.tr("Preferences"))
self.configList.header().hide()
self.configList.header().setSortIndicator(0, Qt.AscendingOrder)
self.configList.setSortingEnabled(True)
self.textLabel1.setText(
self.tr("Please select an entry of the list \n"
"to display the configuration page."))
QMetaObject.connectSlotsByName(self)
self.setTabOrder(self.configList, self.configStack)
self.configStack.setCurrentWidget(self.emptyPage)
self.configList.setFocus()
def __searchTextChanged(self, text):
"""
Private slot to handle a change of the search text.
@param text text to search for (string)
"""
self.__searchChildItems(self.configList.invisibleRootItem(), text)
def __searchChildItems(self, parent, text):
"""
Private method to enable child items based on a search string.
@param parent reference to the parent item (QTreeWidgetItem)
@param text text to search for (string)
@return flag indicating an enabled child item (boolean)
"""
childEnabled = False
text = text.lower()
for index in range(parent.childCount()):
itm = parent.child(index)
if itm.childCount() > 0:
enable = self.__searchChildItems(itm, text) or \
text == "" or text in itm.text(0).lower()
else:
enable = text == "" or text in itm.text(0).lower()
if enable:
childEnabled = True
itm.setDisabled(not enable)
return childEnabled
def __initLexers(self):
"""
Private method to initialize the dictionary of preferences lexers.
"""
import QScintilla.Lexers
from .PreferencesLexer import PreferencesLexer, \
PreferencesLexerLanguageError
示例3: ChangedDocumentsListDialog
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import invisibleRootItem [as 别名]
class ChangedDocumentsListDialog(widgets.dialog.Dialog):
def __init__(self):
super(ChangedDocumentsListDialog, self).__init__(buttons=('close',))
self.setWindowModality(Qt.NonModal)
self.setAttribute(Qt.WA_QuitOnClose, False)
layout = QGridLayout(margin=0)
self.mainWidget().setLayout(layout)
self.tree = QTreeWidget(headerHidden=True, rootIsDecorated=False,
columnCount=2, itemsExpandable=False)
self.tree.setSelectionMode(QTreeWidget.ExtendedSelection)
self.buttonReload = QPushButton()
self.buttonReloadAll = QPushButton()
self.buttonSave = QPushButton()
self.buttonSaveAll = QPushButton()
self.buttonShowDiff = QPushButton()
self.checkWatchingEnabled = QCheckBox(checked=enabled())
layout.addWidget(self.tree, 0, 0, 6, 1)
layout.addWidget(self.buttonReload, 0, 1)
layout.addWidget(self.buttonReloadAll, 1, 1)
layout.addWidget(self.buttonSave, 2, 1)
layout.addWidget(self.buttonSaveAll, 3, 1)
layout.addWidget(self.buttonShowDiff, 4, 1)
layout.addWidget(self.checkWatchingEnabled, 6, 0, 1, 2)
layout.setRowStretch(5, 10)
app.documentClosed.connect(self.removeDocument)
app.documentSaved.connect(self.removeDocument)
app.documentUrlChanged.connect(self.removeDocument)
app.documentLoaded.connect(self.removeDocument)
self.tree.itemSelectionChanged.connect(self.updateButtons)
self.buttonReload.clicked.connect(self.slotButtonReload)
self.buttonReloadAll.clicked.connect(self.slotButtonReloadAll)
self.buttonSave.clicked.connect(self.slotButtonSave)
self.buttonSaveAll.clicked.connect(self.slotButtonSaveAll)
self.buttonShowDiff.clicked.connect(self.slotButtonShowDiff)
self.checkWatchingEnabled.toggled.connect(setEnabled)
app.translateUI(self)
qutil.saveDialogSize(self, 'externalchanges/dialog/size', QSize(400, 200))
userguide.addButton(self.buttonBox(), "externalchanges")
self.button('close').setFocus()
def translateUI(self):
self.setWindowTitle(app.caption(_("Modified Files")))
self.setMessage(_(
"The following files were modified or deleted by other "
"applications:"))
self.buttonReload.setText(_("Reload"))
self.buttonReload.setToolTip(_(
"Reloads the selected documents from disk. "
"(You can still reach the previous state of the document "
"using the Undo command.)"))
self.buttonReloadAll.setText(_("Reload All"))
self.buttonReloadAll.setToolTip(_(
"Reloads all externally modified documents from disk. "
"(You can still reach the previous state of the document "
"using the Undo command.)"))
self.buttonSave.setText(_("Save"))
self.buttonSave.setToolTip(_(
"Saves the selected documents to disk, overwriting the "
"modifications by another program."))
self.buttonSaveAll.setText(_("Save All"))
self.buttonSaveAll.setToolTip(_(
"Saves all documents to disk, overwriting the modifications by "
"another program."))
self.buttonShowDiff.setText(_("Show Difference..."))
self.buttonShowDiff.setToolTip(_(
"Shows the differences between the current document "
"and the file on disk."))
self.checkWatchingEnabled.setText(_(
"Enable watching documents for external changes"))
self.checkWatchingEnabled.setToolTip(_(
"If checked, Frescobaldi will warn you when opened files are "
"modified or deleted by other applications."))
def setDocuments(self, documents):
"""Display the specified documents in the list."""
# clear the treewidget
for d in self.tree.invisibleRootItem().takeChildren():
for i in d.takeChildren():
i.doc = None
# group the documents by directory
dirs = {}
for d in documents:
path = d.url().toLocalFile()
if path:
dirname, filename = os.path.split(path)
dirs.setdefault(dirname, []).append((filename, d))
for dirname in sorted(dirs, key=util.naturalsort):
diritem = QTreeWidgetItem()
diritem.setText(0, util.homify(dirname))
self.tree.addTopLevelItem(diritem)
diritem.setExpanded(True)
diritem.setFlags(Qt.ItemIsEnabled)
diritem.setIcon(0, icons.get('folder-open'))
for filename, document in sorted(dirs[dirname],
key=lambda item: util.naturalsort(item[0])):
#.........这里部分代码省略.........
示例4: DictParameterWidget
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import invisibleRootItem [as 别名]
#.........这里部分代码省略.........
# 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):
"""Obtain the parameter object from the current widget state.
:returns: A DictParameter from the current state of widget
"""
root_widget_item = self.input.invisibleRootItem()
widget_items = [root_widget_item.child(i)
for i in range(root_widget_item.childCount())]
data_dict = self.extract_dict(widget_items)
self._parameter.value = data_dict
return self._parameter
示例5: Shortcuts
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import invisibleRootItem [as 别名]
#.........这里部分代码省略.........
item.setFlags(Qt.ItemIsEnabled) # disable selection
# show other actions that were not in the menus
item = QTreeWidgetItem([_("Other commands:")])
for a in left:
if a.text() and not a.menu():
item.addChild(ShortcutItem(a, *allactions[a]))
if item.childCount():
self.tree.addTopLevelItem(item)
item.setFlags(Qt.ItemIsEnabled) # disable selection
self.tree.expandAll()
item = self.tree.topLevelItem(0).child(0)
if _lastaction:
# find the previously selected item
for i in self.items():
if i.name == _lastaction:
item = i
break
self.tree.setCurrentItem(item)
self.tree.resizeColumnToContents(0)
def items(self):
"""Yield all the items in the actions tree."""
def children(item):
for i in range(item.childCount()):
c = item.child(i)
if c.childCount():
for c1 in children(c):
yield c1
else:
yield c
for c in children(self.tree.invisibleRootItem()):
yield c
def item(self, collection, name):
for item in self.items():
if item.collection.name == collection and item.name == name:
return item
def saveSettings(self):
self.scheme.saveSettings("shortcut_scheme", "shortcut_schemes", "shortcuts")
for item in self.items():
for scheme in self.scheme.schemes():
item.save(scheme)
item.clearSettings()
item.switchScheme(self.scheme.currentScheme())
def loadSettings(self):
self.scheme.loadSettings("shortcut_scheme", "shortcut_schemes")
# clear the settings in all the items
for item in self.items():
item.clearSettings()
item.switchScheme(self.scheme.currentScheme())
def slotSchemeChanged(self):
"""Called when the Scheme combobox is changed by the user."""
for item in self.items():
item.switchScheme(self.scheme.currentScheme())
def slotCurrentItemChanged(self, item):
if isinstance(item, ShortcutItem):
self.edit.setText(
_("&Edit Shortcut for \"{name}\"").format(name=item.text(0)))
self.edit.setEnabled(True)