如何在QTreewidget中设置open/close个图标
How to set open/close icons in QTreewidget
如何在 QTreeWidget
中管理打开和关闭的图标事件?
我有这个代码:
iconNameOpen="folder"
iconNameClose="folder_orange_open"
if ID>0:#file
iconNameFile="file_important"
icon=QIcon(':/manageinc/svg/reinhardticons/filesystems/{}.svg'.format(iconNameFile))
item.setIcon(0,icon)
else:
icon=QIcon(':/manageinc/svg/reinhardticons/filesystems/{}.svg'.format(iconNameOpen))
item.setIcon(0,icon)
#how manage when only this folder is opened or close?
如果我制作样式表,我会使用相同的 属性) 查看文件和文件夹(ID>0 或 <0)。
您可以使用 itemExpanded and itemCollapsed 信号来更改图标。下面的演示脚本使用 QStyle
创建图标,但您可以按照自己喜欢的方式进行操作:
import sys
from PyQt5.QtWidgets import *
class Window(QTreeWidget):
def __init__(self):
super().__init__()
style = QApplication.style()
self.dir_open = style.standardIcon(QStyle.SP_DirOpenIcon)
self.dir_closed = style.standardIcon(QStyle.SP_DirClosedIcon)
self.file_all = style.standardIcon(QStyle.SP_FileIcon)
for index in '1234':
parent = QTreeWidgetItem(self, ['Dir' + index])
parent.setIcon(0, self.dir_closed)
for item in 'ABC':
child = QTreeWidgetItem(parent, ['File' + index + item])
child.setIcon(0, self.file_all)
self.itemExpanded.connect(self.handleExpanded)
self.itemCollapsed.connect(self.handleCollapsed)
def handleExpanded(self, item):
item.setIcon(0, self.dir_open)
def handleCollapsed(self, item):
item.setIcon(0, self.dir_closed)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.setGeometry(600, 50, 400, 300)
window.show()
sys.exit(app.exec_())
如何在 QTreeWidget
中管理打开和关闭的图标事件?
我有这个代码:
iconNameOpen="folder"
iconNameClose="folder_orange_open"
if ID>0:#file
iconNameFile="file_important"
icon=QIcon(':/manageinc/svg/reinhardticons/filesystems/{}.svg'.format(iconNameFile))
item.setIcon(0,icon)
else:
icon=QIcon(':/manageinc/svg/reinhardticons/filesystems/{}.svg'.format(iconNameOpen))
item.setIcon(0,icon)
#how manage when only this folder is opened or close?
如果我制作样式表,我会使用相同的 属性) 查看文件和文件夹(ID>0 或 <0)。
您可以使用 itemExpanded and itemCollapsed 信号来更改图标。下面的演示脚本使用 QStyle
创建图标,但您可以按照自己喜欢的方式进行操作:
import sys
from PyQt5.QtWidgets import *
class Window(QTreeWidget):
def __init__(self):
super().__init__()
style = QApplication.style()
self.dir_open = style.standardIcon(QStyle.SP_DirOpenIcon)
self.dir_closed = style.standardIcon(QStyle.SP_DirClosedIcon)
self.file_all = style.standardIcon(QStyle.SP_FileIcon)
for index in '1234':
parent = QTreeWidgetItem(self, ['Dir' + index])
parent.setIcon(0, self.dir_closed)
for item in 'ABC':
child = QTreeWidgetItem(parent, ['File' + index + item])
child.setIcon(0, self.file_all)
self.itemExpanded.connect(self.handleExpanded)
self.itemCollapsed.connect(self.handleCollapsed)
def handleExpanded(self, item):
item.setIcon(0, self.dir_open)
def handleCollapsed(self, item):
item.setIcon(0, self.dir_closed)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.setGeometry(600, 50, 400, 300)
window.show()
sys.exit(app.exec_())