如何设置QTreeWidgetItem上箭头的对齐方式
我希望这些树状箭头与树状箭头的顶部对齐。 我有一个如何设置QTreeWidgetItem上箭头的对齐方式,qt,pyside,qtreeview,qtreewidget,qtreewidgetitem,Qt,Pyside,Qtreeview,Qtreewidget,Qtreewidgetitem,我希望这些树状箭头与树状箭头的顶部对齐。 我有一个qtwidts.QTreeWidget(),并创建了一个自定义的qtwidts.QTreeWidgetItem() 然后,我设置了一个自定义项小部件self.tree\u小部件.setItemWidget(self.tree\u小部件\u Item,0,self.main\u小部件) 因此,装饰器/箭头将自身均匀地定位在几何体的中心,但我希望它在顶部对齐 我一直在考虑为此设置对齐方式,但不确定在哪里设置对齐方式,或者是否需要通过样式表设置对齐方式
qtwidts.QTreeWidget()
,并创建了一个自定义的qtwidts.QTreeWidgetItem()
然后,我设置了一个自定义项小部件self.tree\u小部件.setItemWidget(self.tree\u小部件\u Item,0,self.main\u小部件)
因此,装饰器/箭头将自身均匀地定位在几何体的中心,但我希望它在顶部对齐
我一直在考虑为此设置对齐方式,但不确定在哪里设置对齐方式,或者是否需要通过样式表设置对齐方式。如果我无法移动它,我可以创建一个自定义小部件来替换装饰器,并隐藏默认的小部件,但如果可能的话,我更愿意使用这里的小部件。
有什么想法吗?谢谢 您可以重新实现
QTreeView.drawBranchs
并为用于绘制每个分支的QRect设置较小的高度。如果箭头是对称的,简单地使用宽度是一个很好的值
import sys
from PySide2.QtWidgets import *
class Tree(QTreeWidget):
def drawBranches(self, painter, rect, index):
rect.setHeight(rect.width())
super().drawBranches(painter, rect, index)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = Tree()
for i in range(5):
item = QTreeWidgetItem([f'Item {i}\n\n'])
item.addChild(QTreeWidgetItem([f'Child {i}']))
tree.addTopLevelItem(item)
tree.show()
sys.exit(app.exec_())
之前|之后:
您可以重新实现
QTreeView.drawBranchs
并为用于绘制每个分支的QRect设置较小的高度。如果箭头是对称的,简单地使用宽度是一个很好的值
import sys
from PySide2.QtWidgets import *
class Tree(QTreeWidget):
def drawBranches(self, painter, rect, index):
rect.setHeight(rect.width())
super().drawBranches(painter, rect, index)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = Tree()
for i in range(5):
item = QTreeWidgetItem([f'Item {i}\n\n'])
item.addChild(QTreeWidgetItem([f'Child {i}']))
tree.addTopLevelItem(item)
tree.show()
sys.exit(app.exec_())
之前|之后:
太好了,这正是我想要的。谢谢遗憾的是它必须是自己的班级,但这样可能更好/更干净!我不得不以稍微不同的方式编写super,但这很可能是我正在使用的Python版本:super(CustomTreeWidget,self)。DrawBranchs(painter,rect,index)完美,这正是我想要的。谢谢遗憾的是它必须是自己的班级,但这样可能更好/更干净!我不得不以稍微不同的方式编写super,但这很可能是我正在使用的Python版本:super(CustomTreeWidget,self)