使用:
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_())
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_())
我刚刚在另一台机器(OSX)上运行了这些示例代码。令我惊讶的是,代码运行正常,标题字体设置正确。有趣的是,它在一个Mac上工作而在另一个Mac上不工作的原因是什么?这可能是一个sip
问题吗?Qt版本?PyQt版本?这是截图:
目前没有回答
相关问题 更多 >
编程相关推荐