QLabel показывает изображения как видео - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь разрешить QLabel показывать изображения как видео.

Я хочу, чтобы мои изображения отображались с f0000.png до f0039.png медленно, чтобы я мог видеть прогресс.

По какой-то причине цикл for начинается с 50.

Когда я вижу, как запускается программа, отображается только одно изображение или оно меняется слишком быстро, я не вижу прогресса.

Как это исправить, пусть он показывает изображения, как видео.

1 Ответ

0 голосов
/ 23 января 2019

вы можете использовать Qtimer и устанавливать скорость так быстро, как вам нужно

header:

#include <QMainWindow>
#include <QTimer>

namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow() override;

public slots:
    void updateLabel();

private:
    Ui::MainWindow *ui;
    QTimer* _timer;
    int index{0};
    QString pixResource{};
};

и impl.

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    _timer = new QTimer(parent);
    connect(_timer, SIGNAL(timeout()), this, SLOT(updateLabel()));
    _timer->start(1000);
}

MainWindow::~MainWindow()
{
    delete ui;
    _timer->stop();
    delete _timer;
}

void MainWindow::updateLabel()
{
    if (index >= 10)
    {
        index = 0;
    }
    qDebug() << "index: " << index;
    pixResource = "res/foo/image/" + QString::number(index)  + ".png";
    qDebug() << "now the res: " << pixResource;
    index++;
}
...