本文整理汇总了Python中PyQt5.QtWidgets.QTreeWidget.setEditTriggers方法的典型用法代码示例。如果您正苦于以下问题:Python QTreeWidget.setEditTriggers方法的具体用法?Python QTreeWidget.setEditTriggers怎么用?Python QTreeWidget.setEditTriggers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtWidgets.QTreeWidget
的用法示例。
在下文中一共展示了QTreeWidget.setEditTriggers方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: InfoDialog
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import setEditTriggers [as 别名]
class InfoDialog(QDialog):
def __init__(self, parent, info, title):
super().__init__(parent)
self.setWindowTitle('Media Info - ' + title)
self.setWindowModality(QtCore.Qt.ApplicationModal)
self.setMinimumSize(500, 250)
self.resize(500, 250)
self.vLayout = QVBoxLayout(self)
self.infoTree = QTreeWidget(self)
self.infoTree.setColumnCount(2)
self.infoTree.setHeaderLabels(['Scope', 'Value'])
self.infoTree.setAlternatingRowColors(True)
self.infoTree.setSelectionMode(QAbstractItemView.NoSelection)
self.infoTree.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.vLayout.addWidget(self.infoTree)
self.__generate_widgets(info)
self.infoTree.setColumnWidth(0, 150)
self.buttonBox = QDialogButtonBox(self)
self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
self.vLayout.addWidget(self.buttonBox)
self.buttonBox.rejected.connect(self.close)
def __generate_widgets(self, info, parent=None):
for key in sorted(info.keys()):
if(isinstance(info[key], dict)):
widget = QTreeWidgetItem([key])
self.__generate_widgets(info[key], widget)
else:
widget = QTreeWidgetItem([key, info[key]])
if(parent):
parent.addChild(widget)
else:
self.infoTree.addTopLevelItem(widget)
示例2: OtherPackagesPage
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import setEditTriggers [as 别名]
class OtherPackagesPage(QWidget):
""" The GUI for the other packages page of a project. """
# The page's label.
label = "Other Packages"
@property
def project(self):
""" The project property getter. """
return self._project
@project.setter
def project(self, value):
""" The project property setter. """
if self._project != value:
self._project = value
self._package_delegate.set_project(value)
self._update_page()
def __init__(self):
""" Initialise the page. """
super().__init__()
self._project = None
# Create the page's GUI.
layout = QHBoxLayout()
self._package_selector = QTreeWidget(
whatsThis="This shows a list of directories containing "
"additional Python packages which can be scanned when "
"selected. Double-click on a directory to edit or "
"remove it. Double-click below the last directory in "
"order to add a new one.")
self._package_selector.setHeaderLabel("Packages Directory")
self._package_selector.setEditTriggers(
QTreeWidget.DoubleClicked|QTreeWidget.SelectedClicked|
QTreeWidget.EditKeyPressed)
self._package_selector.setRootIsDecorated(False)
self._package_selector.currentItemChanged.connect(
self._package_selector_changed)
self._package_selector.itemChanged.connect(self._package_dir_changed)
self._package_delegate = FilenameEditorDelegate("Packages Directory",
directory=True)
self._package_selector.setItemDelegateForColumn(0,
self._package_delegate)
layout.addWidget(self._package_selector)
self._package_edit = _PackageDirectoryEditor()
self._package_edit.package_changed.connect(self._package_changed)
package_edit_gb = QGroupBox(self._package_edit.title)
package_edit_gb.setLayout(self._package_edit)
layout.addWidget(package_edit_gb)
self.setLayout(layout)
def _update_page(self):
""" Update the page using the current project. """
project = self.project
self._package_selector.clear()
for package in project.other_packages:
self._add_package_dir(package)
self._add_package_dir()
def _add_package_dir(self, package=None):
""" Add a QTreeWidgetItem that holds a package directory. """
if package is None:
package = QrcPackage()
name = ''
else:
name = package.name
itm = QTreeWidgetItem([name])
itm.setData(0, Qt.UserRole, package)
itm.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEnabled|Qt.ItemNeverHasChildren|Qt.ItemIsEditable)
self._package_selector.addTopLevelItem(itm)
def _package_selector_changed(self, new, old):
""" Invoked when the user selects a package directory. """
if new is not None:
self._package_edit.configure(new.data(0, Qt.UserRole),
self.project)
def _package_dir_changed(self, itm, column):
""" Invoked when the user edits a package directory name. """
#.........这里部分代码省略.........
示例3: OtherExtensionModulesPage
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import setEditTriggers [as 别名]
class OtherExtensionModulesPage(QWidget):
""" The GUI for the other extension modules page of a project. """
# The page's label.
label = "Other Extension Modules"
@property
def project(self):
""" The project property getter. """
return self._project
@project.setter
def project(self, value):
""" The project property setter. """
if self._project != value:
self._project = value
self._extension_modules_delegate.set_project(value)
self._update_page()
def __init__(self):
""" Initialise the page. """
super().__init__()
self._project = None
# Create the page's GUI.
layout = QVBoxLayout()
self._extension_modules_edit = QTreeWidget(
whatsThis="This shows a list of additional compiled "
"extension modules to be linked with the application. "
"<b>Name</b> should be the full (dot separated) "
"package name of the extension module. <b>LIBS</b> "
"should be the value of the corresponding "
"<tt>qmake</tt> variable needed to link the extension "
"module. Double-click on an entry to edit or remove "
"it. Double-click below the last entry in order to "
"add a new one. Values may be prefixed by a platform "
"specific <tt>qmake</tt> scope.")
self._extension_modules_edit.setHeaderLabels(["Name", "LIBS"])
self._extension_modules_edit.setEditTriggers(
QTreeWidget.DoubleClicked|QTreeWidget.SelectedClicked|
QTreeWidget.EditKeyPressed)
self._extension_modules_edit.setRootIsDecorated(False)
self._extension_modules_edit.itemChanged.connect(
self._extension_module_changed)
self._extension_modules_delegate = FilenameEditorDelegate(
"Extension Module Directory", directory=True)
self._extension_modules_edit.setItemDelegateForColumn(1,
self._extension_modules_delegate)
layout.addWidget(self._extension_modules_edit)
self.setLayout(layout)
def _update_page(self):
""" Update the page using the current project. """
project = self.project
# Set the extension modules.
self._extension_modules_edit.clear()
for extension_module in project.other_extension_modules:
self._add_extension_module_item(extension_module)
# Add one to be edited to create a new entry.
self._add_extension_module_item()
def _add_extension_module_item(self, extension_module=None):
""" Add a QTreeWidgetItem that holds an exclusion. """
if extension_module is not None:
name = extension_module.name
libs = extension_module.libs
else:
name = libs = ''
itm = QTreeWidgetItem([name, libs])
itm.setFlags(
Qt.ItemIsSelectable|Qt.ItemIsEditable|Qt.ItemIsEnabled|
Qt.ItemNeverHasChildren)
self._extension_modules_edit.addTopLevelItem(itm)
def _extension_module_changed(self, itm, value):
""" Invoked when an extension module has changed. """
project = self.project
em_edit = self._extension_modules_edit
new_name = itm.data(0, Qt.DisplayRole).strip()
new_libs = itm.data(1, Qt.DisplayRole).strip()
itm_index = em_edit.indexOfTopLevelItem(itm)
#.........这里部分代码省略.........
示例4: QrcPackageEditor
# 需要导入模块: from PyQt5.QtWidgets import QTreeWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QTreeWidget import setEditTriggers [as 别名]
class QrcPackageEditor(QGridLayout):
""" A resource file system package editor. Note that this is a QLayout and
not a QWidget.
"""
# Emitted when the package has changed.
package_changed = pyqtSignal()
def __init__(self, show_root=False, scan="Scan", scan_whats_this='', whats_this=''):
""" Initialise the editor. """
super().__init__()
self.package = None
self.project = None
self._show_root = show_root
self._package_edit = QTreeWidget(whatsThis=whats_this)
self._package_edit.header().hide()
self._package_edit.itemChanged.connect(self._package_changed)
self.addWidget(self._package_edit, 0, 0, 3, 1)
self._scan_button = QPushButton(scan, whatsThis=scan_whats_this,
clicked=self._scan, enabled=False)
self.addWidget(self._scan_button, 0, 1)
self._remove_button = QPushButton("Remove all",
whatsThis="Remove all of the scanned directories and files.",
clicked=self._remove_all, enabled=False)
self.addWidget(self._remove_button, 0, 2)
self._include_button = QPushButton("Include all",
whatsThis="Select all of the scanned directories and files.",
clicked=self._include_all, enabled=False)
self.addWidget(self._include_button, 1, 1)
self._exclude_button = QPushButton("Exclude all",
whatsThis="Deselect all of the scanned directories and files.",
clicked=self._exclude_all, enabled=False)
self.addWidget(self._exclude_button, 1, 2)
self._exclusions_edit = QTreeWidget(
whatsThis="Any directory or file that matches any of the "
"these patterns will be automatically ignored when "
"scanning. Double-click on a pattern to edit or remove "
"it. Double-click below the last pattern in order to "
"add a new one.")
self._exclusions_edit.setHeaderLabel("Exclusions")
self._exclusions_edit.setEditTriggers(
QTreeWidget.DoubleClicked|QTreeWidget.SelectedClicked|
QTreeWidget.EditKeyPressed)
self._exclusions_edit.setRootIsDecorated(False)
self._exclusions_edit.itemChanged.connect(self._exclusion_changed)
self.addWidget(self._exclusions_edit, 2, 1, 1, 2)
def configure(self, package, project):
""" Configure the editor with the contents of the given package and
project.
"""
# Save the configuration.
self.package = package
self.project = project
# Set the package itself.
self._visualise()
# Set the exclusions.
self._exclusions_edit.clear()
for exclude in package.exclusions:
self._add_exclusion_item(exclude)
# Add one to be edited to create a new entry.
self._add_exclusion_item()
self._scan_button.setEnabled(package is not None)
def get_root_dir(self):
""" Return the root directory to scan, or '' if there was an error or
the user cancelled.
"""
raise NotImplementedError
def filter(self, name):
""" See if a scanned name should be discarded. """
# Include everything by default.
return False
def required(self, name):
""" See if a scanned name is required. """
# Nothing is required by default.
return False
def _add_exclusion_item(self, exclude=''):
#.........这里部分代码省略.........