首页 > 其他分享 >Qt电子相册

Qt电子相册

时间:2024-10-28 21:46:49浏览次数:6  
标签:Qt 翻页 void ui Dialog 电子相册 include id

目录

项目要求

项目实现

 ui设计

代码

dialog.h

dialog.cpp

源码


项目要求

基于作业3.0,增添以下功能:

1. 优化图片和代码逻辑
2. 增加自动翻页功能
3. 增加试试手气功能

项目实现

 ui设计

 

代码

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QPixmap>
#include <QSize>
#include <QList>
#include <QDebug>
#include <QTimer>
#include <QDateTime>
#include <ctime>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
    QList<QString> path;
    QTimer *timer;
    int id;

private slots:
    void nextSlot(); //向下翻页的槽函数
    void lastSlot(); //向上翻页的槽函数
    void zidongSlot();//自动翻页的槽函数
    void startSlot(); //启动自动翻页
    void stopSlot();  //停止自动翻页
    void suijiSlot(); //随机抽取
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog),id(0),timer(new QTimer(this))
{
    ui->setupUi(this);

    path<<":/new/prefix1/111.jpg"<<":/new/prefix1/222.jpg"<<":/new/prefix1/333.jpg"<<":/new/prefix1/444.jpg";

    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(nextSlot()));
    connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(lastSlot()));
    connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(startSlot()));
    connect(ui->pushButton_4, SIGNAL(clicked()), this, SLOT(suijiSlot()));
    connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(stopSlot()));

    srand(static_cast<unsigned>(time(0)));
    connect(timer, SIGNAL(timeout()), this, SLOT(zidongSlot()));
}

Dialog::~Dialog()
{
    delete ui;
}


void Dialog::nextSlot()
{
    id++;
    if (id == path.size())
    {
        id = 0;
    }
    qDebug() << "下一张";
    QPixmap pic(path.at(id));
    ui->label->setPixmap(pic);
}

void Dialog::lastSlot()
{
    id--;
    if (id < 0)
    {
        id = path.size() - 1;
    }
    qDebug() << "上一张";
    QPixmap pic(path.at(id));
    ui->label->setPixmap(pic);
}

void Dialog::zidongSlot()
{

    nextSlot();
}

void Dialog::startSlot()
{
    qDebug()<<"开启翻页";
    timer->start(1000);

}

void Dialog::stopSlot()
{
    qDebug()<<"停止翻页";
    timer->stop();
}

void Dialog::suijiSlot()
{
    id=rand() % path.size();
    QPixmap pic(path.at(id));
    ui->label->setPixmap(pic);
    qDebug() << "随机抽取";
}

源码

已绑定资源置顶

标签:Qt,翻页,void,ui,Dialog,电子相册,include,id
From: https://blog.csdn.net/QR70892/article/details/143277074

相关文章

  • Qt作业3.0
    目录题目:ui界面设计:​编辑代码:dialog.hdialog.cppmain.cpp源码:题目:设计一个电子相册,点击上一张,切换到上一张图片,点击下一张,切换到下一张图片。要求:图片的展示可以循环,使用QList<QString>存储图片路径ui界面设计:代码:dialog.h//头文件dialog.h#ifn......
  • day10(Qt)OpenCV
    目录OpenCV1.OpenCV简介2.环境搭建3.人脸检测OpenCV1.OpenCV简介OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能。该库由英特尔公司发起,并在BSD许可证下发布,因此它是免费的,且开放源代码。OpenCV......
  • 基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码
    背景及意义吸烟行为检测对于维护公共场所的健康环境、防止火灾事故的发生以及促进健康生活方式都具有重要作用。使用基于YOLOv8的吸烟行为检测系统能够有效识别视频中的吸烟行为,从而及时采取适当措施。本文基于YOLOv8深度学习框架,通过2357张图片,训练了一个进行吸烟行为的......
  • 基于YOLOv10/YOLOv9/YOLOv8深度学习的工业螺栓螺母检测系统【python源码+Pyqt5界面+数
    背景及意义工业螺栓螺母检测系统的实施显著提高了制造行业的产品质量和工作效率。该系统的应用涵盖了从生产、检查到包装等各个环节,为精密设备的维护和安全运行提供了强大的技术支持。本文基于YOLOv10/YOLOv9/YOLOv8深度学习框架,通过2548张工业螺栓螺母的相关图片,训练了可......
  • 基于YOLOv10/v9/v8深度学习的金属焊缝缺陷检测系统【python源码+Pyqt5界面+数据集+训
    背景及意义金属焊缝缺陷检测系统的实现显著提高了众多工业领域产品的安全性和可靠性。自动化的检测过程不仅增加了工作效率,还降低了人力成本和事故风险。本文基于YOLOv10/v9/v8深度学习框架,通过3170张金属焊缝缺陷的相关图片,训练了可进行焊缝缺陷目标检测的模型,可以分别......
  • 基于YOLOv8深度学习的人脸面部口罩检测系统【python源码+Pyqt5界面+数据集+训练代码】
    背景及意义人脸口罩面部检测能够准确地检测人脸是否佩戴口罩,对于控制疫情传播、保障公共卫生安全起到关键作用。本文基于YOLOv8深度学习框架,通过853张图片,训练了一个进行人脸面部口罩的目标检测模型,能够准确的检测人脸“戴口罩”、“未戴口罩”及“未正确佩戴口罩”。并基......
  • Qt gridLayout布局占两格或两列在ui文件中实现
         在Qt  gridLayou布局里添加一个控件如何设置其占两格或多格   如下图:             一、如果是纯代码编写的界面 (大多是这个方式)     在纯代码编写的界面应用中,可以使用函数QGridLayout::addWidget(QWidget*w,intr......
  • PyQt开发-mkvirtualenv虚拟环境
    一、mkvirtualenv简介 1.虚拟环境简介 考虑以下场景:当我们需要同时维护一个由 Django1.0 版本驱动的老项目和开发一个使用 Django2.0 版本的新项目时,如何顺滑的在两种开发环境中切换成了一个难题。为了解决这个问题,虚拟环境应运而生。什么是虚拟环境:第一次安......
  • Qt/C++地图雷达扫描/动态扇形区域/标记线实时移动/轮船货轮动态轨迹/雷达模拟/跟随地
    一、前言说明地图雷达扫描的需求场景也不少,很多人的做法是直接搞个覆盖层widget,在widget上绘制雷达,优缺点很明显,优点是性能高,毕竟直接在widget上绘制性能明显比js中绘制要高,缺点是要么动态计算经纬度坐标转屏幕坐标来实现跟随,要么固定的通过改变绘制的范围内容来跟随,但是总归使用......
  • bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionT
    classQMetaMethodPrivate:publicQMetaMethodInvoker{public:staticconstQMetaMethodPrivate*get(constQMetaMethod*q){returnstatic_cast<constQMetaMethodPrivate*>(q);}inlineQByteArraysignature()const;inlineQByteArray......