Files
hfut-bishe/client/gui/dialogs/ImageCropDialog.h
T
2026-05-14 13:30:06 +08:00

38 lines
758 B
C++

#pragma once
#include <QDialog>
#include <QImage>
#include <QRect>
#include <QSize>
class QLabel;
class QPushButton;
class ImageCropDialog final : public QDialog {
Q_OBJECT
public:
explicit ImageCropDialog(const QString& imagePath, QWidget* parent = nullptr);
bool hasValidSelection() const;
QRect selectedRectInImagePixels() const;
private slots:
void onReset();
void onOk();
private:
void loadImageOrClose();
void rebuildUi();
private:
class CropView;
CropView* m_view = nullptr;
QPushButton* m_okButton = nullptr;
QString m_imagePath;
QImage m_image;
/// read() 前 reader.size() 得到的原图逻辑尺寸(与 m_image 可能为缩放预览不一致)
QSize m_sourceLogicalSize;
};