狂码一生_优质编程技术资源与您共享

狂码一生_优质编程技术资源与您共享

狂码一生技术博客站主要是以优质编程技术资源共享为核心,以交流学习为目的搭建的在线平台。我们共享一些优质的资源出来,供同行业的同胞交流与学习,让彼此之间在自身的技术上得到提升,本站主要提供程序方面的资源给大家,像PHP,C++,Javascript,html,asp.net,数据库等等方面的资源,本站计划将在后期会不断完善,建设更多类目的资源,希望能得到更多同行的支持!

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

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

    image.png

二、引入头文件

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


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

image.png


四、声明槽函数 

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
[若此文确切存在侵权,请联系本站管理员进行删除!]

评论