Update copyright headers
[qt:qt.git] / doc / src / diagrams / programs / qpen-dashpattern.py
1 #!/usr/bin/env python
2 #############################################################################
3 ##
4 ## Copyright (C) 2015 The Qt Company Ltd.
5 ## Contact: http://www.qt.io/licensing/
6 ##
7 ## This file is part of the documentation of the Qt Toolkit.
8 ##
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and The Qt Company. For licensing terms
15 ## and conditions see http://www.qt.io/terms-conditions. For further
16 ## information use the contact form at http://www.qt.io/contact-us.
17 ##
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 or version 3 as published by the Free
21 ## Software Foundation and appearing in the file LICENSE.LGPLv21 and
22 ## LICENSE.LGPLv3 included in the packaging of this file. Please review the
23 ## following information to ensure the GNU Lesser General Public License
24 ## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
25 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ##
27 ## As a special exception, The Qt Company gives you certain additional
28 ## rights. These rights are described in The Qt Company LGPL Exception
29 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ##
31 ## GNU General Public License Usage
32 ## Alternatively, this file may be used under the terms of the GNU
33 ## General Public License version 3.0 as published by the Free Software
34 ## Foundation and appearing in the file LICENSE.GPL included in the
35 ## packaging of this file.  Please review the following information to
36 ## ensure the GNU General Public License version 3.0 requirements will be
37 ## met: http://www.gnu.org/copyleft/gpl.html.
38 ##
39 ## $QT_END_LICENSE$
40 ##
41 #############################################################################
42
43 import sys
44 from PyQt4.QtCore import *
45 from PyQt4.QtGui import *
46 from PyQt4.QtSvg import QSvgGenerator
47
48 if __name__ == "__main__":
49
50     app = QApplication(sys.argv)
51     
52     #device = QSvgGenerator()
53     #device.setFileName("qpen-dashpattern.svg")
54     #device.setSize(QSize(216, 144))
55     #device.setResolution(72)
56     
57     device = QImage(192, 144, QImage.Format_ARGB32)
58     device.fill(qRgba(0, 0, 0, 0))
59     
60     #resolution = device.resolution() # dpi
61     #dpp = resolution / 72.0
62     
63     p = QPainter()
64     p.begin(device)
65     
66     width = 8
67     
68     pen = QPen()
69     pen.setWidth(width)
70     pen.setDashPattern([4, 2])
71     pen.setCapStyle(Qt.FlatCap)
72     
73     faded_pen = QPen()
74     faded_pen.setWidth(width)
75     faded_pen.setDashPattern([4, 2])
76     faded_pen.setColor(QColor(160, 160, 160))
77     faded_pen.setCapStyle(Qt.FlatCap)
78     
79     font = QFont("Monospace")
80     font.setPointSize(12)
81     p.setFont(font)
82     p.setBrush(QColor(160, 0, 0))
83     
84     for x in range(-6, 9):
85     
86         if x % 4 == 0:
87             length = 6
88         else:
89             length = 2
90         
91         p.drawLine(64 + x * width, 4, 64 + x * width, 4 + length)
92         p.drawLine(64 + x * width, 136, 64 + x * width, 136 - length)
93     
94     offsets = (0, 2, 3.5, 4, 5, 6)
95     for i in range(len(offsets)):
96     
97         offset = offsets[i]
98         pen.setDashOffset(offset)
99         
100         p.setPen(faded_pen)
101         p.drawLine(64 - offset * width, 20 + (i * 20), 64, 20 + (i * 20))
102         
103         p.setPen(pen)
104         p.drawLine(64, 20 + (i * 20), 128, 20 + (i * 20))
105         
106         p.drawText(150, 25 + (i * 20), str(offset))
107     
108     p.end()
109     device.save("qpen-dashpattern.png")
110     sys.exit()