• 【QT】QTableWidget


    新建项目

    制作流程

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. // tableWidget的使用
    9. // 第一步,设置列数
    10. ui->tableWidget->setColumnCount(3);
    11. // 第二步,设置水平表头的的标签
    12. ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
    13. // 第三步,设置行数
    14. ui->tableWidget->setRowCount(5);
    15. // 第四部,设置正文
    16. // ui->tableWidget->setItem(0, 0, new QTableWidgetItem("亚瑟"));
    17. QStringList nameList;
    18. nameList << "亚瑟" << "妲己" << "韩信" << "孙悟空" << "孙膑";
    19. QList genderList;
    20. genderList << "男" << "女" << "男" << "男" << "男";
    21. for (int i = 0; i < 5; i++) {
    22. int col = 0;
    23. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));
    24. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(genderList.at(i)));
    25. // int转QString,number静态函数
    26. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(18 + i)));
    27. }
    28. }
    29. Widget::~Widget()
    30. {
    31. delete ui;
    32. }

    扩展

    打破布局,添加按钮,栅格

    目前效果是这样的

    点击【添加赵云】,添加赵云信息,点击【删除赵云】,删除赵云信息

    代码

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. Widget::Widget(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::Widget)
    7. {
    8. ui->setupUi(this);
    9. // tableWidget的使用
    10. // 第一步,设置列数
    11. ui->tableWidget->setColumnCount(3);
    12. // 第二步,设置水平表头的的标签
    13. ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
    14. // 第三步,设置行数
    15. ui->tableWidget->setRowCount(5);
    16. // 第四部,设置正文
    17. // ui->tableWidget->setItem(0, 0, new QTableWidgetItem("亚瑟"));
    18. QStringList nameList;
    19. nameList << "亚瑟" << "妲己" << "韩信" << "孙悟空" << "孙膑";
    20. QList genderList;
    21. genderList << "男" << "女" << "男" << "男" << "男";
    22. for (int i = 0; i < 5; i++) {
    23. int col = 0;
    24. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));
    25. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(genderList.at(i)));
    26. // int转QString,number静态函数
    27. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(18 + i)));
    28. }
    29. // 点击添加赵云
    30. connect(ui->addButton, &QPushButton::clicked, this, [=]() {
    31. // 如果有赵云,就不添加
    32. bool flag = ui->tableWidget->findItems("赵云", Qt::MatchExactly).isEmpty();
    33. // 存在
    34. if (flag == false) {
    35. QMessageBox::warning(this, "警告", "已经有赵云,添加失败");
    36. } else {
    37. // 添加一行
    38. ui->tableWidget->insertRow(0);
    39. ui->tableWidget->setItem(0, 0, new QTableWidgetItem("赵云"));
    40. ui->tableWidget->setItem(0, 1, new QTableWidgetItem("男"));
    41. ui->tableWidget->setItem(0, 2, new QTableWidgetItem(QString::number(25)));
    42. }
    43. });
    44. // 点击删除赵云
    45. connect(ui->delButton, &QPushButton::clicked, this, [=]() {
    46. // 如果没有赵云,就不删除
    47. bool flag = ui->tableWidget->findItems("赵云", Qt::MatchExactly).isEmpty();
    48. // 不存在,无法删除
    49. if (flag) {
    50. QMessageBox::warning(this, "警告", "没有有赵云,删除失败");
    51. } else {
    52. // 找到位置,删除,找到第一个
    53. int row = ui->tableWidget->findItems("赵云", Qt::MatchExactly).first()->row();
    54. ui->tableWidget->removeRow(row);
    55. }
    56. });
    57. }
    58. Widget::~Widget()
    59. {
    60. delete ui;
    61. }
  • 相关阅读:
    UNIAPP利用canvas绘制图片和文字,并跟随鼠标移动
    【Mac】植物大战僵尸杂交版 for Mac(经典策略塔防游戏)游戏介绍
    基于java的乡村图书馆管理系统的设计与实现毕业设计-附源码191505
    Spring Security 框架
    Polygon zkEVM协议治理、升级及其流程
    目前全球生物识别市场规模迅速扩张,虹膜识别技术也发展迅猛
    Java开发学习(三十)----Maven聚合和继承解析
    每日学习总结20240313
    【微信小程序】事件绑定,你搞懂了吗?
    2.6 upstream指令参数说明
  • 原文地址:https://blog.csdn.net/Zhouzi_heng/article/details/133953238