qtabwidget设置表头_QT+qtablewidget自定义表头【合并单元格】

这篇博客介绍了如何在QT应用中使用QTabWidget自定义表头并实现单元格合并。通过创建HHeadViewClass并设置其属性,如标题文字、高度和交互模式,以及使用SetRowColItemText方法填充数据,实现了表头的定制。同时,提到了QTableView的列宽设置方法,包括设置最大最小值和不同类型的自适应模式。
部署运行你感兴趣的模型镜像

1、把下列文件放在工程中【已上传到我的文件中】

2、代码

auto *headview = new HHeadViewClass(Qt::Horizontal, ui.tableWidget);

headview->setSectionResizeMode(QHeaderView::Interactive);

headview->titleHigh = 50;

headview->setFixedHeight(50);

headview->SetRowColItemText(0, 0, QStringLiteral("公里"));

headview->SetRowColItemText(1, 0, QStringLiteral("长度[m]"));

headview->SetRowColItemText(2, 0, QStringLiteral("高低"));

headview->SetRowColItemText(2, 1, QStringLiteral("1"));

headview->SetRowColItemText(2, 2, QStringLiteral("2"));

headview->SetRowColItemText(2, 3, "3");

headview->SetRowColItemText(2, 4, "4");

headview->SetRowColItemText(3, 0, QStringLiteral("轨向"));

headview->SetRowColItemText(3, 1, "1");

headview->SetRowColItemText(3, 2, "2");

headview->SetRowColItemText(3, 3, "3");

headview->SetRowColItemText(3, 4, "4");

headview->SetRowColItemText(4, 0, QStringLiteral("轨距"));

headview->SetRowColItemText(4, 1, "1");

headview->SetRowColItemText(4, 2, "2");

headview->SetRowColItemText(4, 3, "3");

headview->SetRowColItemText(4, 4, "4");

headview->SetRowColItemText(5, 0, QStringLiteral("水平"));

headview->SetRowColItemText(5, 1, "1");

headview->SetRowColItemText(5, 2, "2");

headview->SetRowColItemText(5, 3, "3");

headview->SetRowColItemText(5, 4, "4");

headview->SetRowColItemText(6, 0, QStringLiteral("三角坑"));

headview->SetRowColItemText(6, 1, "1");

headview->SetRowColItemText(6, 2, "2");

headview->SetRowColItemText(6, 3, "3");

headview->SetRowColItemText(6, 4, "4");

headview->SetRowColItemText(7, 0, QStringLiteral("垂向加速度"));

headview->SetRowColItemText(7, 1, "1");

headview->SetRowColItemText(7, 2, "2");

headview->SetRowColItemText(7, 3, "3");

headview->SetRowColItemText(7, 4, "4");

headview->SetRowColItemText(8, 0, QStringLiteral("横向加速度"));

headview->SetRowColItemText(8, 1, "1");

headview->SetRowColItemText(8, 2, "2");

headview->SetRowColItemText(8, 3, "3");

headview->SetRowColItemText(8, 4, "4");

headview->SetRowColItemText(9, 0, QStringLiteral("曲率变化率"));

headview->SetRowColItemText(9, 1, "1");

headview->SetRowColItemText(9, 2, "2");

headview->SetRowColItemText(10, 0, QStringLiteral("轨距变化率"));

headview->SetRowColItemText(10, 1, "1");

headview->SetRowColItemText(10, 2, "2");

headview->SetRowColItemText(11, 0, QStringLiteral("速度"));

headview->SetRowColItemText(12, 0, QStringLiteral("扣分"));

ui.tableWidget->setHorizontalHeader(headview);

3、效果

注意要在ui或者代码里设置列数,否则界面全空

1 . void QTableView::​setColumnWidth(int column, int width) 设置某一列的列宽

2. 通过QHeaderView * QTableView::​horizontalHeader() const获得QHeaderView

在调用QHeaderView里面的函数进行设置

3. QHeaderView的列宽设置函数

3.1 设置限制值

设置列宽最大值:void setMaximumSectionSize(int size)

设置列宽最小值:void  setMinimumSectionSize(int size)

3.2 设置自动适应

设置某一列的自动适应模式:void QHeaderView::​setSectionResizeMode(int logicalIndex, ResizeMode mode)

设置整个表头的自适应模式:void setSectionResizeMode(ResizeMode mode)

ResizeMode:

QHeaderView::Interactive:0

用户可设置,也可被程序设置成默认大小

QHeaderView::Fixed       :2

用户不可更改列宽

QHeaderView::Stretch      :1

根据空间,自动改变列宽,用户与程序不能改变列宽

QHeaderView::ResizeToContents:3

根据内容改变列宽,用户与程序不能改变列宽

注意:ResizeMode被设置为1,3时, void QTableView::​setColumnWidth(int column, int width)的效果不会被执行,即不能定义某一列的列宽

您可能感兴趣的与本文相关的镜像

Linly-Talker

Linly-Talker

AI应用

Linly-Talker是一款创新的数字人对话系统,它融合了最新的人工智能技术,包括大型语言模型(LLM)、自动语音识别(ASR)、文本到语音转换(TTS)和语音克隆技术

QTabWidgetQt库中的一个控件,用于创建可以平铺显示多个独立窗口的选项卡界面。如果你想定制每个QTableWidget(表控件)的表头样式,你可以通过以下几个步骤操作: 1. **获取QTableWidget实例**: 在QTabWidget内部,你需要找到对应的QTableWidget,并将其存储在一个变量中,例如`tableWidget`。 ```python QTableWidget *table = tabWidget->findChild<QTableWidget*>("your_table_name"); ``` 替换"your_table_name"为你实际的表控件名字。 2. **设置表头样式**: 使用`setHorizontalHeaderItem()`函数设置表头单元,然后使用`setSectionResizeMode()`设置列的调整模式。你可以自定义字体、颜色、背景色等属性,例如: ```python // 设置表头文字 QTableWidgetItem *headerItem = new QTableWidgetItem("Column Header"); table->horizontalHeader()->setItem(0, headerItem); // 设置表头样式(这里仅作示例,具体样式请参考Qt文档) QHeaderView *headerView = table->horizontalHeader(); headerView->setFont(QFont("Arial", 14)); // 设置字体 headerView->setStyleSheet("background-color: lightgray; color: black;"); // 自定义背景和前景色 headerView->setSectionResizeMode(QHeaderView::Stretch); // 列自动伸缩 ``` 3. **应用到所有表头**: 如果你想让这个样式应用到所有的QTableWidget,可以遍历QTabWidget的所有子部件,查找并设置相应的样式。 ```python foreach (QWidget *child, tabWidget->children()) { if (child->isWidgetType<QTableWidget>()) { QTableWidget *subTable = static_cast<QTableWidget*>(child); // 重复上述设置样式的过程 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值