QT加载并显示文件夹里的图片

打印 上一主题 下一主题

主题 1619|帖子 1619|积分 4857

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在现代应用步伐中,图像处置惩罚和显示是非常常见的需求。Qt 是一个强大的跨平台 GUI 框架,提供了丰富的功能来处置惩罚图像。在本篇博客中,我们将先容如何使用 Qt 加载并显示指定文件夹中的所有图片
  1. #include <QMainWindow>
  2. #include <QVBoxLayout>
  3. #include <QLabel>
  4. #include <QDir>
  5. #include <QPixmap>
  6. #include <QFileInfoList>
  7. #include <QFileInfo>
  8. #include <QScrollArea>
  9. #include <QWidget>
  10. class MainWindow : public QMainWindow {
  11.     Q_OBJECT
  12. public:
  13.     MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
  14.         // 创建一个中心小部件
  15.         QWidget *centralWidget = new QWidget(this);
  16.         setCentralWidget(centralWidget);
  17.         // 创建垂直布局
  18.         QVBoxLayout *layout = new QVBoxLayout(centralWidget);
  19.         // 创建滚动区域
  20.         QScrollArea *scrollArea = new QScrollArea(this);
  21.         scrollArea->setWidgetResizable(true);
  22.         layout->addWidget(scrollArea);
  23.         // 创建一个容器小部件用于放置图片
  24.         QWidget *imageContainer = new QWidget(this);
  25.         QVBoxLayout *imageLayout = new QVBoxLayout(imageContainer);
  26.         // 指定要加载的文件夹路径
  27.         QString folderPath = "path/to/your/image/folder"; // 替换为你的图片文件夹路径
  28.         QDir dir(folderPath);
  29.         // 获取文件夹中的所有图片文件
  30.         QStringList filters;
  31.         filters << "*.png" << "*.jpg" << "*.jpeg" << "*.bmp" << "*.gif"; // 支持的图片格式
  32.         dir.setNameFilters(filters);
  33.         dir.setFilter(QDir::Files);
  34.         QFileInfoList fileInfoList = dir.entryInfoList();
  35.         // 加载并显示图片
  36.         for (const QFileInfo &fileInfo : fileInfoList) {
  37.             QLabel *imageLabel = new QLabel(this);
  38.             QPixmap pixmap(fileInfo.absoluteFilePath());
  39.             imageLabel->setPixmap(pixmap.scaled(400, 300, Qt::KeepAspectRatio, Qt::SmoothTransformation)); // 调整图片大小
  40.             imageLayout->addWidget(imageLabel);
  41.         }
  42.         // 将图片容器设置为滚动区域的widget
  43.         scrollArea->setWidget(imageContainer);
  44.     }
  45. };
  46. #include <QApplication>
  47. int main(int argc, char *argv[]) {
  48.     QApplication a(argc, argv);
  49.     MainWindow w;
  50.     w.resize(800, 600);
  51.     w.show();
  52.     return a.exec();
  53. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表