Sample project started as a QT Gui Application and contains main.cpp, ShowQImageDialog.h and ShowQImageDialog.cpp files.
ShowQImageDialog constructor creates a QGridLayout instance that is containing a QScrollArea inside it and displays the image in this area.
Project Directory Structure in Qt Creator IDE :
ShowQImageDialog.pro is the project configuration file and contains:
TARGET = ShowQImageDialog CONFIG += core gui TEMPLATE = app SOURCES += main.cpp \ ShowQImageDialog.cpp HEADERS += \ ShowQImageDialog.h
main.cpp file contains the custom QDialog instance and shows it.
#include <QApplication> #include "ShowQImageDialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); ShowQImageDialog w; w.show(); return a.exec(); }
ShowQImageDialog.h file is the extended QDialog class header file.
#ifndef SHOWQIMAGEDIALOG_H #define SHOWQIMAGEDIALOG_H #include <QDialog> #include <QGridLayout> #include <QScrollArea> #include <QLabel> #include <QImage> class ShowQImageDialog : public QDialog { Q_OBJECT public: ShowQImageDialog(QWidget *parent = 0); ~ShowQImageDialog(); private: QGridLayout* gridLayout; QImage* inputImg; QLabel* imgDisplayLabel; QScrollArea* scrollArea; }; #endif // SHOWQIMAGEDIALOG_H
ShowQImageDialog.cpp file contains implementation details for extended QDialog class.
#include "ShowQImageDialog.h" ShowQImageDialog::ShowQImageDialog(QWidget *parent) : QDialog(parent) { gridLayout = new QGridLayout(); inputImg = new QImage("/home/tufan/wallpaper.png"); imgDisplayLabel = new QLabel(""); imgDisplayLabel->setPixmap(QPixmap::fromImage(*inputImg)); imgDisplayLabel->adjustSize(); scrollArea = new QScrollArea(); scrollArea->setWidget(imgDisplayLabel); scrollArea->setMinimumSize(256,256); scrollArea->setMaximumSize(512,512); gridLayout->addWidget(scrollArea,0,0); setLayout(gridLayout); } ShowQImageDialog::~ShowQImageDialog() { delete inputImg; delete imgDisplayLabel; delete scrollArea; delete gridLayout; }
ShowQImageDialog:
Application created by QT Creator and uses Qt4.7 .
No comments:
Post a Comment