Ubuntu Qt5 实现打开多张本地图片并显示到窗口功能

//1.打开多个文件
QFileDialog fileDialog;
QStringList fileNameList = fileDialog.getOpenFileNames(this,tr("选择图像"),"/home/hengjianyu/Desktop/darknet/test",tr("Images (*.png *.bmp *.jpg *.tif *.GIF )"));
qDebug()<<fileNameList.size()<<endl;
2.//打开多个文件
QFileDialog fileDialog;
fileDialog.setWindowTitle(tr("选择图像"));
fileDialog.setDirectory("/home/hengjianyu/Desktop/darknet/test");
fileDialog.setNameFilter(tr("Images (*.png *.bmp *.jpg *.tif *.GIF))"));
fileDialog.setFileMode(QFileDialog::ExistingFiles);
QStringList fileNameList;
if (fileDialog.exec() == QDialog::Accepted)
{
//strPathList  返回值是一个list,如果是单个文件选择的话,只要取出第一个来就行了。
    fileNameList = fileDialog.selectedFiles();
}
qDebug()<<fileNameList.size()<<endl;
//遍历并写入文件
QFile file("/home/hengjianyu/Desktop/darknet/outFileNameList.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
        QMessageBox::warning(this,"Failed","Failed to write  outFileNameList",QMessageBox::Yes);
    qDebug()<<"Failed to write  outFileNameList"<<endl;
    return;
}
QTextStream out(&file);
auto it = fileNameList.begin();
auto itend = fileNameList.end();
for(;it != itend;++it)
{
    out << *it<<endl;
}
//读文件
    QFile file("/home/hengjianyu/Desktop/darknet/outFileNameList.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QMessageBox::warning(this,"Failed","Failed to write  outFileNameList",QMessageBox::Yes);
        qDebug()<<"Failed to write  outFileNameList"<<endl;
        return;
    }
    QTextStream in(&file);
    QStringList fileNameList;
    while (!in.atEnd()) {
        QString line = in.readLine();
        fileNameList<<line;
        //process string line here
    }

    auto it = fileNameList.begin();
    auto itend = fileNameList.end();
    for(;it != itend;++it)
    {
        qDebug()<<*it;
    }
    qDebug()<<fileNameList.size();
//使用listWidget批量显示图片
const int W_ICONSIZE = 96;
const int H_ICONSIZE = 96;
const int H_ITEMSIZE = 110;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->listWidget->setIconSize(QSize(W_ICONSIZE, H_ICONSIZE));
    ui->listWidget->setResizeMode(QListView::Adjust);
    ui->listWidget->setViewMode(QListView::IconMode);
    ui->listWidget->setMovement(QListView::Static);
    ui->listWidget->setSpacing(10);
    this->setWindowTitle("Batch Processing");
}

void MainWindow::on_actionoutput_triggered()
{
    for(int nIndex = 0;nIndex<fileNameList.size();++nIndex)
    {

        QString strPath=fileNameList.at(nIndex);

        QPixmap objPixmap(strPath);

        QListWidgetItem *pItem = new QListWidgetItem(QIcon(objPixmap.scaled(QSize(W_ICONSIZE,H_ICONSIZE))),"raw");

        pItem->setSizeHint(QSize(W_ICONSIZE,H_ITEMSIZE));
        ui->listWidget->insertItem(nIndex, pItem);

    }
    setCentralWidget(ui->listWidget); 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值