python - Wrong text alignment in row using QTreeView -
i have qtreeview
(with pyqt4
) custom , resized icons using code below, size column displaying wrong alignment/position, so:
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)
i've searched http://pyqt.sourceforge.net/docs/pyqt4/qtreeview.html documentation possible fix, couldn't find evident.
one way fix reimplement model's data() method value textalignmentrole includes alignvcenter flag:
# 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 , value 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 , value.isvalid(): value = value.toint()[0] | qtcore.qt.alignvcenter return value
Comments
Post a Comment