forked from jhj/aqp-qt5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
115 lines (92 loc) · 3.61 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Advanced Qt Programming by Mark Summerfield
ISBN: 978-0321635907
All the example programs and modules are copyright (c) Qtrac Ltd. 2009-11.
They are free software: you can redistribute them and/or modify them
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version version 3 of the License, or
(at your option) any later version. They are provided for educational
purposes and are distributed in the hope that they will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public Licenses (in file gpl-3.0.txt) for more details.
All the book's examples are designed to be educational, and many are
also designed to be useful. I hope that you find them helpful, and are
perhaps able to use some of them as starting points for your own
projects.
Most of the icons and sounds are from KDE (The `K' Desktop Environment),
and come under KDE's LGPL license. (Visit http:///www.kde.org for more
information.)
The entire set of examples can be built in one go by running qmake and
then make (or nmake) in their top level directory---the directory that
contains examples.pro.
Note that the Alt_Key library's documentation is here:
http://www.qtrac.eu/alt_key_api.html
Here is the list of programs referred to in the book grouped by chapter:
Chapter 1: Hybrid Desktop/Internet Applications
weathertrayicon
rsspanel
browserwindow
nyrbviewer
matrixquiz
Chapter 2: Audio and Video
moviejingle
playmusic
playvideo
Chapter 3: Model/View Table Models
zipcodes1
zipcodes2
Chapter 4: Model/View Tree Models
timelog1
timelog2
Chapter 5: Model/View Delegates
folderview
timelog1
zipcodes1
Chapter 6: Model/View Views
censusvisualizer
tiledlistview [1]
Chapter 7: Threading with QtConcurrent
image2image
numbergrid
Chapter 8: Threading with QThread
crossfader
findduplicates
Chapter 9: Creating Rich Text Editors
findduplicates
xmledit
timelog1
textedit
Chapter 10: Creating Rich Text Documents
outputsampler
Chapter 11: Creating Graphics/View Windows
petridish1
Chapter 12: Creating Graphics/View Scenes
pagedesigner1 [2]
Chapter 13: The Animation and State Machine Frameworks
finddialog
petridish2
pagedesigner2 [2]
STOP PRESS:
[1] The TiledListView::calculateRectsIfNecessary() function does not
play nicely with SQL-based models whose underlying database doesn't
report its query size. I've now incorporated an alternative
implementation (which can be switched on by uncommenting the DEFINE
line in the .pro file) that solves this problem and which is almost
the same as Johann's suggested solution.
[2] I have now added an alternative implementation of the
BoxItem::mouseMoveEvent() handler for Page Designer. By default the
original implementation is used for pagedesigner1 and the
alternative one for pagedesigner2.
COMPILER NOTE:
If you get compiler errors regarding std::cos() or std::sin() with a
Microsoft compiler add:
DEFINES += MSVC_COMPILER
to the affected .pro files (i.e., folderview/folderview.pro,
petridish1/petridish1.pro, and petridish2/petridish2.pro).
If you have a better workaround please let me know.
CREDITS:
Thanks to Rémi Faitout for fixes to make the examples build with MSVC8.
Thanks to Jim Clase for spotting and fixing a subtle bug in timelog1.
Thanks to Thomas Gasser for reporting errors when compiling with MSVC9.
Thanks to Johann Anhofer for spotting the problem with SQL-based models
in the tiledlistview example and for providing a solution.