在groupBox中添加了一个QtableWidget,即表格组件。这个表格只有5列,只占据了表格的一部分,不是很好看。
核心代码如下,最重要的是最后一句,让标题栏自适应大小。
QTableWidget *taskListTable = new QTableWidget(20,5); //任务列表
taskListTable->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
taskListBoxLayout->addWidget(taskListTable);
//**表格标题
QStringList headTable = {"任务编号","起点","终点","需求时刻","载重量"};
taskListTable->setHorizontalHeaderLabels(headTable);
QFont font("song", 12, QFont::Bold);
taskListTable->horizontalHeader()->setFont(font); //设置字体
taskListTable->verticalHeader()->setHidden(true); //隐藏行标题
taskListTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
![在这里插入图片描述](https://img-blog.csdnimg.cn/82e4c543e36c4fc9ae9381116bdc42f9.png)
taskListTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
接下来解释一下这个函数,horizontalHeader返回的是表格的垂直行标题,也就是第一行标题栏。这是个特殊的类,叫QHeaderView类。对标题栏进行调整,往往就是对这个类进行调整。 setSectionResizeMode函数是上述类的一个函数,设置标题如何调整为给定模式所描述的大小。 QHeaderView::ResizeMode就是模式的枚举量,主要就是调整标题栏大小,即列宽。存在以下的取值:
模式值描述QHeaderView::Interactive用户可以手动调节列宽,也可以通过调用resizeSection函数调整。QHeaderView::Fixed用户无法手动调整列宽,只能调用resizeSection函数调整。QHeaderView::Stretch列宽会自动调节以填充可用空间。大小不能由用户更改或以编程的方式更改。QHeaderView::ResizeToContents列宽会自动根据内容调整为最佳大小。大小不能由用户更改或以编程的方式更改。
|