QtBase
v6.3.1
tests
benchmarks
widgets
graphicsview
qgraphicsview
benchapps
moveItems
main.cpp
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2016 The Qt Company Ltd.
4
** Contact: https://www.qt.io/licensing/
5
**
6
** This file is part of the test suite of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and The Qt Company. For licensing terms
14
** and conditions see https://www.qt.io/terms-conditions. For further
15
** information use the contact form at https://www.qt.io/contact-us.
16
**
17
** GNU General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU
19
** General Public License version 3 as published by the Free Software
20
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21
** included in the packaging of this file. Please review the following
22
** information to ensure the GNU General Public License requirements will
23
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24
**
25
** $QT_END_LICENSE$
26
**
27
****************************************************************************/
28
#include <QtGui>
29
30
#include "valgrind/callgrind.h"
31
32
class
View
:
public
QGraphicsView
33
{
34
Q_OBJECT
35
public
:
36
View
(
QGraphicsScene
*scene,
QGraphicsItem
*
item
)
37
:
QGraphicsView
(
scene
), _item(
item
)
38
{
39
}
40
41
protected
:
42
void
paintEvent
(
QPaintEvent
*
event
)
43
{
44
static
int
n
= 0;
45
if
(
n
)
46
CALLGRIND_START_INSTRUMENTATION
47
QGraphicsView::paintEvent
(
event
);
48
_item->
moveBy
(1, 1);
49
if
(
n
)
50
CALLGRIND_STOP_INSTRUMENTATION
51
if
(++
n
== 200)
52
qApp
->quit();
53
}
54
55
private
:
56
QGraphicsItem
*_item;
57
};
58
59
int
main
(
int
argc,
char
*argv[])
60
{
61
QApplication
app
(argc, argv);
62
63
if
(argc < 2) {
64
qDebug
(
"usage: ./%s <numItems>"
, argv[0]);
65
return
1;
66
}
67
68
QGraphicsScene
scene
(-150, -150, 300, 300);
69
scene
.
setItemIndexMethod
(
QGraphicsScene::NoIndex
);
70
71
QGraphicsRectItem
*
item
=
scene
.
addRect
(-50, -50, 100, 100,
QPen
(
Qt::NoPen
),
QBrush
(
Qt::blue
));
72
item
->
setFlag
(
QGraphicsItem::ItemIsMovable
);
73
74
for
(
int
i
= 0;
i
< atoi(argv[1]); ++
i
) {
75
QGraphicsRectItem
*
child
=
scene
.
addRect
(-5, -5, 10, 10,
QPen
(
Qt::NoPen
),
QBrush
(
Qt::blue
));
76
child
->setPos(-50 +
QRandomGenerator::global
()->
bounded
(100), -50 +
QRandomGenerator::global
()->
bounded
(100));
77
child
->setParentItem(
item
);
78
}
79
80
View
view
(&
scene
,
item
);
81
view
.resize(300, 300);
82
view
.show();
83
84
return
app
.
exec
();
85
}
86
87
#include "main.moc"
i
small capitals from c petite p scientific i
[1]
Definition:
afcover.h:80
CALLGRIND_START_INSTRUMENTATION
#define CALLGRIND_START_INSTRUMENTATION
Definition:
callgrind_p.h:114
CALLGRIND_STOP_INSTRUMENTATION
#define CALLGRIND_STOP_INSTRUMENTATION
Definition:
callgrind_p.h:125
QApplication
The QApplication class manages the GUI application's control flow and main settings.
Definition:
qapplication.h:68
QApplication::exec
static int exec()
Definition:
qapplication.cpp:2629
QBrush
The QBrush class defines the fill pattern of shapes drawn by QPainter.
Definition:
qbrush.h:66
QGraphicsItem
The QGraphicsItem class is the base class for all graphical items in a QGraphicsScene.
Definition:
qgraphicsitem.h:83
QGraphicsItem::moveBy
void moveBy(qreal dx, qreal dy)
Definition:
qgraphicsitem.h:271
QGraphicsItem::ItemIsMovable
@ ItemIsMovable
Definition:
qgraphicsitem.h:86
QGraphicsItem::setFlag
void setFlag(GraphicsItemFlag flag, bool enabled=true)
Definition:
qgraphicsitem.cpp:1913
QGraphicsRectItem
The QGraphicsRectItem class provides a rectangle item that you can add to a QGraphicsScene.
Definition:
qgraphicsitem.h:646
QGraphicsScene
The QGraphicsScene class provides a surface for managing a large number of 2D graphical items.
Definition:
qgraphicsscene.h:95
QGraphicsScene::setItemIndexMethod
void setItemIndexMethod(ItemIndexMethod method)
Definition:
qgraphicsscene.cpp:1872
QGraphicsScene::addRect
QGraphicsRectItem * addRect(const QRectF &rect, const QPen &pen=QPen(), const QBrush &brush=QBrush())
Definition:
qgraphicsscene.cpp:2751
QGraphicsScene::NoIndex
@ NoIndex
Definition:
qgraphicsscene.h:111
QGraphicsView
The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene.
Definition:
qgraphicsview.h:60
QGraphicsView::paintEvent
void paintEvent(QPaintEvent *event) override
Definition:
qgraphicsview.cpp:3426
QPaintEvent
The QPaintEvent class contains event parameters for paint events. \inmodule QtGui.
Definition:
qevent.h:539
QPen
The QPen class defines how a QPainter should draw lines and outlines of shapes.
Definition:
qpen.h:61
QRandomGenerator::global
static Q_DECL_CONST_FUNCTION QRandomGenerator * global()
Definition:
qrandom.h:311
QRandomGenerator::bounded
double bounded(double highest)
Definition:
qrandom.h:108
View
[0]
Definition:
view.h:62
View::View
View(QGraphicsScene *scene, QGraphicsItem *item)
Definition:
main.cpp:36
View::paintEvent
void paintEvent(QPaintEvent *event)
Definition:
main.cpp:42
main
int main(int argc, char **argv)
Definition:
main.cpp:1
Qt::blue
@ blue
Definition:
qnamespace.h:68
Qt::NoPen
@ NoPen
Definition:
qnamespace.h:1112
qApp
#define qApp
Definition:
qcoreapplication.h:72
qDebug
#define qDebug
[1]
Definition:
qlogging.h:177
n
GLfloat n
Definition:
qopengles2ext.h:795
event
struct _cl_event * event
Definition:
qopenglext.h:2998
Q_OBJECT
#define Q_OBJECT
Definition:
qtmetamacros.h:158
scene
QGraphicsScene scene
[0]
Definition:
src_gui_graphicsview_qgraphicsgridlayout.cpp:52
item
QGraphicsItem * item
Definition:
src_gui_graphicsview_qgraphicsitem.cpp:172
app
QApplication app(argc, argv)
[0]
child
QLayoutItem * child
[0]
Definition:
src_gui_kernel_qlayout.cpp:72
view
QQuickView * view
[0]
Definition:
src_plugins_platforms_qnx_qqnxwindow.cpp:41
Generated by
1.9.1