This Qt example shows how to stretchdraw and rotate an image, like this screenshot (png).
Operating system(s) or programming environment(s)
- Lubuntu 15.04 (vivid)
- Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
Qt project file: ./CppQtExample18/CppQtExample18.pro
exists(../../DesktopApplication.pri) { include(../../DesktopApplication.pri) } !exists(../../DesktopApplication.pri) { QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TEMPLATE = app CONFIG(debug, debug|release) { message(Debug mode) } CONFIG(release, debug|release) { message(Release mode) DEFINES += NDEBUG NTRACE_BILDERBIKKEL } QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra unix { QMAKE_CXXFLAGS += -Werror } } exists(../../Libraries/Boost.pri) { include(../../Libraries/Boost.pri) } !exists(../../Libraries/Boost.pri) { win32 { INCLUDEPATH += \ ../../../Projects/Libraries/boost_1_55_0 } } SOURCES += main.cpp SOURCES += dialog.cpp HEADERS += dialog.h FORMS += dialog.ui RESOURCES += resources.qrc
#ifndef DIALOG_H #define DIALOG_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <boost/shared_ptr.hpp> #include <QDialog> #pragma GCC diagnostic pop struct QGraphicsPixmapItem; struct QGraphicsScene; namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = 0); Dialog(const Dialog&) = delete; Dialog& operator=(const Dialog&) = delete; ~Dialog(); private: Ui::Dialog *ui; boost::shared_ptr<QGraphicsScene> m_scene; boost::shared_ptr<QGraphicsPixmapItem> m_background; }; #endif // DIALOG_H
#include "dialog.h" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include "ui_dialog.h" #include <QGraphicsPixmapItem> #include <QGraphicsScene> #pragma GCC diagnostic pop Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog), m_scene(new QGraphicsScene), m_background(new QGraphicsPixmapItem) { ui->setupUi(this); ui->graphicsView->setScene(m_scene.get()); m_scene->addItem(m_background.get()); m_background->setPixmap(QPixmap(":/images/R.bmp")); //Draw image 20x as large m_background->setScale(20.0); //Rotate image by 30 degree m_background->setRotation(30.0); } Dialog::~Dialog() { delete ui; }
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QApplication> #include "dialog.h" #pragma GCC diagnostic pop int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec(); }