专栏首页狂码一生QT5中操作QWidgetItem下的集合元素(二)

QT5中操作QWidgetItem下的集合元素(二)

一、在列表中显示目录,界面添加显示目录的按钮,对象名称为showDirButton:

二、引入头文件

#include <QWidgetItem>
#include <QListWidgetItem>
#include <QMessageBox>
#include <QStringList>
#include <QtDebug>
#include <QDir>
#include <QFileDialog>

三、向项目中添加资源文件,并导入资源,然后右键单击QListWidget选择编辑项目,操作如图:

四、声明槽函数 

private slots:
    //显示目录
    void showDirSlot();
    //单击列表中的项
    void singleClickedSlot(QListWidgetItem *);
    //双击列表中的项
    void doubleClickedSlot(QListWidgetItem *);

五、实现槽函数:

//显示目录
void MainWindow::showDirSlot(){
    //QStringList fileNames = QFileDialog::getOpenFileNames(this,"Open File",QDir::currentPath());
    QDir dir = QDir::current();
    QStringList fileNames = dir.entryList();
    if(fileNames.size() == 0){
        QMessageBox::information(this,"ERROR MSG","没有文件");
        return ;
    }
    for(int index = 0; index < fileNames.size(); index++){
        if(fileNames.at(index) == "." || fileNames.at(index) == ".."){
            continue;
        }
        QListWidgetItem *item = new QListWidgetItem;
        item->setText(fileNames.at(index));
        ui->listWidgetShowView->addItem(item);
    }
}

//单击列表中的项
void MainWindow::singleClickedSlot(QListWidgetItem *item){
    QMessageBox::information(this,"信息","single clicked"+item->text());
}

//双击列表中的项
void MainWindow::doubleClickedSlot(QListWidgetItem *item){
    QMessageBox::information(this,"信息","double clicked"+item->text());
}

六、信号与槽连接

QObject::connect(ui->showDirButton,SIGNAL(clicked()),this,SLOT(showDirSlot()));

    this->connect(ui->listWidgetShowView,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(singleClickedSlot(QListWidgetItem *)));
    this->connect(ui->listWidgetShowView,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(doubleClickedSlot(QListWidgetItem *)));

七、在构造函数中加入初始化列表显示模式

ui->listWidgetShowView->setViewMode(QListView::IconMode);

版权声明:此文为本站源创文章[或由本站编辑从网络整理改编],

转载请备注出处: [狂码一生]http://www.sindsun.com/article-details-70.html

[若此文确切存在侵权,请联系本站管理员进行删除!]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • php高清晰度无损压缩

    经常会用到把上传的大图片压缩,特别是体积,在微信等APP应用上,也默认都是有压缩的,那么,怎么样对图片大幅度压缩却仍能保持较高的清晰度呢?

    Sindsun
  • 深入PHP FTP类的详解

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。...

    Sindsun
  • QT_使用TCP/IP传输文件

    Sindsun
  • Spring如何整合Mybatis,源码不难嘛!

    还要从MapperScannerConfigurer 和SqlSessionFactoryBean 着手。

    温安适
  • 掌握以下标题写法 PV快速达到10000+

    目前域名比较年轻的网站在做搜索引擎排行上是比较困难的,因为你新做的文章,很容易被权重高的网站转载并且排名超过你,因此,笔者认为小网站可以先做个标题党,吸引用户点...

    貟王軍
  • VUE+WebPack前端游戏设计:实现外星人的动态下滑特效

    望月从良
  • 结合标签广告,定制一个QQ邮箱订阅

    用了一段时间百度联盟了,发现标签广告的单点价格普遍偏高,前几天在糯米汇博客看到他将 QQ 邮箱订阅放置到了正文,并且和百度标签广告结合在一起,感觉非常不错! 于...

    张戈
  • nodejs 14.0.0源码分析之setImmediate

    setImmediate的代码比较简单,新建一个Immediate。我们看一下Immediate的类。

    theanarkh
  • 边看chromium的代码边想骂人……

    这几天在看chromium for andrid的代码,边看边想骂,谷歌这帮人。。

    龙泉寺扫地僧
  • 卷积神经网络全面解析

    本文转自: http://www.moonshile.com/post/juan-ji-shen-jing-wang-luo-quan-mian-jie-xi ...

    林德熙

扫码关注云+社区

领取腾讯云代金券