首页 > 其他分享 >Qt:获取QTableView中的数据,进行搜索

Qt:获取QTableView中的数据,进行搜索

时间:2024-04-19 10:12:29浏览次数:24  
标签:Qt setItem QTableView 搜索 setHorizontalHeaderItem new model QStandardItem proxyMo

1.创建QTableView内容

QStandardItemModel *model = new  QStandardItemModel(ui->tableView);
// 四列
model->setHorizontalHeaderItem(0, new QStandardItem("1"));
model->setHorizontalHeaderItem(1, new QStandardItem("Name"));
model->setHorizontalHeaderItem(2, new QStandardItem("3"));
model->setHorizontalHeaderItem(3, new QStandardItem("4"));
// 三行
    model->setItem(0, 0, new QStandardItem("001"));
    model->setItem(0, 1, new QStandardItem("One"));
    model->setItem(0, 2, new QStandardItem("011"));
    model->setItem(0, 3, new QStandardItem("111"));

    model->setItem(1, 0, new QStandardItem("002"));
    model->setItem(1, 1, new QStandardItem("Two"));
    model->setItem(1, 2, new QStandardItem("122"));
    model->setItem(1, 3, new QStandardItem("222"));

    model->setItem(2, 0, new QStandardItem("003"));
    model->setItem(2, 1, new QStandardItem("Three"));
    model->setItem(2, 2, new QStandardItem("133"));
    model->setItem(2, 3, new QStandardItem("333"));

2.获取根据第几列查询,并补全列表

    QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel();
    proxyModel->setSourceModel(model);
    proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
    proxyModel->setFilterKeyColumn(1);  // 第二列,根据名字查找
    ui->tableView->setModel(proxyModel);

3.搜索框填写背景内容

    ui->lineEditSearch->setPlaceholderText("Search here...");

4.连接信号和槽

    QObject::connect(ui->lineEditSearch, &QLineEdit::textChanged, [=](const QString &text) {
        proxyModel->setFilterRegExp(QString(".*%1.*").arg(text));
    });

 

标签:Qt,setItem,QTableView,搜索,setHorizontalHeaderItem,new,model,QStandardItem,proxyMo
From: https://www.cnblogs.com/gnos1s/p/18145199

相关文章

  • 手动给docusaurus添加一个搜索
    新版博客用docusaurus重构已经有些日子了,根据docusaurus的文档上也申请了Algolia,想一劳永逸的解决博客的搜索问题。但是流水有意,落花无情。algolia总是不给我回复,我只能对着algolia的申请页面仰天长叹。正常情况的申请按照docusaurus官方文档上说的,当我们需要搜索的时候,打开ht......
  • Qt 6.5.5 链接和QML与C++交互的若干问题
    需求描述QtQuick开发桌面组件,使用讯飞API(提供头文件、静态库、动态库),希望部署到Windows平台,在QtCreator开发。QML与C++交互主要参考:QML与CPP,https://blog.csdn.net/gongjianbo1992/article/details/87965925另有参考:信号与槽,https://blog.csdn.net/ifeng12358/article/detai......
  • QT 跨ui信号传输,用emit
    新建工程,随意即可,主要记录一下对应的关系在ui界面拉一个按钮和checkbox按钮添加一个新的界面界面类dialog弹窗即可类名默认在新ui里添加一个按钮用来发送信号的初始界面去切换checkbox按钮状态在widget界面里给pushButton按钮写一个槽函数来触发dialog弹......
  • Qt/C++音视频开发70-无感切换通道/无缝切换播放视频/多通道流畅切换/不同视频打开无缝
    一、前言之前就写过这个方案,当时做的是ffmpeg内核版本,由于ffmpeg内核解析都是代码实现,所以无缝切换非常完美,看不到丝毫的中间切换过程,看起来就像是在一个通道画面中。其实这种切换只能说是取巧办法,最佳的办法应该是公用一个openglwidget窗体,解码线程那边开两个,第二个解码线程打开......
  • 12_QT跨平台运行之使用QT控制蜂鸣器
    QT跨平台运行之使用QT控制蜂鸣器QT****下操作硬件我们在QT上要怎么操作驱动呢?比如,我们要点亮一个led灯,我们在C语言中可以使用open,read,write,ioctl函数来进行操作,但是QT上我们使用的语言是C++,那我们要怎么来操作驱动呢?我们可以使用C和C++进行混合编程,我们先来看一个控制蜂鸣器的......
  • 14_一键烧写QT程序到开发板
    一键烧写QT程序到开发板之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发......
  • 07_QT时间编程之QT时钟
    QT时间编程之QT时钟这节课我们做一个计时器​ qtime:qt的时间类​ qtimer:qt的定时类代码widget.h#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#include<QTime>#include<QTimer>namespaceUi{classWidget;}classWidget:publicQWidget{Q_OBJE......
  • 06_QT网络编程之UDP通信
    QT网络编程之UDP通信udp编程​ udp不分客户端和服务器,只需要使用一个类QUdpSocket。代码Udp.pro#-------------------------------------------------##ProjectcreatedbyQtCreator2024-04-13T23:07:41##-------------------------------------------------QT......
  • 11_QT跨平台运行之把QT程序交叉编译到ARM开发板
    QT跨平台运行之把QT程序交叉编译到ARM开发板交叉编译QT代码步骤一:给QT程序布局,然后在构造函数添加自动设置屏幕大小的代码。代码如下:#include<QDesktopWidget>#include<QStyle>#include<QRect>QDesktopWidget*deskTopWidget=QApplication::desktop();QRectdeskRec......
  • 10_QT系统移植之在开发板上部署QT运行环境
    QT系统移植之在开发板上部署QT运行环境一.开始部署1.我们在Ubuntu新创建一个文件夹,然后把我们用busybox做好的文件系统拷贝到这个文件下。如下图所示:2.然后我们解压这个根文件系统到当前所在的路径下。3.我们在这个解压出来的根文件系统下新创建一个opt的文件夹,如下图所示:......