【发布时间】:2014-07-29 20:24:09
【问题描述】:
使用:
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 版本?这是屏幕截图:
【问题讨论】: