1
Qt 3.3 introduces many new features as well as many improvements over
2
the 3.2.x series. For more details, see the online documentation which
3
is included in this distribution. The documentation is also available
4
at http://qt.nokia.com/doc/
5
6
The Qt version 3.3 series is binary compatible with the 3.2.x series.
7
Applications compiled for 3.2 will continue to run with 3.3.
8
9
****************************************************************************
10
*			    General					   *
11
****************************************************************************
12
13
Qt library
14
----------
15
16
Qt 3.3 is .NET enabled. This release shows how to use classes
17
developed with Qt in a .NET environment. It includes an analysis of
18
the different interoperability infrastructures provided by the .NET
19
framework. An example demonstrates how to use both a manual approach
20
with Microsoft's managed extensions to the C++ language, and also
21
automated solutions based on COM and the ActiveQt framework to reuse
22
native Qt classes and widgets in .NET projects. To learn more about Qt
23
and .NET read the "Using Qt objects in Microsoft .NET" walkthrough
24
found in the ActiveQt framework documentation.
25
26
Qt 3.3 now supports IPv6 in addition to IPv4. New functions have been
27
added for IPv6 support to QSocketDevice, QHostAddress and QDNns.
28
29
Qt now includes a new tool class called QLocale. This class converts
30
between numbers and their string representations in various languages.
31
QLocale supports the concept of a default locale which allows a locale
32
to be set globally for the entire application.
33
34
Support for new 64bit platforms and compilers has been added for Qt
35
3.3.  Qt now supports Itanium on both Linux (Intel) and Windows
36
(VC++). Qt 3.3 now also officially supports FreeBSD.
37
38
Qt 3.3 also supports precompiled headers for both Windows and Mac OS
39
X. To use precompiled headers when compiling your Qt application
40
simply add PRECOMPH and then specify the header file to precompile in
41
your .pro file. To learn more about precompiled headers see the
42
"Using Precompiled Headers" chapter in the qmake User Guide.
43
44
Two new database drivers have been added to the SQL module, InterBase
45
and SQLite. This makes it possible to write database applications that
46
do not require a database server. SQLite is provided in the Qt 3.3
47
distribution and can be enabled with either -qt-sql-sqlite or
48
-plugin-sql-sqlite. The InterBase plugin also works with Firebird, the
49
open source version of InterBase.
50
51
QWidget has a new function setWindowState() which is used to make a
52
widget maximized, minimized, etc. This allows individual settings for
53
the minimized/maximized/fullscreen properties.
54
55
Support for semi-transparent top-level widgets on Mac OS X and Windows
56
2000/XP has also been added.
57
58
Qt 3.3 includes in addition to this, numerous bug fixes and
59
improvements. Special thanks goes to KDE for their reports and
60
suggestions.
61
62
63
Qt/Embedded
64
-----------
65
66
Added support for SNAP graphics drivers from SciTech Software. This
67
gives access to accelerated drivers for more than 150 graphics
68
chipsets.
69
70
71
Qt/Mac
72
------
73
74
Added support for Xcode project files in qmake.
75
Added Tablet support for Mac OS X.
76
Numerous visual improvements.
77
78
79
Qt/X11
80
------
81
82
Added support for Xft2 client side fonts on X servers without the
83
RENDER extension.
84
85
Added a new configure option (-dlopen-opengl) which will remove the
86
OpenGL and Xmu library dependencies in the Qt library. The functions
87
used by Qt in those libraries are resolved manually using dlopen()
88
when this option is used.
89
90
Improved support for the Extended Window Manager Hints.
91
92
93
Qt/Windows
94
----------
95
96
Added support for Windows Server 2003 (Win64/Itanium).
97
98
99
Qt Motif Extension
100
------------------
101
102
Clipboard operations now work between Qt and Motif widgets in the same
103
application. Click-to-focus works with Motif widgets that are children
104
of a QMotifWidget.
105
106
107
ActiveQt Extension
108
------------------
109
110
Two new functions, QAxFactory::startServer() and
111
QAxFactory::stopServer(), can be used to start and stop an
112
out-of-process ActiveQt server at runtime. The new functions
113
QAxFactory::serverDirPath() and QAxFactory::serverFilePath() return
114
the location of the COM server binary. Server binaries no longer
115
need to implement a main() entry point function. A default
116
implementation is used for out-of-process servers. IClassFactory2
117
is supported for the development of licensed components, and
118
QAxFactory supports the creation of non-visual COM objects. Class
119
specific information can be provided directly in the C++ class
120
declaration using the Q_CLASSINFO macro to control how objects and
121
controls are registered and exposed. New helper classes and macros
122
are avialable to make it even easier to expose object classes (see the
123
QAxServer documentation for details).
124
125
COM objects developed with ActiveQt are now supported in a wider range
126
of clients, including Microsoft Office applications and .NET. Examples
127
that demonstrate how to use the Qt objects from the examples in .NET
128
languages like C# are included. QStringList is supported as a type,
129
and QRect, QSize and QPoint are now supported datatypes for control
130
properties and as reference parameters. Saving the controls to a
131
storage or stream now includes the version number of the QDataStream
132
used for the serialization (note that this might break existing
133
storages).
134
135
The QAxContainer library is now static even for shared configurations
136
of Qt. This simplifies deployment and allows using both QAxServer and
137
QAxContainer in one project, i.e. an OLE automatable application that
138
uses COM objects itself. The semantics of QAxBase::setControl() have
139
been extended to allow creating of COM objects on remote machines via
140
DCOM, to create controls requiring a license key and to connect to
141
already running objects. The implementation of QAxBase::dynamicCall()
142
has been improved to support passing of parameter values directly in
143
the function string. Three new classes, QAxScript, QAxScriptManager
144
and QAxScriptEngine, can be used to script COM objects from within Qt
145
applications using Windows Script Host.
146
147
SAFEARRAY(BSTR) parameters are supported as QStringList. Calling COM
148
object methods with out-parameters of type short is now supported (the
149
parameters are of type int& in the Qt wrapper), and QVariants used for
150
out-parameters don't have to be initialized to the expected type.
151
Calling QByteArray functions in out-of-process controls no longer
152
returns an error code. The control's client side is set to zero when
153
the container releases the control.
154
155
156
Qt Designer
157
-----------
158
159
Qt Designer, Qt's visual GUI builder, has received some speed
160
optimizations, along with minor improvements to the menu editor.
161
162
163
Qt Assistant
164
------------
165
166
Qt Assistant now saves the states of the tab bars between runs. This
167
enables users to start browsing where they ended their previous
168
assistant session.
169
170
Shortcuts for Find Next (F3) and Find Previous (Shift+F3) have been
171
implemented.
172
173
174
Compilers
175
---------
176
177
Qt 3.3 adds support for two new compilers. The Intel C++ compiler is
178
supported on Linux and FreeBSD. GNU gcc is supported on Windows using
179
MinGW.
180
181
Qt 3.3 no longer officially supports the Sun CC 5.0 compiler or the
182
IRIX MIPSpro o32 mode.
183
184
185
****************************************************************************
186
*			   Library					   *
187
****************************************************************************
188
189
- QAction
190
	Added a setDisabled() slot similar to QWidget::setDisabled.
191
	Added an activate() slot which activates the action and
192
	executes all connected slots.
193
	Added showStatusMessage() and whatsThisClicked() signals.
194
195
- QButtonGroup
196
	Added QButtonGroup::selectedId property to allow mapping with
197
	SQL property sets.
198
199
- QCursor
200
	Added new enum value Qt::BusyCursor.
201
202
- QDom
203
	The QDom classes are now reentrant.
204
205
- QEvent
206
	Added new event type WindowStateChange, obsoleting ShowNormal,
207
	ShowMinimized, ShowMaximized and ShowFullScreen.
208
209
- QHeader
210
	The sizeChange() signal is emitted when the section sizes are
211
	adjusted by double clicking.
212
213
- QHostAddress
214
	Added new constructor for IPv6 and new functions
215
	isIPv6Address() and toIPv6Address(). Obsoleted the functions
216
	isIp4Addr() and ip4Addr(), replacing them with isIPv4Address()
217
	and toIPv4Address().
218
219
- QListView
220
	Improved alignment for text in QListViewItems. Right aligned
221
	text now has the ellipsis on the left.
222
	Keyboard search now uses the sort column as the column to
223
	start searching in.
224
	Improved branch drawing.
225
226
- QLocale [new]
227
	This new tool class converts between numbers and their string
228
	representations in various languages.
229
230
- QMacStyle
231
	Allow disabling of size constraints.
232
233
- QMovie
234
	Added JNG support.
235
236
- QPixmap
237
	Support full alpha-maps for paletted (8-bit) images.
238
	Support 16-bit grayscale PNG images with transparency.
239
240
- QSocketDevice
241
	Added setProtocol() and protocol() for IPv6 support.
242
243
- QSound
244
	Windows: Support loop related APIs.
245
246
- QSplashScreen
247
	Less intrusive stay-on-top policy.
248
249
- QSql
250
	Support for InterBase and SQLite.
251
252
- QStatusBar
253
	Draw messages with the foreground() color of the palette,
254
	rather than with the text() color.
255
256
- QString
257
	Added support for %lc and %ls to sprintf(). %lc takes a
258
	Unicode character of type ushort, %ls takes a zero-terminated
259
	array of Unicode characters of type ushort (i.e. const
260
	ushort*). Also added support for precision (e.g. "%.5s").
261
	Changed arg() to support "%L1" for localized conversions.
262
263
- QStyle
264
	Add a new primitive element: PE_RubberBand.
265
266
- QTextEdit
267
	Reduced memory consumption by 20 bytes per line.
268
	Added a getter for the currently set QSyntaxHighlighter.
269
270
- QVariant
271
	Comparison between variants where one of the variants is a
272
	numeric value will compare on the numeric value. Type casting
273
	between different variants is more consistent.
274
275
- QWidget
276
	Added setWindowOpacity() and windowOpacity() to support
277
	transparent top-level widgets on Windows and Mac.
278
	Added windowState() and setWindowState() to allow individual
279
	setting of the minimized/maximized/fullscreen properties.
280
281
- QWindowsStyle
282
	Qt supports toggling of the accelerator underlines using the
283
	Alt-key on Windows 98, 2000 and later. On other platforms this
284
	change has no effect.