在 QTableWidgetItem 中使用富文本

Use rich text in QTableWidgetItem

有什么方法可以在 QTableWidgetItem 中使用富文本?

目前我有这个:

widgetItem = QtWidgets.QTableWidgetItem()
widget = QtWidgets.QWidget()
widgetText =  QtWidgets.QLabel("<b>foo bar</b>")
widgetLayout = QtWidgets.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
widget.setLayout(widgetLayout)
widgetItem.setSizeHint(widget.sizeHint())
self.tablewidget.setCellWidget(0, 0, widget)
self.tablewidget.resizeColumnsToContents()

但是我的 table 小部件没有任何显示。

创建QTableWidget时必须设置行数和列数,例如:

self.tablewidget = QtWidgets.QTableWidget(2, 2, self)

或者我们可以稍后使用 setRowCount()setColumnCount() 函数设置它:

self.tablewidget = QtWidgets.QTableWidget(self)
self.tablewidget.setRowCount(10)
self.tablewidget.setColumnCount(5)

但是如果您不使用上面的表单,将不会显示小部件,在您的情况下是标签。

也没有必要使用QTableWidgetItem,如下所示:

import sys
from PyQt5 import QtWidgets


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    tablewidget = QtWidgets.QTableWidget(4, 4)
    widget = QtWidgets.QWidget()
    widgetText =  QtWidgets.QLabel("<b>foo bar</b>")
    widgetLayout = QtWidgets.QHBoxLayout()
    widgetLayout.addWidget(widgetText)
    widgetLayout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
    widget.setLayout(widgetLayout)
    tablewidget.setCellWidget(0, 0, widget)
    tablewidget.resizeColumnsToContents()
    tablewidget.show()

    sys.exit(app.exec_())

输出: