这里我要说的是,在tableWidget中添加数据时的使用方法。
提前要说明的是:在给tableWidget使用setItem 添加的内容只能是QString!
看一下代码吧
QStringList list;
list<<"Name"<<"Sex"<<"Age";
ui->tableWidget->setColumnCount(list.size());
ui->tableWidget->setHorizontalHeaderLabels(list); //设置水平表头为list。
ui->tableWidget->setRowCount(10);
QStringList nameList;
nameList<<"Steven"<<"Tom"<<"Timmy"<<"Judy"<<"Jeson";
QList<QString> sexList; //setItem 添加的内容只能是QString
sexList<<"man"<<"man"<<"man"<<"man"<<"man";
for(int i = 0; i<5; i++){
int col = 0;
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));
ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+20)));
}
bool isEmpy = ui->tableWidget->findItems("Duck",Qt::MatchExactly).empty();
if(isEmpy){
ui->tableWidget->insertRow(1);
ui->tableWidget->setItem(1,0,new QTableWidgetItem("Duck"));
ui->tableWidget->setItem(1,1,new QTableWidgetItem("man"));
ui->tableWidget->setItem(1,2,new QTableWidgetItem(QString::number(28)));
}
else{
QMessageBox::about(this,"Warning","Duck is already exist");
}
int row = ui->tableWidget->findItems("Steven",Qt::MatchExactly).first()->row();
ui->tableWidget->removeRow(row);
代码运行效果图片:
简单总结一下:
设置表头的时候,建议使用QStringList;
添加数据的时候,其实区别不是很大。注意的是语法不同而已,
QStringList 是像数组一样 nameList[i],这样子使用,
而QList是sexList.at(i)