File: imageviewerexample.cpp

package info (click to toggle)
dtkwidget 5.7.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 36,540 kB
  • sloc: cpp: 63,257; ansic: 132; python: 88; sh: 42; makefile: 13
file content (79 lines) | stat: -rw-r--r-- 2,836 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later

#include "imageviewerexample.h"

#include <DImageViewer>
#include <DPushButton>

#include <QBoxLayout>

ImageViewerExampleWindow::ImageViewerExampleWindow(QWidget *parent)
    : PageWindowInterface(parent)
{
    addExampleWindow(new ImageViewerExample(this));
}

ImageViewerExample::ImageViewerExample(QWidget *parent)
    : ExampleWindowInterface(parent)
{
    QHBoxLayout *mainLayout = new QHBoxLayout(this);
    setLayout(mainLayout);

    QVBoxLayout *buttonLayout = new QVBoxLayout;
    buttonLayout->setContentsMargins(0, 0, 0, 0);
    buttonLayout->setSpacing(0);

    DPushButton *fitToWidget = new DPushButton("适应窗口", this);
    DPushButton *fitNormalSize = new DPushButton("1:1视图", this);
    DPushButton *rotate = new DPushButton("顺时针旋转", this);
    DPushButton *counterRotate = new DPushButton("顺时针旋转", this);
    DPushButton *beginCrop = new DPushButton("开始裁剪", this);
    DPushButton *endCrop = new DPushButton("结束裁剪", this);
    DPushButton *reset = new DPushButton("复位", this);

    buttonLayout->addWidget(fitToWidget);
    buttonLayout->addWidget(fitNormalSize);
    buttonLayout->addWidget(rotate);
    buttonLayout->addWidget(counterRotate);
    buttonLayout->addWidget(beginCrop);
    buttonLayout->addWidget(endCrop);
    buttonLayout->addWidget(reset);

    DImageViewer *imageViewer = new DImageViewer(this);
    imageViewer->setFixedSize(550, 350);
    imageViewer->setImage(QImage(":/images/example/DArrowRectangle.png"));
    imageViewer->fitToWidget();

    mainLayout->addSpacing(20);
    mainLayout->addLayout(buttonLayout, 0);
    mainLayout->addSpacing(20);
    mainLayout->addWidget(imageViewer, 1, Qt::AlignCenter);

    connect(fitToWidget, &DPushButton::clicked, this, [=]() { imageViewer->fitToWidget(); });
    connect(fitNormalSize, &DPushButton::clicked, this, [=]() { imageViewer->fitNormalSize(); });
    connect(rotate, &DPushButton::clicked, this, [=]() { imageViewer->rotateClockwise(); });
    connect(counterRotate, &DPushButton::clicked, this, [=]() { imageViewer->rotateCounterclockwise(); });
    connect(beginCrop, &DPushButton::clicked, this, [=]() { imageViewer->beginCropImage(); });
    connect(endCrop, &DPushButton::clicked, this, [=]() { imageViewer->endCropImage(); });
    connect(reset, &DPushButton::clicked, this, [=]() {
        imageViewer->resetRotateAngle();
        imageViewer->resetCropImage();
    });
}

QString ImageViewerExample::getTitleName() const
{
    return "DImageViewer";
}

QString ImageViewerExample::getDescriptionInfo() const
{
    return "图片浏览控件,提供图片展示、旋转及裁剪功能";
}

int ImageViewerExample::getFixedHeight() const
{
    return 400;
}