Updated: 2021/05/11 山岸 Created: 2021/05/11 山岸
currentItem() → item
treeWidget.currentItem()
setSortingEnabled( True ) ソートオン
expandToDepth(0) 全て展開
setRootIsDecorated(False) ツリーラインなどオフ
TreeWidget.header().hide() ヘッダー非表示
header = treewidget.header()
header.hide()
void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
void itemActivated(QTreeWidgetItem *item, int column)
void itemChanged(QTreeWidgetItem *item, int column)
void itemClicked(QTreeWidgetItem *item, int column)
void itemCollapsed(QTreeWidgetItem *item)
void itemDoubleClicked(QTreeWidgetItem *item, int column)
void itemEntered(QTreeWidgetItem *item, int column)
void itemExpanded(QTreeWidgetItem *item)
void itemPressed(QTreeWidgetItem *item, int column)
void itemSelectionChanged()
ui = QtWidgets.QTreeWidget(self)
headers = ['Asset', 'Status', 'Description']
ui.setColumnCount(len(headers))
ui.setHeaderLabels(headers)
ui.header().resizeSection(0, 100)
ui.header().resizeSection(1, 35)
ui.sortByColumn(0, QtCore.Qt.AscendingOrder) # SortOrder昇順降順
ui.setSortingEnabled(True)
ui.setAlternatingRowColors(True)
# rootノードの折り畳みのアイコン
ui.setRootIsDecorated(False)
# 展開する階層
ui.expandToDepth(0)
# アイテムの移動を有効にする
ui.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
ui.setDragEnabled(True)
ui.viewport().setAcceptDrops(True)
# 複数選択
ui.setSelectionMode(ui.MultiSelection)
ui.setSelectionMode(ui.ExtendedSelection)
# ヘッダー非表示
# ui.header().hide()
# ContexMenu
ui.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
ui.customContextMenuRequested.connect(self.contextMenu)
def contextMenu(self, point):
menu = QtWidgets.QMenu(self)
action = QtWidgets.QAction('Menu1', self)
action.triggered.connect(self.menu1)
action.setShortcut(QtGui.QKeySequence('Ctrl+Shift+C'))
menu.addAction(action)
action = QtWidgets.QAction('Menu2', self)
menu.addAction(action)
menu.addSeparator()
action = QtWidgets.QAction('Menu3', self)
menu.addAction(action)
menu.exec_(self.mapToGlobal(point))
PySide6 から以下のコードでは動かないので
QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection
を使う。これだとPySide5、PySide6双方で動作する
setSelectionMode(
QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection)
if __name__ == '__main__':
app = QApplication(sys.argv)
listWidget = QListWidget()
listWidget.addItems(["data{}".format(i) for i in range(10)])
listWidget.setSelectionMode(QListWidget.MultiSelection)
listWidget.setSelectionMode(QListWidget.ExtendedSelection)
index = ['data2', 'data3', 'data5']
for i in index:
matching_items = listWidget.findItems(i, Qt.MatchExactly)
for item in matching_items:
item.setSelected(True)
listWidget.show()
app.exec_()
for shot in shots:
top_item = SceneListTreeWidgetItem(self._ctrl, shot, ui)
ui.addTopLevelItem(top_item)
scenes = shot.dependencies()
for scene in scenes:
item = SceneListTreeWidgetItem(self._ctrl, scene, top_item)
top_item.addChild(item)
items = self.tree_widget.findItems(
name, QtCore.Qt.MatchWrap |QtCore.Qt.MatchWildcard | QtCore.Qt.MatchRecursive,
)