QT之TableWidget使用记录(标题设置、自适应高度、颜色设置、添加控件等)

记录QTableWidget的一些设置

1、设置单元格内容

ui->tableWidget->setItem(i, 0, new QTableWidgetItem("Point1"));

2、设置自适应等宽

ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//设置自适应等宽

3、设置自适应高度

ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);//设置自适应高度

4、设置单元格自适应宽度

ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);//0表示列号

5、隐藏列表头

ui->tableWidget->verticalHeader()->setVisible(false);//隐藏列表头
ui->tableWidget->horizontalHeader()->setVisible(false);

6、设置单元格背景颜色

QTableWidgetItem *item=new QTableWidgetItem(" ");
item->setBackground(QBrush(color));
ui->tableWidget->setItem(row,col,item);

7、设置当前选中取消

ui->tableWidget->setCurrentItem(nullptr);

8、添加一行

int curRow = ui.tableWidget->rowCount();//当前行号
ui. tableWidget ->insertRow(curRow);//在表格尾部添加一行

9、设置表格不可编辑

ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置表格不可编辑 

10、设置表格不可选中

 ui->tableWidget->setSelectionMode(QAbstractItemView::NoSelection);//设置表格不可选中

11、清空所有表格内容

ui->tableWidget->clear();//清空除了表头之外的内容,清空所有的

12、清空表格内容(除了表头和标题)

ui->tableWidget->clearContents();//清空除了表头之外的内容

13、设置标题内容

QStringList horizontalHeaderLabel = { "对象名称" };
ui->tableWidget->setHorizontalHeaderLabels(horizontalHeaderLabel);

14、取消单元格选中

ui.tableWidget->setCurrentItem(NULL);//取消选中cell

15、设置选择行为-行

myTableWidget->setSelectionBehavior ( QAbstractItemView::SelectRows); //设置选择行为,以行为单位

16、设置选择行为-单个

myTableWidget->setSelectionBehavior ( QAbstractItemView::SelectItems); //设置选择行为,单个为单位

17、选择列或者行排序

connect(ui->tableWidgetConsole->horizontalHeader(),SIGNAL(sectionClicked(int)),this ,SLOT(sortTable(int)));
void MainWindow::sortTable(int colNum)
{
    ui->tableWidgetConsole->sortItems(colNum,Qt::AscendingOrder);
}

函数原型为:void QTableWidget::sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)

排序方式主要有两种:

18、设置标题对齐方式

myTableWidget->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);//设置左对齐

注:列标题类似设置。

19、添加复选框

方法一

QTableWidgetItem *item=new QTableWidgetItem;
item->setCheckState (Qt::Checked);
ui->setting_tableWidget->setItem(i,j,item); //插入复选框

方法二

QCheckBox * checkB = new QCheckBox(this); //创建checkbox
checkB->setCheckState(Qt::Checked); //设置状态
QWidget *w = new QWidget(this); //创建一个widget
QHBoxLayout *hLayout = new QHBoxLayout(); //创建布局
hLayout->addWidget(checkB); //添加checkbox
hLayout->setMargin(0); //设置边缘距离 否则会很难看
hLayout->setAlignment(checkB, Qt::AlignCenter); //居中
w->setLayout(hLayout); //设置widget的布局
ui->tableWidget_UnrecognizedPrimitive->setCellWidget(row, column, w); //将widget放到table中
 
 
//采取下面方式获取
if (QWidget *w = ui->tableWidget_IdentifiedPrimitives->cellWidget(row, column))//先获取widget
{
    QCheckBox * checkBox = qobject_cast<QCheckBox*>(w->children().at(1));  //通过children来访问checkbox
    if ( checkBox )
    { 
        if ( checkBox->checkState() == Qt::Unchecked ) //未选中
        {
            //操作
        }
    }
}
//转载于https://blog.csdn.net/qq_42570058/category_8252620.html

 

  • 16
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值