0
|
1 |
|
|
2 |
Qt 3.2 introduces new features as well as many improvements over the
|
|
3 |
3.1.x series. This file gives an overview of the main changes since
|
|
4 |
version 3.1.2. For more details, see the online documentation which
|
|
5 |
is included in this distribution. The documentation is also available
|
|
6 |
at http://qt.nokia.com/doc/
|
|
7 |
|
|
8 |
The Qt version 3.2 series is binary compatible with the 3.1.x series.
|
|
9 |
Applications compiled for 3.1 will continue to run with 3.2.
|
|
10 |
|
|
11 |
****************************************************************************
|
|
12 |
* General *
|
|
13 |
****************************************************************************
|
|
14 |
|
|
15 |
|
|
16 |
Qt library
|
|
17 |
----------
|
|
18 |
|
|
19 |
New classes have been added to the Qt Library including a
|
|
20 |
class to add splash screens to applications (QSplashScreen), a toolbox
|
|
21 |
widget that provides a column of tabbed widgets (QToolBox), and a
|
|
22 |
class to manage per-thread data storage (QThreadStorage).
|
|
23 |
|
|
24 |
The SQL module received a fair bit of attention this time. The most
|
|
25 |
notable improvements include a native IBM DB2 driver, complete support
|
|
26 |
for stored procedures including the possibility to access
|
|
27 |
out-parameters, and native support for 64 bit fields without having to
|
|
28 |
convert to or from strings. We also added support for setting
|
|
29 |
connection parameters. This way you can, for example, conveniently
|
|
30 |
open an SSL connection to a MySQL or PostgreSQL database. If you need
|
|
31 |
even more customization, e.g. for an Oracle database, you can set up
|
|
32 |
the connection yourself and instantiate a Qt driver object on top of
|
|
33 |
it. An extended SQL cursor class has been added that makes it more
|
|
34 |
convenient to display result sets from general SQL queries
|
|
35 |
(QSqlSelectCursor). In addition, you can add custom database drivers
|
|
36 |
without compiling them as plugins (see
|
|
37 |
QSqlDatabase::registerSqlDriver()).
|
|
38 |
|
|
39 |
QLineEdit, the one-line text editor, now supports validation input
|
|
40 |
masks. The feature complements the previous QValidator concept and
|
|
41 |
allows e.g. restriction of input to the IP address format (mask
|
|
42 |
"990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").
|
|
43 |
|
|
44 |
Qt's unicode code support has been extended. Most notably, full
|
|
45 |
support for Indic scripts has been added, covering writing systems
|
|
46 |
such as Devanagari, Tamil and Bengali. The group of right to left
|
|
47 |
writing systems has been extended with support for Syriac. Both
|
|
48 |
improvements are available on both Windows with Uniscribe installed,
|
|
49 |
and on Unix/X11 when using XFT with OpenType fonts.
|
|
50 |
|
|
51 |
All tool classes that support STL-like iterators with begin() and
|
|
52 |
end(), contain two extra functions constBegin() and constEnd(). The
|
|
53 |
const versions always return const iterators, and thus can be a little
|
|
54 |
bit faster with Qt's implicitly shared containers.
|
|
55 |
|
|
56 |
QPainter's complex drawText() function has been highly
|
|
57 |
optimized. Despite its support for complex unicode scripts, it now
|
|
58 |
performs better than its less unicode-capable counterpart in Qt 2.3.
|
|
59 |
|
|
60 |
QPixmap now supports pixmaps with alpha channel (semi transparency) on
|
|
61 |
all Windows versions except Windows 95 and Windows NT.
|
|
62 |
|
|
63 |
The print dialog now supports "selection" as a print range as well as
|
|
64 |
the possibility to enable/disable all different printer options
|
|
65 |
individually.
|
|
66 |
|
|
67 |
Many classes were improved; see the detailed overview that follows.
|
|
68 |
|
|
69 |
Qt Motif Extension
|
|
70 |
------------------
|
|
71 |
|
|
72 |
Dialog handling has matured and has been extended since the
|
|
73 |
extension's introduction in Qt 3.1. The documentation and code
|
|
74 |
examples have been improved, including a walkthrough that covers the
|
|
75 |
complete migration of a real-world Motif example to Qt. The process
|
|
76 |
contains four intermediate steps where the application utilizes both
|
|
77 |
toolkits.
|
|
78 |
|
|
79 |
ActiveQt Extension
|
|
80 |
------------------
|
|
81 |
|
|
82 |
Type handling has been extended on both the container and the server
|
|
83 |
side. The new supported types are byte arrays and 64bit integers. The
|
|
84 |
QAxServer module supports QObject subclasses as return and parameter
|
|
85 |
types of slots, and allows error reporting through COM exceptions.
|
|
86 |
The Designer integration has been extended to support property dialogs
|
|
87 |
implemented by the control server.
|
|
88 |
|
|
89 |
Qt Designer
|
|
90 |
-----------
|
|
91 |
|
|
92 |
The popup menu editor has been rewritten. The new editor provides the
|
|
93 |
the ability to add, edit and remove menus and menu items directly in
|
|
94 |
the menubar and in the popup menu. Navigation and editing can be done
|
|
95 |
using either the mouse or the keyboard.
|
|
96 |
|
|
97 |
The new QWidgetContainerPlugin class provides support for complex
|
|
98 |
custom container widgets in Designer, such as the custom tab widget,
|
|
99 |
etc.
|
|
100 |
|
|
101 |
The property editor now allows editing of properties with or'd values
|
|
102 |
(sets).
|
|
103 |
|
|
104 |
Designer also supports the new QToolBox widget in a similar fashion to
|
|
105 |
QTabWidget, etc.
|
|
106 |
|
|
107 |
Qt Assistant
|
|
108 |
------------
|
|
109 |
|
|
110 |
Profiles have been introduced to allow applications to extend the use
|
|
111 |
of Qt Assistant as a help system. Profiles describe the documentation
|
|
112 |
to use so that only application specific documentation will be
|
|
113 |
referenced in an end user installation. Profiles also allow some
|
|
114 |
customization of the look in Qt Assistant. For detailed information,
|
|
115 |
see the helpdemo example in $QTDIR/examples/helpdemo.
|
|
116 |
|
|
117 |
Profiles replace the content files and categories system. The
|
|
118 |
following command line options are removed since they no longer serve
|
|
119 |
any purpose: addContentFile, removeContentFile, category, and
|
|
120 |
disableFirstRun.
|
|
121 |
|
|
122 |
Qt Assistant has multiple tabs for browsing, therefore enabling
|
|
123 |
multiple pages to be browsed without opening a new window.
|
|
124 |
|
|
125 |
It is possible to specify a default home page.
|
|
126 |
|
|
127 |
It is possible to specify a PDF reader so that urls to PDF files can
|
|
128 |
be opened from Qt Assistant.
|
|
129 |
|
|
130 |
****************************************************************************
|
|
131 |
* Library *
|
|
132 |
****************************************************************************
|
|
133 |
|
|
134 |
- QAction / QActionGroup
|
|
135 |
Simplified constructors so that it is no longer necessary to
|
|
136 |
specify texts for buttons and menu items separately.
|
|
137 |
For action groups, we fixed the enable/disable behavior. If
|
|
138 |
an action inside an action group is explicitly disabled, it is
|
|
139 |
no longer implicitly enabled together with the group.
|
|
140 |
This is identical to enabling/disabling widgets and their
|
|
141 |
children.
|
|
142 |
|
|
143 |
- QApplication
|
|
144 |
Added the aboutQt() slot for convenience.
|
|
145 |
|
|
146 |
- QAssistantClient
|
|
147 |
Added the new function, setArguments(), that invokes Qt
|
|
148 |
Assistant in different modes.
|
|
149 |
|
|
150 |
- QAxBase
|
|
151 |
Added the new function, asVariant(), that passes a COM
|
|
152 |
object through dynamicCall().
|
|
153 |
|
|
154 |
- QAxBindable
|
|
155 |
Added the new function, reportError(), that sends error
|
|
156 |
information to the ActiveX client.
|
|
157 |
|
|
158 |
- QColor
|
|
159 |
Added the new static function, colorNames(), that retrieves a
|
|
160 |
list of all color names known to Qt.
|
|
161 |
|
|
162 |
- QDeepCopy
|
|
163 |
Now also supports QDir, QFileInfo, and QStringList.
|
|
164 |
|
|
165 |
- QDom
|
|
166 |
Now has long and ulong support for setAttribute() and
|
|
167 |
setAttributeNS().
|
|
168 |
|
|
169 |
- QFont
|
|
170 |
Added the new properties: stretch and overline. Added the new
|
|
171 |
function, resolve(), that copies unspecified attributes from
|
|
172 |
one font to another.
|
|
173 |
|
|
174 |
- QFontDataBase
|
|
175 |
Added a new overload for families() that restricts the
|
|
176 |
returned list to fonts supporting a specific QFont::Script,
|
|
177 |
e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.
|
|
178 |
|
|
179 |
- QFontInfo / QFontMetrics
|
|
180 |
Added new constructors that force the info and metrics objects
|
|
181 |
to use a given QFont::Script.
|
|
182 |
|
|
183 |
- QGLWidget
|
|
184 |
Added a new constructor that takes a QGLContext
|
|
185 |
parameter. Makes the undocumented setContext() obsolete.
|
|
186 |
|
|
187 |
- QHeader
|
|
188 |
Added getters for the sort indicator (sortIndicatorSection()
|
|
189 |
and sortIndicatorOrder() ).
|
|
190 |
|
|
191 |
- QImage
|
|
192 |
Added a new overload for save() that writes to a given
|
|
193 |
QIODevice*.
|
|
194 |
|
|
195 |
- QListView
|
|
196 |
Added tristate support to check list items
|
|
197 |
(QCheckListItem::setTristate()). Added the new function,
|
|
198 |
setSelectionAnchor(), to set the list view's selection anchor
|
|
199 |
explicitly.
|
|
200 |
|
|
201 |
- QLineEdit
|
|
202 |
Added input masks: setInputMask(), inputMask(), and
|
|
203 |
hasAcceptableInput().
|
|
204 |
|
|
205 |
- QMessageBox
|
|
206 |
Added the new static function, question(), that complements
|
|
207 |
the existing information(), warning() and fatal() functions.
|
|
208 |
|
|
209 |
- QMotifDialog [Qt Motif Extension]
|
|
210 |
Now has two distinct modes of operation: 1) it allows a Motif
|
|
211 |
dialog to have a Qt parent, and 2) it allows a Qt dialog to have
|
|
212 |
a Motif parent.
|
|
213 |
|
|
214 |
- QPixmapCache
|
|
215 |
Added the new function, remove(), to explicitly remove a
|
|
216 |
pixmap from the cache.
|
|
217 |
|
|
218 |
- QPrinter
|
|
219 |
Added the new functions: setPrintRange(), printRange(),
|
|
220 |
setOptionEnabled(), and optionEnabled(). For Windows only,
|
|
221 |
added the new function, setWinPageSize(), that allows setting
|
|
222 |
DEVMODE.dmPaperSize directly.
|
|
223 |
|
|
224 |
- QPtrList
|
|
225 |
Added STL-like iterators with begin(), end(), and erase().
|
|
226 |
|
|
227 |
- QScrollBar
|
|
228 |
Maintains a user defined size policy when the direction
|
|
229 |
changes.
|
|
230 |
|
|
231 |
- QSplashScreen [new]
|
|
232 |
This new widget class provides a splash screen to be shown
|
|
233 |
during application startup.
|
|
234 |
|
|
235 |
- QSplitter
|
|
236 |
Added the new properties: opaqueResize, childrenCollapsible,
|
|
237 |
and handleWidth.
|
|
238 |
|
|
239 |
- QSqlError
|
|
240 |
Added a couple of convenience functions: text(), which returns
|
|
241 |
the concatenated database and driver texts. showMessage(),
|
|
242 |
which will pop up a QMessageBox with the text that text()
|
|
243 |
returns.
|
|
244 |
|
|
245 |
- QSqlQuery
|
|
246 |
Added overloads for the bindValue() call which makes it
|
|
247 |
possible to specifiy what role a bound value should have: In,
|
|
248 |
Out or InOut.
|
|
249 |
|
|
250 |
- QSqlSelectCursor [new]
|
|
251 |
This new QSqlCursor subclass provides browsing of general SQL
|
|
252 |
SELECT statements.
|
|
253 |
|
|
254 |
- QString
|
|
255 |
Added 64 bit support. Added the new functions: multiArg(),
|
|
256 |
reserve(), capacity(), squeeze(). Added case insensitive
|
|
257 |
overloads for startsWith() and endsWidth().
|
|
258 |
|
|
259 |
- QStringList
|
|
260 |
Added the new function gres().
|
|
261 |
|
|
262 |
- QStyle
|
|
263 |
Added support for toolbox, header, MDI frame, table grid line
|
|
264 |
color, line edit password character, and message box question.
|
|
265 |
|
|
266 |
- QSyntaxHighlighter
|
|
267 |
Added the new function, currentParagraph().
|
|
268 |
|
|
269 |
- QTabWidget
|
|
270 |
Added support for custom widgets to be placed beside
|
|
271 |
the tab bar: setCornerWidget() and cornerWidget().
|
|
272 |
|
|
273 |
- QTextEdit
|
|
274 |
In Log mode, added the new functions: setMaxLogLines() and
|
|
275 |
maxLogLines().
|
|
276 |
|
|
277 |
- QThreadStorage [new]
|
|
278 |
This new tool class provides per-thread data storage, also
|
|
279 |
referred to as thread local storage or TLS.
|
|
280 |
|
|
281 |
- QToolBox [new]
|
|
282 |
This new widget class provides a column of tabbed widgets, one
|
|
283 |
above the other, with the current page displayed below the
|
|
284 |
current tab.
|
|
285 |
|
|
286 |
- QVariant
|
|
287 |
Added support for LongLong and ULongLong.
|
|
288 |
|
|
289 |
- QWidget
|
|
290 |
Added a new widget flag, WNoAutoErase, that combines the now
|
|
291 |
obsolete WResizeNoErase and WRepaintNoErase flags.
|
|
292 |
|
|
293 |
- QWidgetContainerPlugin [new]
|
|
294 |
This new plugin class complements QWidgetPlugin for custom
|
|
295 |
container widgets, i.e. widgets that can host child
|
|
296 |
widgets.
|