|
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 Qt library |
|
16 ---------- |
|
17 |
|
18 New classes have been added to the Qt Library including a |
|
19 class to add splash screens to applications (QSplashScreen), a toolbox |
|
20 widget that provides a column of tabbed widgets (QToolBox), and a |
|
21 class to manage per-thread data storage (QThreadStorage). |
|
22 |
|
23 The SQL module received a fair bit of attention this time. The most |
|
24 notable improvements include a native IBM DB2 driver, complete support |
|
25 for stored procedures including the possibility to access |
|
26 out-parameters, and native support for 64 bit fields without having to |
|
27 convert to or from strings. We also added support for setting |
|
28 connection parameters. This way you can, for example, conveniently |
|
29 open an SSL connection to a MySQL or PostgreSQL database. If you need |
|
30 even more customization, e.g. for an Oracle database, you can set up |
|
31 the connection yourself and instantiate a Qt driver object on top of |
|
32 it. An extended SQL cursor class has been added that makes it more |
|
33 convenient to display result sets from general SQL queries |
|
34 (QSqlSelectCursor). QSqlDatabase::tables() is now capable to return |
|
35 tables, views and/or system tables. In addition, you can add custom |
|
36 database drivers without compiling them as plugins |
|
37 (see 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 4.0. |
|
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 On Windows, the Qt installation includes a toolbar for Visual Studio.NET |
|
68 that provides an integration of the Qt tools (ie. Qt Designer) with the |
|
69 IDE. |
|
70 |
|
71 Many classes were improved; see the detailed overview that follows. |
|
72 |
|
73 Qt Motif Extension |
|
74 ------------------ |
|
75 |
|
76 Dialog handling has matured and has been extended since the |
|
77 extension's introduction in Qt 3.1. The documentation and code |
|
78 examples have been improved, including a walkthrough that covers the |
|
79 complete migration of a real-world Motif example to Qt. The process |
|
80 contains four intermediate steps where the application utilizes both |
|
81 toolkits. |
|
82 |
|
83 ActiveQt Extension |
|
84 ------------------ |
|
85 |
|
86 Type handling has been extended on both the container and the server |
|
87 side. The new supported types are byte arrays and 64bit integers. The |
|
88 QAxServer module supports aggregation, as well as QObject subclasses as |
|
89 return and parameter types of slots, and allows error reporting through |
|
90 COM exceptions. |
|
91 The Designer integration has been extended to support property dialogs |
|
92 implemented by the control server. |
|
93 Controls developed with ActiveQt support aggregation, which makes it |
|
94 possible to use them in containers that require this form of containment to |
|
95 be supported. ActiveQt also supports masked controls in containers that |
|
96 support this for window'ed controls. |
|
97 |
|
98 Qt Designer |
|
99 ----------- |
|
100 |
|
101 The popup menu editor has been rewritten. The new editor provides the |
|
102 the ability to add, edit and remove menus and menu items directly in |
|
103 the menubar and in the popup menu. Navigation and editing can be done |
|
104 using either the mouse or the keyboard. |
|
105 |
|
106 The property editor now allows editing of properties with or'd values |
|
107 (sets). |
|
108 |
|
109 Designer also supports the new QToolBox widget in a similar fashion to |
|
110 QTabWidget, etc. |
|
111 |
|
112 Qt Assistant |
|
113 ------------ |
|
114 |
|
115 Profiles have been introduced to allow applications to extend the use |
|
116 of Qt Assistant as a help system. Profiles describe the documentation |
|
117 to use so that only application specific documentation will be |
|
118 referenced in an end user installation. Profiles also allow some |
|
119 customization of the look in Qt Assistant. For detailed information, |
|
120 see the helpdemo example in $QTDIR/examples/helpdemo. |
|
121 |
|
122 Profiles replace the content files and categories system. The |
|
123 following command line options are removed since they no longer serve |
|
124 any purpose: addContentFile, removeContentFile, category, and |
|
125 disableFirstRun. |
|
126 |
|
127 Qt Assistant has multiple tabs for browsing, therefore enabling |
|
128 multiple pages to be browsed without opening a new window. |
|
129 |
|
130 It is possible to specify a default home page. |
|
131 |
|
132 It is possible to specify a PDF reader so that urls to PDF files can |
|
133 be opened from Qt Assistant. |
|
134 |
|
135 Compilers |
|
136 --------- |
|
137 |
|
138 Note: Qt 3.2 is the last version to officially support IRIX MIPSpro |
|
139 o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided |
|
140 for 3.2 which needs to be run for these compilers. |
|
141 |
|
142 Miscellaneous |
|
143 ------------- |
|
144 |
|
145 Users of the 3.2.0 beta releases please note: The QWidgetContainerPlugin |
|
146 interfaces was removed from the final release due to some serious issues. |
|
147 |
|
148 **************************************************************************** |
|
149 * Library * |
|
150 **************************************************************************** |
|
151 |
|
152 - QAction / QActionGroup |
|
153 Simplified constructors so that it is no longer necessary to |
|
154 specify texts for buttons and menu items separately. |
|
155 For action groups, we fixed the enable/disable behavior. If |
|
156 an action inside an action group is explicitly disabled, it is |
|
157 no longer implicitly enabled together with the group. |
|
158 This is identical to enabling/disabling widgets and their |
|
159 children. |
|
160 |
|
161 - QApplication |
|
162 Added the aboutQt() slot for convenience. |
|
163 |
|
164 - QAssistantClient |
|
165 Added the new function, setArguments(), that invokes Qt |
|
166 Assistant in different modes. |
|
167 |
|
168 - QAxBase |
|
169 Added the new function, asVariant(), that passes a COM |
|
170 object through dynamicCall(). |
|
171 |
|
172 - QAxBindable |
|
173 Added the new function, reportError(), that sends error |
|
174 information to the ActiveX client. |
|
175 |
|
176 - QColor |
|
177 Added the new static function, colorNames(), that retrieves a |
|
178 list of all color names known to Qt. |
|
179 |
|
180 - QDeepCopy |
|
181 Now also supports QDir, QFileInfo, and QStringList. |
|
182 |
|
183 - QDom |
|
184 Now has long and ulong support for setAttribute() and |
|
185 setAttributeNS(). |
|
186 |
|
187 - QFont |
|
188 Added the new properties: stretch and overline. Added the new |
|
189 function, resolve(), that copies unspecified attributes from |
|
190 one font to another. |
|
191 |
|
192 - QFontDataBase |
|
193 Added a new overload for families() that restricts the |
|
194 returned list to fonts supporting a specific QFont::Script, |
|
195 e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic. |
|
196 |
|
197 - QFontInfo / QFontMetrics |
|
198 Added new constructors that force the info and metrics objects |
|
199 to use a given QFont::Script. |
|
200 |
|
201 - QGLWidget |
|
202 Added a new constructor that takes a QGLContext |
|
203 parameter. Makes the undocumented setContext() obsolete. |
|
204 |
|
205 - QHeader |
|
206 Added getters for the sort indicator (sortIndicatorSection() |
|
207 and sortIndicatorOrder() ). |
|
208 |
|
209 - QImage |
|
210 Added a new overload for save() that writes to a given |
|
211 QIODevice*. |
|
212 |
|
213 - QListView |
|
214 Added tristate support to check list items |
|
215 (QCheckListItem::setTristate()). Added the new function, |
|
216 setSelectionAnchor(), to set the list view's selection anchor |
|
217 explicitly. |
|
218 |
|
219 - QLineEdit |
|
220 Added input masks: setInputMask(), inputMask(), and |
|
221 hasAcceptableInput(). Added new function selectionStart() |
|
222 which returns the index of the first selected character in the |
|
223 line edit. |
|
224 |
|
225 - QMacStyle |
|
226 Added customizable focus rectangle policy. |
|
227 |
|
228 - QMessageBox |
|
229 Added the new static function, question(), that complements |
|
230 the existing information(), warning() and fatal() functions. |
|
231 |
|
232 - QMotifDialog [Qt Motif Extension] |
|
233 Now has two distinct modes of operation: 1) it allows a Motif |
|
234 dialog to have a Qt parent, and 2) it allows a Qt dialog to have |
|
235 a Motif parent. |
|
236 |
|
237 - QMYSQLDriver |
|
238 Better support for MySQL/embedded. |
|
239 |
|
240 - QPixmapCache |
|
241 Added the new function, remove(), to explicitly remove a |
|
242 pixmap from the cache. |
|
243 |
|
244 - QPrinter |
|
245 Added the new functions: setPrintRange(), printRange(), |
|
246 setOptionEnabled(), and optionEnabled(). For Windows only, |
|
247 added the new function, setWinPageSize(), that allows setting |
|
248 DEVMODE.dmPaperSize directly. |
|
249 |
|
250 - QPtrList |
|
251 Added STL-like iterators with begin(), end(), and erase(). |
|
252 |
|
253 - QScrollBar |
|
254 Maintains a user defined size policy when the direction |
|
255 changes. |
|
256 |
|
257 - QSplashScreen [new] |
|
258 This new widget class provides a splash screen to be shown |
|
259 during application startup. |
|
260 |
|
261 - QSplitter |
|
262 Added the new properties: opaqueResize, childrenCollapsible, |
|
263 and handleWidth. |
|
264 |
|
265 - QSqlError |
|
266 Added a couple of convenience functions: text(), which returns |
|
267 the concatenated database and driver texts. showMessage(), |
|
268 which will pop up a QMessageBox with the text that text() |
|
269 returns. |
|
270 |
|
271 - QSqlQuery |
|
272 Added overloads for the bindValue() call which makes it |
|
273 possible to specifiy what role a bound value should have: In, |
|
274 Out or InOut. |
|
275 |
|
276 - QSqlSelectCursor [new] |
|
277 This new QSqlCursor subclass provides browsing of general SQL |
|
278 SELECT statements. |
|
279 |
|
280 - QSqlDatabase |
|
281 Added overloaded tables() call which can return tables, views |
|
282 and/or system tables. |
|
283 |
|
284 - QPSQLDriver |
|
285 Calling tables() with no arguments will only return table names, |
|
286 instead of table and view names as in Qt 3.1. |
|
287 The new tables() call in QSqlDatabase can be used to get |
|
288 table and/or view names. |
|
289 |
|
290 - QString |
|
291 Added 64 bit support. Added the new functions: multiArg(), |
|
292 reserve(), capacity(), squeeze(). Added case insensitive |
|
293 overloads for startsWith() and endsWidth(). |
|
294 |
|
295 - QStringList |
|
296 Added the new function gres(). |
|
297 |
|
298 - QStyle |
|
299 Added support for toolbox, header, MDI frame, table grid line |
|
300 color, line edit password character, and message box question. |
|
301 |
|
302 - QSyntaxHighlighter |
|
303 Added the new function, currentParagraph(). |
|
304 |
|
305 - QTabWidget |
|
306 Added support for custom widgets to be placed beside |
|
307 the tab bar: setCornerWidget() and cornerWidget(). |
|
308 |
|
309 - QTextEdit |
|
310 In Log mode, added the new functions: setMaxLogLines() and |
|
311 maxLogLines(). Implemented insertAt() for LogText mode. |
|
312 |
|
313 - QThreadStorage [new] |
|
314 This new tool class provides per-thread data storage, also |
|
315 referred to as thread local storage or TLS. |
|
316 |
|
317 - QToolBox [new] |
|
318 This new widget class provides a column of tabbed widgets, one |
|
319 above the other, with the current page displayed below the |
|
320 current tab. |
|
321 |
|
322 - QVariant |
|
323 Added support for LongLong and ULongLong. |
|
324 |
|
325 - QWidget |
|
326 Added a new widget flag, WNoAutoErase, that combines the now |
|
327 obsolete WResizeNoErase and WRepaintNoErase flags. |