| 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. |