以下是用C++实现QTableWidget合并表头的示例代码:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTableWidget table(4, 3);
QTableWidgetItem *item1 = new QTableWidgetItem("A");
item1->setTextAlignment(Qt::AlignCenter);
table.setItem(0, 0, item1);
QTableWidgetItem *item2 = new QTableWidgetItem("B");
item2->setTextAlignment(Qt::AlignCenter);
table.setItem(0, 1, item2);
QTableWidgetItem *item3 = new QTableWidgetItem("C");
item3->setTextAlignment(Qt::AlignCenter);
table.setItem(0, 2, item3);
QTableWidgetItem *item4 = new QTableWidgetItem("D");
item4->setTextAlignment(Qt::AlignCenter);
table.setItem(1, 0, item4);
QTableWidgetItem *item5 = new QTableWidgetItem("E");
item5->setTextAlignment(Qt::AlignCenter);
table.setItem(1, 1, item5);
QTableWidgetItem *item6 = new QTableWidgetItem("F");
item6->setTextAlignment(Qt::AlignCenter);
table.setItem(1, 2, item6);
QTableWidgetItem *item7 = new QTableWidgetItem("G");
item7->setTextAlignment(Qt::AlignCenter);
table.setItem(2, 0, item7);
QTableWidgetItem *item8 = new QTableWidgetItem("H");
item8->setTextAlignment(Qt::AlignCenter);
table.setItem(2, 1, item8);
QTableWidgetItem *item9 = new QTableWidgetItem("I");
item9->setTextAlignment(Qt::AlignCenter);
table.setItem(2, 2, item9);
// 合并第一行的表头
table.setSpan(0, 0, 1, 3);
table.setWindowTitle("QTableWidget Merge Header");
table.show();
return app.exec();
}
在这个示例中,我们创建了一个4行3列的表格。我们使用QTableWidgetItem对象为每个单元格设置文本和文本对齐方式。然后,我们使用setSpan()方法将第一行的三个单元格合并成一个表头。
结果如下所示: