QTableWidget使用,以及查找功能的实现

这篇具有很好参考价值的文章主要介绍了QTableWidget使用,以及查找功能的实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本操作 

    QTableWidget *mytable=new QTableWidget(this);//创建表格
    mytable->resize(500,500);//重新定义表格大小
    mytable->setRowCount(5);//设置行数
    mytable->setColumnCount(5);//设置列数
    mytable->setRowHeight(0,300);//设置第一行高度300
    mytable->setColumnWidth(1,300);//设置第行列宽度300
    mytable->setRowHidden(0,true);//设置第1行隐藏
    mytable->setColumnHidden(1,true);//设置第2列隐藏

隐藏所有行,列同样

    int count=mytable->rowCount();//获得目前行数
    int column=mytable->columnCount();//获得目前列数
    /*隐藏所有的行*/
    for(int i=0;i<count;i++)
    {
        mytable->setRowHidden(i,true);
    }
    /*隐藏所有列*/
    for(int j=0;j<column;j++)
    {
        mytable->setColumnHidden(j,true);
    }

设置行名列名

    mytable->setHorizontalHeaderItem(0,new QTableWidgetItem("性别"));//这样设置比较费劲
    mytable->setVerticalHeaderItem(0,new QTableWidgetItem("姓名"));//这样一个一个设置比较费劲

    QStringList column_name;
    column_name<<"班级"<<"手机号"<<"性别"<<"年龄";
    mytable->setHorizontalHeaderLabels(column_name);//一次添加很多

设置表格不可手动编辑

mytable->setEditTriggers(QAbstractItemView::NoEditTriggers);

设置行名隐藏(注意是行名,不是整行)

    //行名默认是1234等,然后现在需要隐藏行名
    mytable->verticalHeader()->setHidden(true);//设置行名不可见

//通过搜索进行动态显示搜索到的内容

下面是.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    void locate();


private:
    Ui::MainWindow *ui;

};
#endif // MAINWINDOW_H

下面是.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTableWidget>
#include <QHeaderView>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->mytable->setRowCount(5);//设置行数
    ui->mytable->setColumnCount(5);//设置列数,一定要设置行和列数在往里面添加内容
    QStringList column_name;
    column_name<<"姓名"<<"班级"<<"手机号"<<"性别"<<"年龄";
    ui->mytable->setHorizontalHeaderLabels(column_name);
    //行名默认是1234等,然后现在需要隐藏行名
    ui->mytable->verticalHeader()->setHidden(true);//设置行名不可见
    //设置表格不可手动编辑
    ui->mytable->setEditTriggers(QAbstractItemView::NoEditTriggers);
    //往表格里面添加内容
    ui->mytable->setItem(0,0,new QTableWidgetItem("张三"));
    ui->mytable->setItem(1,0,new QTableWidgetItem("李四"));
    ui->mytable->setItem(2,0,new QTableWidgetItem("王二"));
    ui->mytable->setItem(3,0,new QTableWidgetItem("李二"));
    ui->mytable->setItem(4,0,new QTableWidgetItem("王二张四"));
    //通过搜索关键字中内容进行匹配
    connect(ui->name,SIGNAL(textChanged(const QString)),this,SLOT(locate()));






}

MainWindow::~MainWindow()

{
    delete ui;
}

void MainWindow::locate()
{
    QString input_name=ui->name->text();
    int row_num=ui->mytable->rowCount();
    if (input_name=="")//判断是否是空,如果是空就显示所有行
    {
        for(int i=0;i<row_num;i++)
        {
            ui->mytable->setRowHidden(i,false);//为false就是显示
        }
    }
    else
    {
        //找到符合条件的索引 是通过你输入的和表格里面所有内容进行比对
        QList <QTableWidgetItem *> item = ui->mytable->findItems(ui->name->text(), Qt::MatchContains);
        //然后把所有行都隐藏
        for(int i=0;i<row_num;i++)
        {
            ui->mytable->setRowHidden(i,true);//隐藏

        }
        //判断符合条件索引是不是空
        if(!item.empty())
        {
            //恢复对应的行
            for(int i=0;i<item.count();i++)
            {
                ui->mytable->setRowHidden(item.at(i)->row(),false);//回复对应的行,也可以回复列

            }
        }
    }


}

下面是显示效果没有搜索的

QTableWidget使用,以及查找功能的实现

 下面是进行条件搜索的

QTableWidget使用,以及查找功能的实现

 QTableWidget使用,以及查找功能的实现

 QTableWidget使用,以及查找功能的实现文章来源地址https://www.toymoban.com/news/detail-510385.html

到了这里,关于QTableWidget使用,以及查找功能的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 头歌:实现顺序表中数据的查找功能

    1数据结构-顺序表及其应用 第1关:顺序表的实现之查找功能 任务描述 本关任务:实现顺序表中数据的查找功能。 相关知识 为了完成本关任务,你需要掌握:1. 线性表,2. 顺序表。 线性表 线性表是最基本、最简单、也是最常用的一种数据结构。线性表结构中,数据元素之间

    2024年02月08日
    浏览(46)
  • 【案例实战】SpringBoot整合Redis的GEO实现查找附近门店功能

    像我们平常美团点外卖的时候,都会看到一个商家距离我们多少米。还有类似QQ附近的人,我们能看到附近的人距离我们有多少米。 那么这些业务是怎么做的呢?是如何实现 基于位置的附近服务 系统呢。 在去了解基于位置的附近服务之前,我们先来看一下什么是GIS技术。

    2024年02月10日
    浏览(38)
  • 根据Java Web 使用Servlet +Mysql 实现简易的登录及注册功能以及项目间的分层

    1、概述         一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,跟回家有利于后期的维护和升级。从另一个角度来看,好的代码分层架构,应该使可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,

    2024年02月05日
    浏览(59)
  • 微信公众平台测试号申请、使用HBuilder X与微信开发者工具实现授权登陆功能以及单点登录

    测试账号申请 测号响应流程:客户端发送请求,微信服务器收到请求后,转发到开发者服务器上,处理完后在发送给微信服务器,在返回给客户端 1、打开微信公众平台,点击测试帐号申请。地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login, 通过微信扫一扫授权就能进

    2024年02月02日
    浏览(61)
  • QTableWidget 实现添加 QCheckBox

    一、 添加复选框QCheckBox初始化默认状态,效果图 主要代码: 二、 添加两个复选框QCheckBox的互斥功能,同时只能有一个选中 效果图 主要代码: 互斥代码: 数据选中判断

    2024年02月13日
    浏览(59)
  • 学生信息管理系统(录入、查找、删除、修改、排序、统计等功能实现)超详细完整代码,建议保存。

    许多老师都会布置Python期末大作业,作业题目很多就是学生信息管理系统,以前都是练习小题目,几十行代码就能搞定,而完整的写完这个系统我用了差不多400行代码。完整写完这个系统,是对一个学期所学知识的进一步深入了解于学习,还能扩充一些课外知识。篇幅很长,

    2024年02月12日
    浏览(47)
  • Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice

    docker pull onlyoffice/documentserver docker images 以下是将本机的9001端口映射到docker的80端口上,访问时通过服务器ip:9001访问,并且用 -v 将本机机==/data/aws_s3/file-storage==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹 doc

    2024年02月07日
    浏览(48)
  • QTableWidget鼠标右键事件实现

    最近开发项目用到QTableWidget,基于MainWindow的基础上,当想要实现鼠标右键点击的时候,重写QMousePressEvent发现,右键事件没有响应,折腾了好久,后来通过QT帮助文档对QTableWidget的说明发现,是父窗口的鼠标事件被QTableWidget接管了,需要在QTableWidget中实现,第一种方式,在没有

    2024年02月12日
    浏览(37)
  • PyQt QTableWidget 表格控件的使用

    PyQT开发图形界面应用时,可用 QTableWidget 控件,以表格方式直观地显示二维表格形状的数据,如列表,数组、pandas DataFrame等。 如果你想用表格方式直接显示并操作数据库表时,选择 QTableView类更合适。 步骤如下: 生成QTableWidget对象 设置表头以及表格参数 构建 QTableWidgetIte

    2024年02月01日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包