gpt4 book ai didi

python - 使用 QTreeView 的行中的文本对齐错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:09 24 4
gpt4 key购买 nike

我有一个 QTreeView(使用 PyQt4),使用下面的代码自定义和调整大小的图标,但是 Size 列显示错误对齐/位置,像这样:

enter image description here

        self.ui.treeView.setIconSize(QtCore.QSize(30,30))

fileSystemModel = QtGui.QFileSystemModel(self.ui.treeView)
custonIconProvider = CustomIconsProvider()
fileSystemModel.setIconProvider(custonIconProvider)

self.ui.treeView.setModel(fileSystemModel)
self.ui.treeView.setRootIndex(fileSystemModel.setRootPath(forlderPath))

self.ui.treeView.setColumnWidth(0, 250)
self.ui.treeView.setColumnWidth(1, 70)
self.ui.treeView.setColumnWidth(2, 70)

我搜索了 http://pyqt.sourceforge.net/Docs/PyQt4/qtreeview.html可能修复的文档,但找不到任何明显的东西。

最佳答案

解决此问题的一种方法是重新实现模型的 data() method以便 TextAlignmentRole 的值始终包含 AlignVCenter 标志:

# python3 or sip.setapi('QVariant', 2)

class FileSystemModel(QtGui.QFileSystemModel):
def data(self, index, role):
value = super(FileSystemModel, self).data(index, role)
if role == QtCore.Qt.TextAlignmentRole and value is not None:
value |= QtCore.Qt.AlignVCenter
return value

# python2 or sip.setapi('QVariant', 1)

class FileSystemModel(QtGui.QFileSystemModel):
def data(self, index, role):
value = super(FileSystemModel, self).data(index, role)
if role == QtCore.Qt.TextAlignmentRole and value.isValid():
value = value.toInt()[0] | QtCore.Qt.AlignVCenter
return value

关于python - 使用 QTreeView 的行中的文本对齐错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18985217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com