PylonRecorder/imageviewer.h
2020-03-11 09:52:56 +01:00

87 lines
1.7 KiB
C++

#ifndef IMAGEVIEWER_H
#define IMAGEVIEWER_H
#include <QMainWindow>
#include "pylonrecorder.h"
#include <QImage>
#if defined(QT_PRINTSUPPORT_LIB)
# include <QtPrintSupport/qtprintsupportglobal.h>
# if QT_CONFIG(printer)
# include <QPrinter>
# endif
#endif
QT_BEGIN_NAMESPACE
class QAction;
class QLabel;
class QMenu;
class QScrollArea;
class QScrollBar;
QT_END_NAMESPACE
//! [0]
class ImageViewer : public QMainWindow
{
Q_OBJECT
public:
ImageViewer(QWidget *parent = nullptr);
~ImageViewer();
bool loadFile(const QString &);
private slots:
void grabStillFromPylon();
void open();
void saveAs();
void print();
void copy();
void paste();
void zoomIn();
void zoomOut();
void normalSize();
void fitToWindow();
void about();
void connectCamera();
void disconnectCamera();
void startRecording();
void stopRecording();
void quitApplication();
private:
void createActions();
void createMenus();
void createToolBar();
void updateActions();
bool saveFile(const QString &fileName);
void setImage(const QImage &newImage);
void scaleImage(double factor);
void adjustScrollBar(QScrollBar *scrollBar, double factor);
QImage image;
QLabel *imageLabel;
QScrollArea *scrollArea;
double scaleFactor = 1;
PylonRecorder *pylon;
#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printer)
QPrinter printer;
#endif
QAction *saveAsAct;
QAction *printAct;
QAction *copyAct;
QAction *zoomInAct;
QAction *zoomOutAct;
QAction *normalSizeAct;
QAction *fitToWindowAct;
QAction *grab_still_action;
QAction *grab_continuous_action;
QAction *connect_camera_action;
QAction *disconnect_camera_action;
};
#endif