Qt/Images/MovingAPixmap
From ProgrammingExamples
< Qt
main.cpp
#include <QApplication> #include "form.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }
form.h
#ifndef CALCULATORFORM_H #define CALCULATORFORM_H #include <QMainWindow> #include "ui_form.h" class MainWindow : public QMainWindow, private Ui::MainWindow { Q_OBJECT public: MainWindow(QMainWindow *parent = 0); private slots: }; #endif
form.cpp
#include <QtGui> #include "form.h" #include <iostream> #include <string> #include <QFileDialog> #include <QString> class MyPixmapItem : public QGraphicsPixmapItem { public: MyPixmapItem( const QPixmap & pixmap) : QGraphicsPixmapItem(pixmap) {} protected: void mouseMoveEvent ( QGraphicsSceneMouseEvent * event ); }; void MyPixmapItem::mouseMoveEvent ( QGraphicsSceneMouseEvent * event ) { QGraphicsPixmapItem::mouseMoveEvent(event); std::cout << event->scenePos().x() << std::endl; } MainWindow::MainWindow(QMainWindow* parent) : QMainWindow(parent) { this->setupUi(this); QPixmap pixmap(20,20); QColor black(0,0,0); pixmap.fill(black); QGraphicsScene* scene = new QGraphicsScene; MyPixmapItem* item = new MyPixmapItem(pixmap); scene->addItem(item); item->setFlag(QGraphicsItem::ItemIsMovable); this->graphicsView->setScene(scene); }
form.ui
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>600</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <widget class="QGraphicsView" name="graphicsView"> <property name="geometry"> <rect> <x>210</x> <y>150</y> <width>351</width> <height>271</height> </rect> </property> <property name="dragMode"> <enum>QGraphicsView::NoDrag</enum> </property> </widget> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>25</height> </rect> </property> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <resources/> <connections/> </ui>
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) project(TestQt) FIND_PACKAGE(Qt4 REQUIRED) INCLUDE(${QT_USE_FILE}) include_directories(${include_directories} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) QT4_WRAP_UI(UISrcs form.ui) QT4_WRAP_CPP(MOCSrcs form.h) add_executable(TestQt main.cpp form.cpp ${MOCSrcs} ${UISrcs}) target_link_libraries(TestQt ${QT_LIBRARIES})