2017-07-23 5 views
0

Gibt es eine Möglichkeit, Rich Text in QTableWidgetItem zu verwenden?Verwenden Sie Rich Text in QTableWidgetItem

Zur Zeit habe ich dies:

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() 

Aber nichts zeigt es meinem Tisch-Widget.

+0

Sie konnten zeigen, wie Sie 'self.tablewidget' erstellt haben – eyllanesc

Antwort

1

Wenn Sie erstellen QTableWidget Sie die Anzahl der Zeilen und Spalten festlegen müssen, zum Beispiel:

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

Oder wir können es später setzen die setRowCount() und setColumnCount() Funktionen:

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

Aber Wenn Sie das obige Formular nicht verwenden, wird das Widget nicht angezeigt, in Ihrem Fall das Label.

Auch ist es nicht erforderlich, QTableWidgetItem zu verwenden, wie ich weiter unten zeigen:

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_()) 

Ausgang:

enter image description here