如何使用自定义标头创建qtablewidget

时间:2016-10-05 19:15:54

标签: c++ qt qt5

我正在尝试在Qt

中创建下表的精确副本

enter image description here

我如何创建这样的标题?有没有办法在Qt中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用setHorizontalHeaderItem自定义每个标题列,也可以使用setHorizontalHeadersLabels设置所有列标题中的文本。

实现附加图像的简便方法是自定义自己的QWidget。使用垂直布局并将Icp(mA)标头视为具有中心对齐的自定义标签。

然后插入您的QTableWidget并将标题设置为(3kOmega,5.1kOmega& 11kOmega)。像这样:

QWidget* container = new QWidget(this);
QVBoxLayout* layout = new QVBoxLayout(this);

// Custom label
QLabel* header = new QLabel(this);
header->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
header->setAlignment(Qt::AlignHCenter);
header->setText("Icp (mA)");

// Custom QTableWidget
QTableWidget* table = new QTableWidget(this);
table->setColumnCount(3);
QStringList LIST;
LIST << "3k" << "11k" << "15k";
table->setHorizontalHeaderLabels(LIST);
table->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
table->horizontalHeader()->setStretchLastSection(true);

layout->addWidget(header);
layout->addWidget(table);
container->setLayout(layout);
setCentralWidget(container);

给你这样的东西:

enter image description here