20.Qt 表格控件tableWidget的使用(2)-单元格操作

目录

前言:

技能:

内容:

1. 界面

2.pushbutton的槽函数

参考:


前言:

学习记录那位博主表格使用,尤其是单元格的基本操作,他讲的很好,详细看参考链接!!

讲解时讲解了很多基本函数,非常实用

之前的内容可以看上一篇内容->20. Qt 表格控件tableWidget的使用(1)


技能:

对于tablewidget中单元行的更详细的操作,具体看参考链接,讲的很好很详细

内容:
 

1. 界面

一列按钮,两个label

20.Qt 表格控件tableWidget的使用(2)-单元格操作_第1张图片

首先在构造函数里面添加这两行代码,这样每次都只会选中一整行

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
         //使鼠标每次选取都是那一整行,或者多行
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
        //设置模式为只能选择单行
    ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
}
2.pushbutton的槽函数

具体槽函数的说明解释可以看参考链接,他讲的很好,很清楚,这里就不过多说明了

删除首行的

void MainWindow::on_pushButton_clicked()
{
    int ncount =ui->tableWidget->rowCount();
    if(ncount>0)
    {
        ui->tableWidget->removeRow(0);
    }
}

删除最后一行的

void MainWindow::on_pushButton_2_clicked()
{
    int ncount =ui->tableWidget->rowCount();
    if(ncount>0)
    {
        ui->tableWidget->removeRow(ncount-1);
    }
}

删除全部行的,也可以其他函数,可以看参考链接链接

void MainWindow::on_pushButton_3_clicked()
{
    int ncount =ui->tableWidget->rowCount();
    if(ncount>0)
    {
        ui->tableWidget->clearContents();
    }
}

选中下一行的,只不过这个选中下一行的显示和单元格颜色可能会重合,下面还用了label显示行号,这样更清楚看到选到了哪一行,下一行是会从最后一行循环到第一行的

void MainWindow::on_pushButton_4_clicked()
{
    QList items= ui->tableWidget->selectedItems();
    int ncount =items.count();
    int ncurrentrow,nmaxrow;

    nmaxrow=ui->tableWidget->rowCount();

    if(ncount>0)
    {
        ncurrentrow=ui->tableWidget->row(items.at(0));
        ncurrentrow+=1;

        if(ncurrentrow>=nmaxrow)
            ui->tableWidget->setCurrentCell(0,QItemSelectionModel::Select);
        else
            ui->tableWidget->setCurrentCell(ncurrentrow,QItemSelectionModel::Select);
    }
    else
    {
        ui->tableWidget->setCurrentCell(0,QItemSelectionModel::Select);
    }

}

显示行号:右键ui文件中的tablewidget,转到槽,信号用cellClicked(int , int ),这个可以得到点击的单元格,包括行号和列号,我们这里只需要用到行号

void MainWindow::on_tableWidget_cellClicked(int row, int column)
{
    ui->label->setText(QString("%1").arg(row+1));
}

参考:

【QT学习系列】20_Qt表格控件之单元格

你可能感兴趣的:(QT学习记录与资源提供,qt,开发语言,ui,visualstudio)