我正在搜索如何在QTableWidget中创建像HTML这样的标题,如下所示:
我可以在QTextEdit (带有单元格中的图像的HTML)中这样做,但是我需要这样的自定义单元格:
因此,QTextEdit不适合这样做。这是可能的吗?如果有,我如何创建它?也许不是QTableWidget,我只是需要带有自定义单元格和自定义头的可编辑表。
我所看到的只是插入一个大标题图像并根据该图像设置所有列,但是如何创建一个包含一个单元格的行呢?
发布于 2018-08-27 10:09:22
QTableView.setSpan(行、列、rowSpan、columnSpan) 参数: 行- PySide.QtCore.int 列- PySide.QtCore.int rowSpan - PySide.QtCore.int columnSpan - PySide.QtCore.int将表元素的跨度设置为(rowSpanCount,columnSpanCount )指定的行数和列数。
import sys
from PyQt5.QtWidgets import (QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem )
from PyQt5.QtGui import QBrush, QColor #, QFont
class Table(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("QTableWidget - Example of a cell merge")
self.resize(660,300 );
conLayout = QHBoxLayout()
tableWidget = QTableWidget()
tableWidget.setRowCount(7)
tableWidget.setColumnCount(6)
conLayout.addWidget(tableWidget)
# Hide headers
tableWidget.horizontalHeader().setVisible(False)
tableWidget.verticalHeader().setVisible(False)
#tableWidget.setHorizontalHeaderLabels(['Column1','Column1','Column1'])
# Sets the span of the table element at (row , column ) to the number of rows
# and columns specified by (rowSpanCount , columnSpanCount ).
tableWidget.setSpan(0, 0, 1, 6)
newItem = QTableWidgetItem("tableWidget.setSpan(0, 0, 1, 6)")
tableWidget.setItem(0, 0, newItem)
tableWidget.setSpan(3, 0, 3, 1)
newItem = QTableWidgetItem("tableWidget.setSpan(3, 0, 3, 1)")
tableWidget.setItem(3, 0, newItem)
newItem = QTableWidgetItem("Hello")
newItem.setForeground(QBrush(QColor(0, 255, 0)))
tableWidget.setItem(3, 1, newItem)
newItem = QTableWidgetItem("pythoff")
newItem.setForeground(QBrush(QColor(255, 0, 0)))
tableWidget.setItem(3, 2, newItem)
self.setLayout(conLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
example = Table()
example.show()
sys.exit(app.exec_())
https://stackoverflow.com/questions/52035966
复制相似问题