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);


版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处:
[狂码一生] https://www.sindsun.com/articles/16/70
[若此文确切存在侵权,请联系本站管理员进行删除!]


--THE END--