Qt实战案例(46)

您所在的位置:网站首页 案例烦人的表格 Qt实战案例(46)

Qt实战案例(46)

2024-07-04 15:10| 来源: 网络整理| 查看: 265

在文章(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,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3