如何更改 header QTreeView PyQt5 的对齐方式?
How can I change alignment of header QTreeView PyQt5?
我想将 QTreeView 的 header 的对齐方式更改为居中或右侧。我 google 它但答案仅适用于 C++ :D 我不明白..
我想将 (TITLES) Header 更改为居中或右侧看这个:
https://imgur.com/Jvfdcgn
感谢帮助。
class My(QWidget,myui):
def __init__(self,parent=None):
super(QWidget,self).__init__(parent)
self.setupUi(self)
self.dataView=QTreeView()
self.model=self.createModel(self)
self.dataView.setModel(self.model)
def information(self,name):
self.addData(self.model,name)
def createModel(self,parent):
model=QStandardItemModel(0,1,parent)
model.setHeaderData(self.TITLE,Qt.Horizontal,'TITLES') # I want to change 'TITLES' to the center or right side.
return model
def addData(self,model,TITLE):
model.insertRow(0)
model.setData(model.index(0,self.TITLE),TITLE)
使用 PySide2 和 QTableview,这有效:
self.table = QtWidgets.QTableWidget(5, 3, self)
self.table.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignRight)
我没有可用的 PyQt5/QTreeView 示例来查看它是否相似;但这也许足以帮助您?
您必须设置 header 的 default alignment。
QTableView 或 QTableWidget 都有 horizontalHeader()
和 verticalHeader()
,但是由于 QTreeView/QTreeWidget 只有水平的 header,所以函数只是 header()
。
self.dataView.header().setDefaultAlignment(Qt.AlignRight|Qt.AlignVCenter)
垂直对齐通常不是必需的,我只是为了完整性添加了它。
如果要为特定列设置对齐方式:
column = 2
self.dataView.headerItem().setTextAlignment(column, QtCore.Qt.AlignCenter)
我想将 QTreeView 的 header 的对齐方式更改为居中或右侧。我 google 它但答案仅适用于 C++ :D 我不明白..
我想将 (TITLES) Header 更改为居中或右侧看这个: https://imgur.com/Jvfdcgn
感谢帮助。
class My(QWidget,myui):
def __init__(self,parent=None):
super(QWidget,self).__init__(parent)
self.setupUi(self)
self.dataView=QTreeView()
self.model=self.createModel(self)
self.dataView.setModel(self.model)
def information(self,name):
self.addData(self.model,name)
def createModel(self,parent):
model=QStandardItemModel(0,1,parent)
model.setHeaderData(self.TITLE,Qt.Horizontal,'TITLES') # I want to change 'TITLES' to the center or right side.
return model
def addData(self,model,TITLE):
model.insertRow(0)
model.setData(model.index(0,self.TITLE),TITLE)
使用 PySide2 和 QTableview,这有效:
self.table = QtWidgets.QTableWidget(5, 3, self)
self.table.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignRight)
我没有可用的 PyQt5/QTreeView 示例来查看它是否相似;但这也许足以帮助您?
您必须设置 header 的 default alignment。
QTableView 或 QTableWidget 都有 horizontalHeader()
和 verticalHeader()
,但是由于 QTreeView/QTreeWidget 只有水平的 header,所以函数只是 header()
。
self.dataView.header().setDefaultAlignment(Qt.AlignRight|Qt.AlignVCenter)
垂直对齐通常不是必需的,我只是为了完整性添加了它。
如果要为特定列设置对齐方式:
column = 2
self.dataView.headerItem().setTextAlignment(column, QtCore.Qt.AlignCenter)