QTableWidget 使用

一、常用设置代码:

QStringList horizontalHeaders;
horizontalHeaders<<"列0"<<"列1";
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); //列宽可以拖动
ui->tableWidget->setColumnCount(3); //设置列数,需要大于等于使用的列数
ui->tableWidget->setHorizontalHeaderLabels(horizontalHeaders); //设置列标题
ui->tableWidget->setRowCount(2);
ui
->tableWidget->setVerticalHeaderItem(0,new QTableWidgetItem("行0")); //设置行标题
QString col0Head=ui->tableWidget->horizontalHeaderItem(0)->text(); //获取列标题
ui->tableWidget->clearContents(); //清空表格内容,表格大小不变。
ui->tableWidget->setRowCount(0); //将表格的行数置为0,再需要更新表格的内容时可能需要使用这两行内容
ui->tableWidget->insertRow(0); //在0行之后插入空行,在需要使用新建行前调用
ui->tableWidget->setItem(0,0,new QTableWidgetItem("TEST")); QCheckBox* checkBox = new QCheckBox(ui->tableWidget); //父窗口删除、子窗口自动被删除
checkBox->setChecked(true); ui->tableWidget->setCellWidget(1,1,checkBox); //将其它窗体加入表格
QString value_00=ui->tableWidget->item(0,0)->text(); //获取单元格内容
QCheckBox* checkBox_11=static_cast<QCheckBox*>(ui->tableWidget->cellWidget(1,1)); //获取单元格中的窗体
ui->tableWidget->removeColumn(2); //删除第2列
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //将表格变为禁止编辑  u
i->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //QHeaderView将自动调整该部分的大小以填充可用空间。不能由用户或以编程方式更改大小。
QObject::connect(ui->tableWidget, SIGNAL(cellEntered(int,int)),this, SLOT(cellEnteredSlot(int,int)));//获取鼠标在表格中的位置。需要将其中的子窗体设为无焦点
checkBox->setFocusPolicy(Qt::NoFocus); //设置焦点策略为无焦点,然后将其加入表格。否则移动到此单元格将不会发出cellEntered(int row,int col)信号
ui->tableWidget->hideRow(1); //隐藏表格第2行 //如下可以设置表格中的字体和颜色、对齐方式等
QTableWidgetItem* devStateItem = new QTableWidgetItem("上电"); //电源状态
QFont font("微软雅黑", 11); //字体大小 font.setUnderline(true); //设置下划线
devStateItem->setFont(font); devStateItem->setTextColor(QColor(7,222,78));
devStateItem
->setTextAlignment(Qt::AlignCenter); //居中对齐
ui->tableWidget->setItem(0, 1, devStateItem);
ui
->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //关闭竖直滚动条。
ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); //按照像素滚动内容。(平滑拖动)
ui->tableWidget->resizeRowsToContents(); //根据内容自动调整行的大小,在填写单元格内容之后调用此函数。
ui->tableWidget->verticalHeader()->setHidden(true); //隐藏默认行标

 注意:

  一般不适用clear()函数删除表格内容,因为其会删除行、列数,而且会删除标题和设置过的样式;导致无法显示已设置的标题和样式

其它可参考:https://blog.csdn.net/polokang/article/details/6696982、https://blog.csdn.net/weixin_42837024/article/details/82388077

posted @ 2020-10-11 23:29  xianyongchao  阅读(689)  评论(0编辑  收藏  举报