当前位置: 首页 > news >正文

QT学习笔记---表格

参考文章:https://cloud.tencent.com/developer/article/2372683

在这里插入图片描述

enum{ctName = 0,ctSex,ctBirth,ctNation,ctPartyM,ctScore,};enum {colName = 0,colSex,colBirth,colNation,colPartyM,colScore};
void MainWindow::createItemsARow(int rowNo, QString name, QString sex, QDate birth, QString nation, bool isPM, int score)
{QTableWidgetItem *item;QString str;uint StudID = 1001;// 姓名item = new QTableWidgetItem(name, MainWindow::ctName);item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);StudID += rowNo;item->setData(Qt::UserRole, QVariant(StudID));ui->tableWidget->setItem(rowNo, MainWindow::colName, item);//性别item = new QTableWidgetItem(sex, MainWindow::ctSex);item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);ui->tableWidget->setItem(rowNo, MainWindow::colSex, item);//出生日期str = birth.toString("yyyy-MM-dd");item = new QTableWidgetItem(str, MainWindow::ctBirth);item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);ui->tableWidget->setItem(rowNo, MainWindow::colBirth, item);// 民族item = new QTableWidgetItem(nation, MainWindow::ctNation);item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);ui->tableWidget->setItem(rowNo, MainWindow::colNation, item);// 是否是党员item = new QTableWidgetItem("群众", MainWindow::ctPartyM);item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);if(isPM) {item->setCheckState(Qt::Checked);} else {item->setCheckState(Qt::Unchecked);}item->setBackground(Qt::yellow);ui->tableWidget->setItem(rowNo, MainWindow::colPartyM, item);// 分数str.setNum(score);item = new QTableWidgetItem(str, MainWindow::ctScore);item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);ui->tableWidget->setItem(rowNo, MainWindow::colScore, item);
}// 设置表头
void MainWindow::on_pushButton_clicked()
{QTableWidgetItem *headerItem;QStringList headerText_Row, headerText_Col;headerText_Row << "姓名" << "性别" << "出生日期" << "民族" << "是否是党员" << "分数";//设置水平表头ui->tableWidget->setHorizontalHeaderLabels(headerText_Row);ui->tableWidget->setColumnCount(headerText_Row.count());for(int i = 0; i < ui->tableWidget->columnCount(); ++i){headerItem = new QTableWidgetItem(headerText_Row.at(i));QFont font = headerItem->font();font.setBold(true);font.setPointSize(8);headerItem->setForeground(Qt::black);headerItem->setFont(font);ui->tableWidget->setHorizontalHeaderItem(i, headerItem);}
}// 设置行数
void MainWindow::on_pushButton_2_clicked()
{//读出spinBox中的数据,并设置到表格中ui->tableWidget->setRowCount(ui->spinBox->value());//行底色交替采用不同颜色ui->tableWidget->setAlternatingRowColors(true);
}// 初始化表格元素
void MainWindow::on_pushButton_4_clicked()
{QString strName, strSex;bool isParty = false;QDate birth;birth.setDate(1997,10,7);ui->tableWidget->clearContents(); //清除工作区中的内容,不清除表格int rows = ui->tableWidget->rowCount();for(int i = 0; i < rows; ++i) {strName = QString::asprintf("学生%d",i);if((i % 2) == 0){strSex = "男";} else {strSex = "女";}createItemsARow(i, strName, strSex, birth, "汉族", isParty, 70);//日期增加20天birth = birth.addDays(20);isParty = !isParty;}
}void MainWindow::on_pushButton_5_clicked()
{int current_row = ui->tableWidget->currentRow();ui->tableWidget->insertRow(current_row);
}void MainWindow::on_pushButton_7_clicked()
{int current_row = ui->tableWidget->currentRow();ui->tableWidget->removeRow(current_row);
}// 将表格中的内容读取到文本框
void MainWindow::on_pushButton_8_clicked()
{QString str;QTableWidgetItem *cellItem;ui->textEdit->clear();for(int i = 0; i < ui->tableWidget->rowCount(); ++i) {str = QString::asprintf("第%d行:",i+1);for(int j = 0; j < ui->tableWidget->columnCount()-1; j++) {cellItem = ui->tableWidget->item(i, j);str = str + cellItem->text() + " | ";}cellItem = ui->tableWidget->item(i, colPartyM);if(cellItem->checkState() == Qt::Checked) {str += "党员";} else {str += "群众";}ui->textEdit->append(str);}
}
http://www.xdnf.cn/news/559657.html

相关文章:

  • CAP理论 ,了解一下什么是CAP理论
  • 绿盟防火墙6.0.5版本—接入网监平台
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·状态机模型
  • 环境配置!
  • vue3学习文档(开发文档)
  • HBCPC2025 补题 (F、I)
  • 算法打卡第二天
  • 进阶知识:自动化测试框架开发之无参的函数装饰器
  • 牛客网 NC14736 双拆分数字串 题解
  • MySQL的安装及相关操作
  • 150.WEB渗透测试-MySQL基础(五)
  • 张 推进对话式心理治疗:SOULSPEAK的聊天机器人
  • 多模态光学成像革命:OCT、荧光与共聚焦的跨尺度融合新范式
  • spark的缓存提升本质以及分区数量和task执行时间的先后
  • python学习day3
  • SpringSecurity基础入门
  • 深入解剖 G1 收集器的分区模型与调优策略
  • 8天Python从入门到精通【itheima】-20~22
  • 从零开始:Python语言基础之变量
  • 知识图谱构架
  • 从无标注的病理切片中自动提取临床相关的组织形态表型簇,探索其与患者预后、分子表型以及治疗反应的关联
  • HuggingFace全栈开发指南:从零构建AI应用的技术全景图
  • 【嵌入式】ESP32 Flash专题
  • java基础-异常
  • 2.前端汇总
  • 《初入苍穹:大一新手的编程成长之旅》
  • SpringBoot 项目实现操作日志的记录(使用 AOP 注解模式)
  • C++类与对象--6 特性二:继承
  • springMVC拦截器,拦截器拦截策略设置
  • 破解误区:WebView 调试常见认知误区与 WebDebugX 实践指南