(C++) QGraphicsSimpleTextItemExample1
February 24, 2017 · View on GitHub
(C++) QGraphicsSimpleTextItemExample1



QGraphicsSimpleTextItem example 1: Hello World is a QGraphicsSimpleTextItem example that displays multiple QGraphicsSimpleTextItems with the text 'Hello World'. These items are movable and selectable.
- View a screenshot of 'QGraphicsSimpleTextItemExample1' (png)
Download the Qt Creator project
'QGraphicsSimpleTextItemExample1' (zip)
Download a Windows executable of
'QGraphicsSimpleTextItemExample1' (zip)
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
STL: GNU ISO C++ Library, version
4.9.2
Qt project file: ./CppQGraphicsSimpleTextItemExample1/CppQGraphicsSimpleTextItemExample1.pro
include(../../DesktopApplication.pri) include(../../Libraries/Boost.pri) SOURCES += \ qtmain.cpp \ qtwidget.cpp \ qttextitem.cpp HEADERS += \ qtwidget.h \ qttextitem.h
./CppQGraphicsSimpleTextItemExample1/qtmain.cpp
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QApplication> #include <QDesktopWidget> #include "qtwidget.h" #pragma GCC diagnostic pop int main(int argc, char *argv[]) { QApplication a(argc, argv); QtWidget w; { //Resize the dialog and put it in the screen center w.setGeometry(0,0,600,400); const QRect screen = QApplication::desktop()->screenGeometry(); w.move( screen.center() - w.rect().center() ); } w.show(); return a.exec(); }
./CppQGraphicsSimpleTextItemExample1/qttextitem.h
#ifndef QTTEXTITEM_H #define QTTEXTITEM_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QGraphicsSimpleTextItem> #pragma GCC diagnostic pop struct QtTextItem : public QGraphicsSimpleTextItem { QtTextItem(QGraphicsItem *parent = 0); }; #endif // QTTEXTITEM_H
./CppQGraphicsSimpleTextItemExample1/qttextitem.cpp
#include "qttextitem.h" QtTextItem::QtTextItem(QGraphicsItem *parent) : QGraphicsSimpleTextItem(parent) { this->setFlags( QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); this->setText("Hello World"); }
./CppQGraphicsSimpleTextItemExample1/qtwidget.h
#ifndef QTWIDGET_H #define QTWIDGET_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QGraphicsView> #pragma GCC diagnostic pop ///The widget holding the items struct QtWidget : public QGraphicsView { QtWidget(QWidget *parent = 0); }; #endif // QTWIDGET_H
./CppQGraphicsSimpleTextItemExample1/qtwidget.cpp
#include "qtwidget.h" #include <cassert> #include <cmath> #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <boost/math/constants/constants.hpp> #include <QGraphicsScene> #include "qttextitem.h" #pragma GCC diagnostic pop QtWidget::QtWidget(QWidget *parent) : QGraphicsView(new QGraphicsScene,parent) { const int n_items = 16; for (int i=0; i!=n_items; ++i) { const double angle = boost::math::constants::two_pi<double>() * (static_cast<double>(i+0) / static_cast<double>(n_items)); const double ray = 150.0; const double x = std::sin(angle) * ray; const double y = -std::cos(angle) * ray; QtTextItem * const item = new QtTextItem; item->setPos(x,y); scene()->addItem(item); } }