目录
前言:
学习记录那位博主表格使用,尤其是单元格的基本操作,他讲的很好,详细看参考链接!!
讲解时讲解了很多基本函数,非常实用
之前的内容可以看上一篇内容->20. Qt 表格控件tableWidget的使用(1)
技能:
对于tablewidget中单元行的更详细的操作,具体看参考链接,讲的很好很详细
内容:
1. 界面
一列按钮,两个label
首先在构造函数里面添加这两行代码,这样每次都只会选中一整行
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<QTableWidgetItem*> 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));
}