如何自定义QTreeWidget头的fon

2024-04-23 07:41:47 发布

您现在位置:Python中文网/ 问答频道 /正文

使用:

tree=QtGui.QTreeWidget()
tree.setHeaderLabels(['Column 1','Column 2','Column 3'])
tree.setColumnWidth(0, 48)  
tree.setColumnWidth(1, 48)  
tree.setColumnWidth(2, 48)  

已创建QTreeWidget。它的列标题是给定的名称。并设置标题的水平大小。

现在我想自定义标题的字体大小。

font = QtGui.QFont()
font.setPointSize(8)
tree.headerItem().setFont(0, font)

但是在这种语法中使用的.setFont对标题中使用的字体大小没有任何可见的影响。

我也试过:

tree.headerItem().setFont(0, font)
tree.headerItem().setFont(1, font)
tree.headerItem().setFont(2, font)

没有成功。使用什么方法自定义QTreeWidget列标题中使用的字体大小?

稍后编辑:

示例1使列标题变大,但不影响字体大小(?!)以下内容:

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
tree=QtGui.QTreeWidget()
tree.setHeaderLabels(['One','Two','Tree','Four','Five'])
font=QtGui.QFont()            
font.setPointSize(24)
tree.header().setFont(font)
tree.show()
sys.exit(app.exec_())

示例2再次尝试使用QSS=不影响字体大小:

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
tree=QtGui.QTreeWidget()
tree.setHeaderLabels(['One','Two','Tree','Four','Five'])
tree.header().setStyleSheet('font: bold 24px; font-size: 32pt; font-family: Courier;')
tree.setStyleSheet('font: bold 24px; font-size: 32pt; font-family: Courier;')
tree.show()
sys.exit(app.exec_())

例3使用setHeaderItem。没有成功:

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
tree=QtGui.QTreeWidget()

font=QtGui.QFont() 
font.setPointSize(36)
item=QtGui.QTreeWidgetItem()
item.setText(0,'Column name')
item.setFont(0,font)
tree.setHeaderItem(item)    
tree.show()
sys.exit(app.exec_())

示例5通过主窗口:

from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
mainWindow=QtGui.QMainWindow()
mainWidget=QtGui.QWidget()
mainWindow.setCentralWidget(mainWidget)
mainLayout = QtGui.QVBoxLayout()
mainWidget.setLayout(mainLayout)
mainWindow.setStyleSheet('QWidget { font: bold italic large "Times New Roman" }')
tree=QtGui.QTreeWidget()
tree.setHeaderLabels(['One','Two','Tree','Four','Five'])
mainLayout.addWidget(tree)
mainWindow.show()
sys.exit(app.exec_())

编辑#2

我刚刚在另一台机器(OSX)上运行了这些示例代码。令我惊讶的是,代码运行正常,标题字体设置正确。有趣的是,它在一个Mac上工作而在另一个Mac上不工作的原因是什么?这可能是一个sip问题吗?Qt版本?PyQt版本?这是截图: enter image description hereenter image description here


Tags: fromimporttreeapp标题示例column字体大小