您当前的位置: 首页 >  qt

wendy_ya

暂无认证

  • 0浏览

    0关注

    342博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt实战案例(46)——利用QTableWidget实现表格控件应用

wendy_ya 发布时间:2022-05-13 20:47:44 ,浏览量:0

在文章(Qt实战案例(26)——利用QTableView表格视图实现右击菜单删除功能)中介绍了利用QTableView表格视图和QStandardItemModel模型类实现右击菜单删除的事件过滤效果。 QTableView组件和QTableWidget组件的区别如下:由于QTableView组件相对QTableWidget组件来说只是不具备编辑功能,其他功能保持一致,QTableView组件支持与数据库建立映射关系,如果表格无需更新则最好可以使用QTableView组件。本文将介绍利用QTableWidget实现表格控件应用功能。

目录
    • 一、项目介绍
    • 二、项目基本配置
    • 三、UI界面设置
    • 四、主程序实现
      • 4.1 widget.h头文件
      • 4.2 widget.cpp源文件
    • 五、效果演示

一、项目介绍

本文介绍利用QTableWidget实现表格控件相关功能。

二、项目基本配置

新建一个Qt案例,项目名称为“TableWidgetTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。

三、UI界面设置

UI界面如下: 在这里插入图片描述 UI界面控件布局如下:

序号名称类型属性①tableWidgetQTableWidget/②label_nameQLabeltext:姓名:③label_sexQLabeltext:性别:④label_ageQLabeltext:年龄:⑤label_addressQLabeltext:地址:⑥lineEdit_nameQLineEdit/⑦rbn_maleQRadioButtontext:男⑧rbn_femaleQRadioButtontext:女⑨groupBoxQGroupBox/⑩lineEdit_ageQLineEdit/11lineEdit_addressQLineEdit/12pbn_addQPushButtontext:添加13pbn_delQPushButtontext:删除14pbn_alterQPushButtontext:修改15pbn_releaseQPushButtontext:删除某一单元格 四、主程序实现 4.1 widget.h头文件

头文件中声明四个槽函数:

private slots:
    void on_pbn_add_clicked();
    void on_pbn_del_clicked();
    void on_pbn_release_clicked();
    void on_pbn_alter_clicked();
4.2 widget.cpp源文件

首先在构造函数中进行初始化并添加进本表格信息:

    //表头
    QStringList header;
    header setEditTriggers(QAbstractItemView::NoEditTriggers);   // 设置表结构默认不可编辑

    //设置默认为"男"
    ui->rbn_male->setChecked(true);
    // 填充数据
    QStringList NameList;   //姓名列表
    NameList tableWidget->findItems(username,Qt::MatchExactly).empty();
      if(isEmpty)
      {
          ui->tableWidget->insertRow(0);    // 在行首添加一行空列表
          ui->tableWidget->setItem(0,0,new QTableWidgetItem(username));
          ui->tableWidget->setItem(0,1,new QTableWidgetItem(usersex));
          ui->tableWidget->setItem(0,2,new QTableWidgetItem(QString::number(userage)));
          ui->tableWidget->setItem(0,3,new QTableWidgetItem(useraddress));
      }
}

删除按钮用于删除用户信息,其函数如下:

void Widget::on_pbn_del_clicked()
{
    bool isEmpty = ui->tableWidget->findItems(ui->lineEdit_name->text(),Qt::MatchExactly).empty();
    if(!isEmpty)
    {
        // 定位到所在行行号
        int row = ui->tableWidget->findItems(ui->lineEdit_name->text(),Qt::MatchExactly).first()->row();
        // 释放资源
        ui->tableWidget->removeRow(row);
    }
}

修改按钮用于修改选中行的用户信息,其函数如下:

void Widget::on_pbn_alter_clicked()
{
    QTableWidgetItem *cellItem;

    // 取出当前选中行
    int curr_row = ui->tableWidget->currentRow();
    qDebug()tableWidget->item(curr_row,col);
        // 循环输出列名称
        qDebug() setText(ui->lineEdit_name->text());
        // 判断性别,并分别写回到第1列
        if(col == 1)
        {
            if(ui->rbn_male->isChecked())
                cellItem->setText("男");
            if(ui->rbn_female->isChecked())
                cellItem->setText("女");
        }
        // 判断年龄,并写回到第3列
        if(col == 2)
            cellItem->setText(ui->lineEdit_age->text());
        if(col == 3)
            cellItem->setText(ui->lineEdit_address->text());
    }
}

删除某一单元格按钮用于删除选中的单元格进行并释放,其代码如下:

void Widget::on_pbn_release_clicked()
{
    int row = ui->tableWidget->currentRow();
    qDebug()currentItem();
    delete(table);//释放当前单元格
}
五、效果演示

完整效果如下: 在这里插入图片描述

如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/85366012

ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~

关注
打赏
1659256378
查看更多评论
立即登录/注册

微信扫码登录

0.0431s