0
|
1 |
Qt 3.0 adds a lot of new features and improvements over the Qt 2.x
|
|
2 |
series. Some internals have undergone major redesign and new classes
|
|
3 |
and methods have been added.
|
|
4 |
|
|
5 |
We have tried to keep the API of Qt 3.0 as compatible as possible with
|
|
6 |
the Qt 2.x series. For most applications only minor changes will be
|
|
7 |
needed to compile and run them successfully using Qt 3.0.
|
|
8 |
|
|
9 |
One of the major new features that has been added in the 3.0 release
|
|
10 |
is a module allowing you to easily work with databases. The API is
|
|
11 |
platform independent and database neutral. This module is seamlessly
|
|
12 |
integrated into Qt Designer, greatly simplifying the process of
|
|
13 |
building database applications and using data aware widgets.
|
|
14 |
|
|
15 |
Other major new features include a component architecture allowing you
|
|
16 |
to build cross platform components, 'plugins' with Qt. You can use
|
|
17 |
your own and third party plugins your own applications. The Unicode
|
|
18 |
support of Qt 2.x has been greatly enhanced, it now includes full
|
|
19 |
support for scripts written from right to left (e.g. Arabic and
|
|
20 |
Hebrew) and also provides improved support for Asian languages.
|
|
21 |
|
|
22 |
Many new classes have been added to the Qt Library. Amongst them are
|
|
23 |
classes that provide a docking architecture (QDockArea/QDockWindow), a
|
|
24 |
powerful rich text editor (QTextEdit), a class to store and access
|
|
25 |
application settings (QSettings) and a class to create and communicate
|
|
26 |
with processes (QProcess).
|
|
27 |
|
|
28 |
Apart from the changes in the library itself a lot has been done to
|
|
29 |
make the development of Qt applications with Qt 3.0 even easier than
|
|
30 |
before. Two new applications have been added: Qt Linguist is a tool to
|
|
31 |
help you translate your application into different languages; Qt
|
|
32 |
Assistant is an easy to use help browser for the Qt documentation that
|
|
33 |
supports bookmarks and can search by keyword.
|
|
34 |
|
|
35 |
Another change concerns the Qt build system, which has been reworked
|
|
36 |
to make it a lot easier to port Qt to new platforms. You can use this
|
|
37 |
platform independent build system for your own applications.
|
|
38 |
|
|
39 |
|
|
40 |
The Qt Library
|
|
41 |
========================================
|
|
42 |
|
|
43 |
A large number of new features has been added to Qt 3.0. The following
|
|
44 |
list gives an overview of the most important new and changed aspects
|
|
45 |
of the Qt library. A full list of every new method follows the
|
|
46 |
overview.
|
|
47 |
|
|
48 |
|
|
49 |
Database support
|
|
50 |
----------------
|
|
51 |
|
|
52 |
One of the major new features in Qt 3.0 is the SQL module that
|
|
53 |
provides cross-platform access to SQL databases, making database
|
|
54 |
application programming with Qt seamless and portable. The API, built
|
|
55 |
with standard SQL, is database-neutral and software development is
|
|
56 |
independent of the underlying database.
|
|
57 |
|
|
58 |
A collection of tightly focused C++ classes are provided to give the
|
|
59 |
programmer direct access to SQL databases. Developers can send raw SQL
|
|
60 |
to the database server or have the Qt SQL classes generate SQL queries
|
|
61 |
automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are
|
|
62 |
available and writing new drivers is straightforward.
|
|
63 |
|
|
64 |
Tying the results of SQL queries to GUI components is fully supported
|
|
65 |
by Qt's SQL widgets. These classes include a tabular data widget
|
|
66 |
(for spreadsheet-like data presentation with in-place editing), a
|
|
67 |
form-based data browser (which provides data navigation and edit
|
|
68 |
functions) and a form-based data viewer (which provides read-only
|
|
69 |
forms). This framework can be extended by using custom field editors,
|
|
70 |
allowing for example, a data table to use custom widgets for in-place
|
|
71 |
editing. The SQL module fully supports Qt's signal/slots mechanism,
|
|
72 |
making it easy for developers to include their own data validation and
|
|
73 |
auditing code.
|
|
74 |
|
|
75 |
Qt Designer fully supports Qt's SQL module. All SQL widgets can be
|
|
76 |
laid out within Qt Designer, and relationships can be established
|
|
77 |
between controls visually. Many interactions can be defined purely in
|
|
78 |
terms of Qt's signals/slots mechanism directly in Qt Designer.
|
|
79 |
|
|
80 |
|
|
81 |
Component model - plugins
|
|
82 |
-------------------------
|
|
83 |
|
|
84 |
The QLibrary class provides a platform independent wrapper for runtime
|
|
85 |
loading of shared libraries. Access to the shared libraries uses a
|
|
86 |
COM-like interface. QPluginManager makes it trivial to implement
|
|
87 |
plugin support in applications. The Qt library is able to load
|
|
88 |
additional styles, database drivers and text codecs from plugins which
|
|
89 |
implement the relevant interfaces, e.g. QStyleFactoryInterface,
|
|
90 |
QSqlDriverInterface or QTextCodecInterface. It is possible to remove
|
|
91 |
unused components from the Qt library, and easy to extend any
|
|
92 |
application with 3rd party styles, database drivers or text codecs.
|
|
93 |
|
|
94 |
Qt Designer supports custom widgets in plugins, and will use the
|
|
95 |
widgets both when designing and previewing forms.
|
|
96 |
|
|
97 |
QComponentFactory makes it easy to register any kind of component in a
|
|
98 |
global database (e.g. the Windows Registry) and to use any registered
|
|
99 |
component.
|
|
100 |
|
|
101 |
|
|
102 |
Rich text engine and editor
|
|
103 |
---------------------------
|
|
104 |
|
|
105 |
The rich text engine originally introduced in Qt 2.0 has been further
|
|
106 |
optimized and extended to support editing. It allows editing formatted
|
|
107 |
text with different fonts, colors, paragraph styles, tables and
|
|
108 |
images. The editor supports different word wrap modes, command-based
|
|
109 |
undo/redo, multiple selections, drag and drop, and many other
|
|
110 |
features. The engine is highly optimized for proccesing and displaying
|
|
111 |
large documents quickly and efficiently.
|
|
112 |
|
|
113 |
|
|
114 |
Unicode
|
|
115 |
-------
|
|
116 |
|
|
117 |
Apart from the rich text engine, another new feature of Qt 3.0 that
|
|
118 |
relates to text handling is the greatly improved Unicode support. Qt
|
|
119 |
3.0 includes an implementation of the bidirectional algorithm (BiDi)
|
|
120 |
as defined in the Unicode standard and a shaping engine for Arabic,
|
|
121 |
which gives full native language support to Arabic and Hebrew speaking
|
|
122 |
people. At the same time the support for Asian languages has been
|
|
123 |
greatly enhanced.
|
|
124 |
|
|
125 |
The support is almost transparent for the developer using Qt to
|
|
126 |
develop their applications. This means that developers who developed
|
|
127 |
applications using Qt 2.x will automatically gain the full support for
|
|
128 |
these languages when switching to Qt 3.0. Developers can rely on their
|
|
129 |
application to work for people using writing systems different from
|
|
130 |
Latin1, without having to worry about the complexities involved with
|
|
131 |
these scripts, as Qt takes care of this automatically.
|
|
132 |
|
|
133 |
|
|
134 |
Docked and Floating Windows
|
|
135 |
---------------------------
|
|
136 |
|
|
137 |
Qt 3.0 introduces the concept of Dock Windows and Dock Areas. Dock
|
|
138 |
windows are widgets, that can be attached to, and detached from, dock
|
|
139 |
areas. The commonest kind of dock window is a tool bar. Any number of
|
|
140 |
dock windows may be placed in a dock area. A main window can have dock
|
|
141 |
areas, for example, QMainWindow provides four dock areas (top, left,
|
|
142 |
bottom, right) by default. The user can freely move dock windows and
|
|
143 |
place them at a convenient place in a dock area, or drag them out of
|
|
144 |
the application and have them float freely as top level windows in
|
|
145 |
their own right. Dock windows can also be minimized or hidden.
|
|
146 |
|
|
147 |
For developers, dock windows behave just like ordinary widgets. QToolbar
|
|
148 |
for example is now a specialized subclass of a dock window. The API
|
|
149 |
of QMainWindow and QToolBar is source compatible with Qt 2.x, so
|
|
150 |
existing code which uses these classes will continue to work.
|
|
151 |
|
|
152 |
|
|
153 |
Regular Expressions
|
|
154 |
-------------------
|
|
155 |
|
|
156 |
Qt has always provided regular expression support, but that support
|
|
157 |
was pretty much limited to what was required in common GUI control
|
|
158 |
elements such as file dialogs. Qt 3.0 introduces a new regular
|
|
159 |
expression engine that supports most of Perl's regex features and is
|
|
160 |
Unicode based. The most useful additions are support for parentheses
|
|
161 |
(capturing and non-capturing) and backreferences.
|
|
162 |
|
|
163 |
|
|
164 |
Storing application settings
|
|
165 |
----------------------------
|
|
166 |
|
|
167 |
Most programs will need to store some settings between runs, for
|
|
168 |
example, user selected fonts, colors and other preferences, or a list
|
|
169 |
of recently used files. The new QSettings class provides a platform
|
|
170 |
independent way to achieve this goal. The API makes it easy to store
|
|
171 |
and retrieve most of the basic data types used in Qt (such as basic
|
|
172 |
C++ types, strings, lists, colors, etc). The class uses the registry
|
|
173 |
on the Windows platform and traditional resource files on Unix.
|
|
174 |
|
|
175 |
|
|
176 |
Creating and controlling other processes
|
|
177 |
----------------------------------------
|
|
178 |
|
|
179 |
QProcess is a class that allows you to start other programs from
|
|
180 |
within a Qt application in a platform independent manner. It gives you
|
|
181 |
full control over the started program, for example you can redirect
|
|
182 |
the input and output of console applications.
|
|
183 |
|
|
184 |
|
|
185 |
Accessibility (not part of the beta1 release)
|
|
186 |
---------------------------------------------
|
|
187 |
|
|
188 |
Accessibility means making software usable and accessible to a wide
|
|
189 |
range of users, including those with disabilities. In Qt 3.0, most
|
|
190 |
widgets provide accessibility information for assistive tools that can
|
|
191 |
be used by a wide range of disabled users. Qt standard widgets like
|
|
192 |
buttons or range controls are fully supported. Support for complex
|
|
193 |
widgets, like e.g. QListView, is in development. Existing applications
|
|
194 |
that make use of standard widgets will become accessible just by using
|
|
195 |
Qt 3.0.
|
|
196 |
|
|
197 |
Qt uses the Active Accessibility infrastructure on Windows, and needs
|
|
198 |
the MSAA SDK, which is part of most platform SDKs. With improving
|
|
199 |
standardization of accessibility on other platforms, Qt will support
|
|
200 |
assistive technologies on other systems, too.
|
|
201 |
|
|
202 |
The accessibility API in Qt is not yet stable, which is why we decided
|
|
203 |
not to make it a part of the beta1 release.
|
|
204 |
|
|
205 |
|
|
206 |
XML Improvements
|
|
207 |
----------------
|
|
208 |
|
|
209 |
The XML framework introduced in Qt 2.2 has been vastly improved. Qt
|
|
210 |
2.2 already supported level 1 of the Document Object Model (DOM), a
|
|
211 |
W3C standard for accessing and modifying XML documents. Qt 3.0 has
|
|
212 |
added support for DOM Level 2 and XML namespaces.
|
|
213 |
|
|
214 |
The XML parser has been extended to allow incremental parsing of XML
|
|
215 |
documents. This allows you to start parsing the document directly
|
|
216 |
after the first parts of the data have arrived, and to continue
|
|
217 |
whenever new data is available. This is especially useful if the XML
|
|
218 |
document is read from a slow source, e.g. over the network, as it
|
|
219 |
allows the application to start working on the data at a very early
|
|
220 |
stage.
|
|
221 |
|
|
222 |
|
|
223 |
SVG support
|
|
224 |
-----------
|
|
225 |
|
|
226 |
SVG is a W3C standard for "Scalable Vector Graphics". Qt 3.0's SVG
|
|
227 |
support means that QPicture can optionally generate and import static
|
|
228 |
SVG documents. All the SVG features that have an equivalent in
|
|
229 |
QPainter are supported.
|
|
230 |
|
|
231 |
|
|
232 |
Multihead support
|
|
233 |
-----------------
|
|
234 |
|
|
235 |
Many professional applications, such as DTP and CAD software, are able
|
|
236 |
to display data on two or more monitors. In Qt 3.0 the QDesktopWidget
|
|
237 |
class provides the application with runtime information about the
|
|
238 |
number and geometry of the desktops on the different monitors and such
|
|
239 |
allows applications to efficiently use a multi-monitor setup.
|
|
240 |
|
|
241 |
The virtual desktop of Windows 98 and 2000 is supported, as well as
|
|
242 |
the traditional multi-screen and the newer Xinerama multihead setups
|
|
243 |
on X11.
|
|
244 |
|
|
245 |
|
|
246 |
X11 specific enhancements
|
|
247 |
-------------------------
|
|
248 |
|
|
249 |
Qt 3.0 now complies with the NET WM Specification, recently adopted
|
|
250 |
by KDE 2.0. This allows easy integration and proper execution with
|
|
251 |
desktop environments that support the NET WM specification.
|
|
252 |
|
|
253 |
The font handling on X11 has undergone major changes. QFont no longer
|
|
254 |
has a one-to-one relation with window system fonts. QFont is now a
|
|
255 |
logical font that can load multiple window system fonts to simplify
|
|
256 |
Unicode text display. This completely removes the burden of
|
|
257 |
changing/setting fonts for a specific locale/language from the
|
|
258 |
programmer. For end-users, any font can be used in any locale. For
|
|
259 |
example, a user in Norway will be able to see Korean text without
|
|
260 |
having to set their locale to Korean.
|
|
261 |
|
|
262 |
Qt 3.0 also supports the new render extension recently added to
|
|
263 |
XFree86. This adds support for anti aliased text and pixmaps with
|
|
264 |
alpha channel (semi transparency) on the systems that support the
|
|
265 |
rendering extension (at the moment XFree 4.0.3 and later).
|
|
266 |
|
|
267 |
|
|
268 |
Printing
|
|
269 |
--------
|
|
270 |
|
|
271 |
Printing support has been enhanced on all platforms. The QPrinter
|
|
272 |
class now supports setting a virtual resolution for the painting
|
|
273 |
process. This makes WYSIWYG printing trivial, and also allows you to
|
|
274 |
take full advantage of the high resolution of a printer when painting
|
|
275 |
on it.
|
|
276 |
|
|
277 |
The postscript driver built into Qt and used on Unix has been greatly
|
|
278 |
enhanced. It supports the embedding of true/open type and type1 fonts
|
|
279 |
into the document, and can correctly handle and display Unicode.
|
|
280 |
Support for fonts built into the printer has been enhanced and Qt now
|
|
281 |
knows about the most common printer fonts used for Asian languages.
|
|
282 |
|
|
283 |
|
|
284 |
QHttp
|
|
285 |
-----
|
|
286 |
|
|
287 |
This class provides a simple interface for HTTP downloads and uploads.
|
|
288 |
|
|
289 |
|
|
290 |
Compatibility with the Standard Template Library (STL)
|
|
291 |
------------------------------------------------------
|
|
292 |
|
|
293 |
Support for the C++ Standard Template Library has been added to the Qt
|
|
294 |
Template Library (QTL). The QTL classes now contain appropriate copy
|
|
295 |
constructors and typedefs so that they can be freely mixed with other
|
|
296 |
STL containers and algorithms. In addition, new member functions have
|
|
297 |
been added to QTL template classes which correspond to STL-style
|
|
298 |
naming conventions (e.g., push_back()).
|
|
299 |
|
|
300 |
|
|
301 |
Qt Designer
|
|
302 |
========================================
|
|
303 |
|
|
304 |
Qt Designer was a pure dialog editor in Qt 2.2 but has now been
|
|
305 |
extended to provide the full functionality of a GUI design tool.
|
|
306 |
|
|
307 |
This includes the ability to lay out main windows with menus and
|
|
308 |
toolbars. Actions can be edited within Qt Designer and then plugged
|
|
309 |
into toolbars and menu bars via drag and drop. Splitters can now be
|
|
310 |
used in a way similar to layouts to group widgets horizontally or
|
|
311 |
vertically.
|
|
312 |
|
|
313 |
In Qt 2.2, many of the dialogs created by Qt Designer had to be
|
|
314 |
subclassed to implement functionality beyond the predefined signal and
|
|
315 |
slot connections. Whilst the subclassing approach is still fully supported,
|
|
316 |
Qt Designer now offers an alternative: a plugin for editing
|
|
317 |
slots. The editor offers features such as syntax highlighting,
|
|
318 |
completion, parentheses matching and incremental search.
|
|
319 |
|
|
320 |
The functionality of Qt Designer can now be extended via plugins.
|
|
321 |
Using Qt Designer's interface or by implementing one of the provided
|
|
322 |
interfaces in a plugin, a two way communication between plugin and Qt
|
|
323 |
Designer can be established. This functionality is used to implement
|
|
324 |
plugins for custom widgets, so that they can be used as real widgets
|
|
325 |
inside the designer.
|
|
326 |
|
|
327 |
Basic support for project management has been added. This allows you
|
|
328 |
to read and edit *.pro files, add and remove files to/from the project
|
|
329 |
and do some global operations on the project. You can now open the
|
|
330 |
project file and have one-click access to all the *.ui forms in the
|
|
331 |
project.
|
|
332 |
|
|
333 |
In addition to generating code via uic, Qt Designer now supports the
|
|
334 |
dynamic creation of widgets directly from XML user interface
|
|
335 |
description files (*.ui files) at runtime. This eliminates the need of
|
|
336 |
recompiling your application when the GUI changes, and could be used
|
|
337 |
to enable your customers to do their own customizations. Technically,
|
|
338 |
the feature is provided by a new class, QWidgetFactory in the
|
|
339 |
QResource library.
|
|
340 |
|
|
341 |
|
|
342 |
Qt Linguist
|
|
343 |
========================================
|
|
344 |
|
|
345 |
Qt Linguist is a GUI utility to support translating the user-visible
|
|
346 |
text in applications written with Qt. It comes with two command-line
|
|
347 |
tools: lupdate and lrelease.
|
|
348 |
|
|
349 |
Translation of a Qt application is a three-step process:
|
|
350 |
|
|
351 |
1) Run lupdate to extract user-visible text from the C++ source
|
|
352 |
code of the Qt application, resulting in a translation source file
|
|
353 |
(a *.ts file).
|
|
354 |
2) Provide translations for the source texts in the *.ts file using
|
|
355 |
Qt Linguist.
|
|
356 |
3) Run lrelease to obtain a light-weight message file (a *.qm file)
|
|
357 |
from the *.ts file, which provides very fast lookup for released
|
|
358 |
applications.
|
|
359 |
|
|
360 |
Qt Linguist is a tool suitable for use by translators. Each
|
|
361 |
user-visible (source) text is characterized by the text itself, a
|
|
362 |
context (usually the name of the C++ class containing the text), and
|
|
363 |
an optional comment to help the translator. The C++ class name will
|
|
364 |
usually be the name of the relevant dialog, and the comment will often
|
|
365 |
contain instructions that describe how to navigate to the relevant
|
|
366 |
dialog.
|
|
367 |
|
|
368 |
You can create phrase books for Qt Linguist to provide common
|
|
369 |
translations to help ensure consistency and to speed up the
|
|
370 |
translation process. Whenever a translator navigates to a new text to
|
|
371 |
translate, Qt Linguist uses an intelligent algorithm to provide a list
|
|
372 |
of possible translations: the list is composed of relevant text from
|
|
373 |
any open phrase books and also from identical or similar text that has
|
|
374 |
already been translated.
|
|
375 |
|
|
376 |
Once a translation is complete it can be marked as "done"; such
|
|
377 |
translations are included in the *.qm file. Text that has not been
|
|
378 |
"done" is included in the *.qm file in its original form. Although Qt
|
|
379 |
Linguist is a GUI application with dock windows and mouse control,
|
|
380 |
toolbars, etc., it has a full set of keyboard shortcuts to make
|
|
381 |
translation as fast and efficient as possible.
|
|
382 |
|
|
383 |
When the Qt application that you're developing evolves (e.g. from
|
|
384 |
version 1.0 to version 1.1), the utility lupdate merges the source
|
|
385 |
texts from the new version with the previous translation source file,
|
|
386 |
reusing existing translations. In some typical cases, lupdate may
|
|
387 |
suggest translations. These translations are marked as unfinished, so
|
|
388 |
you can easily find and check them.
|
|
389 |
|
|
390 |
|
|
391 |
Qt Assistant
|
|
392 |
========================================
|
|
393 |
|
|
394 |
Due to the positive feedback we received about the help system built
|
|
395 |
into Qt Designer, we decided to offer this part as a separate
|
|
396 |
application called Qt Assistant. Qt Assistant can be used to browse
|
|
397 |
the Qt class documentation as well as the manuals for Qt Designer and
|
|
398 |
Qt Linguist. It offers index searching, a contents overview, bookmarks
|
|
399 |
history and incremental search. Qt Assistant is used by both Qt
|
|
400 |
Designer and Qt Linguist for browsing their help documentation.
|
|
401 |
|
|
402 |
|
|
403 |
QMake
|
|
404 |
========================================
|
|
405 |
|
|
406 |
To ease portability we now provide the qmake utility to replace tmake.
|
|
407 |
QMake is a C++ version of tmake which offers additional functionallity
|
|
408 |
that is difficult to reproduce in tmake. Qt uses qmake in its
|
|
409 |
build system and we have released it as free software.
|
|
410 |
|
|
411 |
|
|
412 |
Qt Functions
|
|
413 |
========================================
|
|
414 |
|
|
415 |
QAction
|
|
416 |
-------
|
|
417 |
|
|
418 |
All new functions:
|
|
419 |
void addedTo( QWidget *actionWidget, QWidget *container );
|
|
420 |
void addedTo( int index, QPopupMenu *menu );
|
|
421 |
|
|
422 |
QActionGroup
|
|
423 |
------------
|
|
424 |
|
|
425 |
New mode "uses drop down", where members are shown in a separate
|
|
426 |
subwidget such as a combobox or a submenu (enable with
|
|
427 |
setUsesDropDown(TRUE) )
|
|
428 |
|
|
429 |
All new functions:
|
|
430 |
void add(QAction*);
|
|
431 |
void addSeparator();
|
|
432 |
void addedTo( QWidget *actionWidget, QWidget *container, QAction *a );
|
|
433 |
void addedTo( int index, QPopupMenu *menu, QAction *a );
|
|
434 |
void setUsesDropDown( bool enable );
|
|
435 |
bool usesDropDown() const;
|
|
436 |
|
|
437 |
|
|
438 |
QApplication
|
|
439 |
------------
|
|
440 |
|
|
441 |
Added the setStyle(const QString&) overload that takes the name of the
|
|
442 |
style as its argument. This loads a style plugin via a QStyleFactory.
|
|
443 |
|
|
444 |
desktop() now returns a QDesktopWidget that provides access to
|
|
445 |
multi-head information. Prior to 3.0, it returned a normal QWidget.
|
|
446 |
|
|
447 |
New functions to define the library search path for plugins
|
|
448 |
(setLibraryPaths, ...).
|
|
449 |
|
|
450 |
New functions to define reverse layout for bidirectional languages
|
|
451 |
(setReverseLayout, ...).
|
|
452 |
|
|
453 |
All new functions:
|
|
454 |
bool hasPendingEvents()
|
|
455 |
|
|
456 |
void setLibraryPaths(const QStringList &);
|
|
457 |
QStringList libraryPaths();
|
|
458 |
void addLibraryPath(const QString &);
|
|
459 |
void removeLibraryPath(const QString &);
|
|
460 |
|
|
461 |
void setReverseLayout( bool b );
|
|
462 |
bool reverseLayout();
|
|
463 |
int horizontalAlignment( int align );
|
|
464 |
|
|
465 |
|
|
466 |
|
|
467 |
QClipboard
|
|
468 |
----------
|
|
469 |
|
|
470 |
On systems that support it, for example X11, QClipboard now
|
|
471 |
differentiates between the primary selection and the data in the clipboard.
|
|
472 |
|
|
473 |
All new functions:
|
|
474 |
bool supportsSelection() const;
|
|
475 |
bool ownsClipboard() const;
|
|
476 |
void setSelectionMode(bool enable);
|
|
477 |
bool selectionModeEnabled() const;
|
|
478 |
New signals:
|
|
479 |
void selectionChanged()
|
|
480 |
|
|
481 |
|
|
482 |
|
|
483 |
QCursor
|
|
484 |
-------
|
|
485 |
|
|
486 |
Now inherits Qt namespace. Enum values like ArrowCursor,
|
|
487 |
UpArrowCursor, CrossCursor etc. are now part of that namespace.
|
|
488 |
|
|
489 |
|
|
490 |
QDataStream
|
|
491 |
-----------
|
|
492 |
|
|
493 |
Added missing operators for Q_LONG and Q_ULONG
|
|
494 |
|
|
495 |
|
|
496 |
QDateTime / QDate / QTime
|
|
497 |
-------------------------
|
|
498 |
|
|
499 |
More sophisticated toString() function that takes a DateFormat, where
|
|
500 |
DateFormat can be either TextDate (the default), ISODate (ISO 8601) or
|
|
501 |
LocalDate (locale dependent).
|
|
502 |
|
|
503 |
All new functions:
|
|
504 |
QDate addMonths( int months ) const;
|
|
505 |
QDate addYears( int years ) const;
|
|
506 |
QDate fromString( const QString& s, Qt::DateFormat f = Qt::TextDate );
|
|
507 |
static QString shortMonthName( int month );
|
|
508 |
static QString longMonthName( int month );
|
|
509 |
static QString shortDayName( int weekday );
|
|
510 |
static QString longDayName( int weekday );
|
|
511 |
static void setShortMonthNames( const QStringList& names );
|
|
512 |
static void setLongMonthNames( const QStringList& names );
|
|
513 |
static void setShortDayNames( const QStringList& names );
|
|
514 |
static void setLongDayNames( const QStringList& names );
|
|
515 |
|
|
516 |
QDialog
|
|
517 |
-------
|
|
518 |
|
|
519 |
Merged with QSemiModal. Calling show() on a modal dialog will return
|
|
520 |
immediately, not enter a local event loop. Showing a modal dialog in
|
|
521 |
its own event loop is achieved using exec().
|
|
522 |
|
|
523 |
exec() is now a public slot.
|
|
524 |
|
|
525 |
Usability: For widgets supporting What's This help, QDialog
|
|
526 |
automatically offers a context menu containing a "What's This?" entry.
|
|
527 |
|
|
528 |
|
|
529 |
QEvent
|
|
530 |
------
|
|
531 |
|
|
532 |
Mouse events are now propagated up to the toplevel widget if no widget
|
|
533 |
accepts them and no event filter filters them out. In previous Qt
|
|
534 |
versions, only key events were propagated.
|
|
535 |
|
|
536 |
All events carry a flag 'spontaneous' to determine whether the even
|
|
537 |
came from the outside or was generated by code within the
|
|
538 |
applications. Previously, only show and hide events had this flag.
|
|
539 |
|
|
540 |
Enter/Leave event generation has been fixed. Previously, a widget
|
|
541 |
received a leave event when the mouse pointer entered one of its
|
|
542 |
children. This was both unnatural and contradictive to the
|
|
543 |
documentation.
|
|
544 |
|
|
545 |
QWheelevent now carries an orientation to differentiate between
|
|
546 |
horizontal and vertical wheels.
|
|
547 |
|
|
548 |
QFocusEvent: new reason 'Backtab' (previously only 'Tab' was
|
|
549 |
available). This makes it possible to discover from what direction on
|
|
550 |
the tab-focus chain the widget was entered.
|
|
551 |
|
|
552 |
New events: QContextMenuEvent, QIMEvent
|
|
553 |
|
|
554 |
|
|
555 |
QFile
|
|
556 |
-----
|
|
557 |
|
|
558 |
Ported from int to Q_LONG to prepare for large file sizes on 64 bit
|
|
559 |
systems.
|
|
560 |
|
|
561 |
Filter handling made more flexible.
|
|
562 |
|
|
563 |
|
|
564 |
QFileDialog
|
|
565 |
-----------
|
|
566 |
|
|
567 |
All new Functions:
|
|
568 |
void setSelectedFilter( const QString& );
|
|
569 |
void setSelectedFilter( int );
|
|
570 |
New signals:
|
|
571 |
void filesSelected( const QStringList& );
|
|
572 |
void filterSelected( const QString& );
|
|
573 |
|
|
574 |
If you try to specify an invalid file when using getOpenFileName(s), an error message
|
|
575 |
will appear and the file will not be accepted. In 2.x, this function behaved differently
|
|
576 |
because users were using getOpenFileName(s) as a Save File Dialog; you should use
|
|
577 |
getSaveFileName() when you require a Save File Dialog.
|
|
578 |
|
|
579 |
|
|
580 |
QCanvas Module
|
|
581 |
--------------
|
|
582 |
|
|
583 |
New classes:
|
|
584 |
QCanvasSpline - a multi-bezier spline
|
|
585 |
|
|
586 |
QCanvasItemList
|
|
587 |
void update();
|
|
588 |
|
|
589 |
QCanvas:
|
|
590 |
QRect rect() const;
|
|
591 |
void setUnchanged( const QRect& area );
|
|
592 |
void drawArea(const QRect&, QPainter* p, bool double_buffer);
|
|
593 |
void drawViewArea( QCanvasView* view, QPainter* p, const QRect& r, bool dbuf );
|
|
594 |
QRect changeBounds(const QRect& inarea);
|
|
595 |
|
|
596 |
QCanvasView:
|
|
597 |
const QWMatrix &worldMatrix() const;
|
|
598 |
const QWMatrix &inverseWorldMatrix() const;
|
|
599 |
void setWorldMatrix( const QWMatrix & );
|
|
600 |
QCanvasSprite:
|
|
601 |
int leftEdge() const;
|
|
602 |
int topEdge() const;
|
|
603 |
int rightEdge() const;
|
|
604 |
int bottomEdge() const;
|
|
605 |
int leftEdge(int nx) const;
|
|
606 |
int topEdge(int ny) const;
|
|
607 |
int rightEdge(int nx) const;
|
|
608 |
int bottomEdge(int ny) const;
|
|
609 |
|
|
610 |
QCanvasSprite can now be set to animate its frames without the need to
|
|
611 |
subclass.
|
|
612 |
|
|
613 |
|
|
614 |
QFont, QFontDatabase, QFontInfo, QFontMetrics
|
|
615 |
---------------------------------------------
|
|
616 |
|
|
617 |
The QFont::CharSet enum has been removed and replaced with the
|
|
618 |
QFont::Script enum. With this change, a QFont is not associated with a
|
|
619 |
specific character set. Instead, QFont uses Unicode Scripts for
|
|
620 |
loading fonts. On platforms where most fonts do not use the Unicode
|
|
621 |
encoding (currently only X11), multiple locale and character-set
|
|
622 |
dependent fonts can be loaded for the individual Unicode Scripts.
|
|
623 |
|
|
624 |
Another new feature of QFont is a much more flexible substitution
|
|
625 |
mechanism. Each family can have a list of appropriate substitutes. The
|
|
626 |
font substitution feature allows you to specify a list of substitute
|
|
627 |
fonts. Substitute fonts are used when a font cannot be loaded, or if
|
|
628 |
the specified font doesn't have a particular character (X11 only).
|
|
629 |
|
|
630 |
For example (on X11), you select the font Lucida, which doesn't have
|
|
631 |
Korean characters. For Korean text, you want to use the Mincho font
|
|
632 |
family. By adding Mincho to the list, any Korean characters not found
|
|
633 |
in Lucida will be used from Mincho. Because the font substitutions are
|
|
634 |
lists, you can also select multiple families, such as Song Ti (for use
|
|
635 |
with Chinese text).
|
|
636 |
|
|
637 |
QFontInfo and QFontMetrics had small API changes related to the
|
|
638 |
disappearance of QFont::CharSet. In terms of functionality, the
|
|
639 |
behavior of these classes is unchanged.
|
|
640 |
|
|
641 |
QFontDatabase had several API cleanups related to the disappearance of
|
|
642 |
QFont::CharSet. Most QFontDatabase member functions take one less
|
|
643 |
argument, yet compatibility functions still exist to keep old source
|
|
644 |
code working.
|
|
645 |
|
|
646 |
Family and style names returned from QFontDatabase are now processed
|
|
647 |
and formatted in a way that is suitable for display to users. Family
|
|
648 |
and foundry names are capitalized and foundry names are enclosed in
|
|
649 |
square brackets after the family name. For example, the Helvetica
|
|
650 |
font family might have 3 different foundries: Adobe, Cronyx and
|
|
651 |
Phaisarn. In 2.x, QFontDatabase listed them like this:
|
|
652 |
|
|
653 |
adobe-helvetica
|
|
654 |
cronyx-helvetica
|
|
655 |
phaisarn-helvetica
|
|
656 |
|
|
657 |
Starting with 3.0, QFontDatabase lists them like this:
|
|
658 |
|
|
659 |
Helvetica [Adobe]
|
|
660 |
Helvetica [Cronyx]
|
|
661 |
Helvetica [Phaisarn]
|
|
662 |
|
|
663 |
|
|
664 |
QFrame
|
|
665 |
------
|
|
666 |
|
|
667 |
Two new frame shapes for more sophisticated style features:
|
|
668 |
MenuBarPanel and ToolBarPanel.
|
|
669 |
|
|
670 |
|
|
671 |
QGrid
|
|
672 |
-----
|
|
673 |
|
|
674 |
The member type
|
|
675 |
|
|
676 |
enum Direction { Horizontal, Vertical };
|
|
677 |
|
|
678 |
has been eliminated, as it is redundant: use Qt::Orientation instead.
|
|
679 |
Old code referring to QGrid::Horizontal or QGrid::Vertical will still
|
|
680 |
work, as QGrid counts Qt among its ancestors.
|
|
681 |
|
|
682 |
|
|
683 |
QGroupBox
|
|
684 |
---------
|
|
685 |
|
|
686 |
More functionality of the built-in layout is exposed:
|
|
687 |
|
|
688 |
int insideMargin() const;
|
|
689 |
int insideSpacing() const;
|
|
690 |
void setInsideMargin( int m );
|
|
691 |
void setInsideSpacing( int s );
|
|
692 |
|
|
693 |
|
|
694 |
QHeader
|
|
695 |
-------
|
|
696 |
|
|
697 |
New property: bool stretching
|
|
698 |
|
|
699 |
New functions:
|
|
700 |
bool isStretchEnabled( int section );
|
|
701 |
void setStretchEnabled( bool b, int section );
|
|
702 |
|
|
703 |
|
|
704 |
QIconSet
|
|
705 |
--------
|
|
706 |
|
|
707 |
In addition to the mode - which can be either Normal, Disabled or
|
|
708 |
Active - QIconSet now supports different pixmaps for a state, i.e. On
|
|
709 |
or Off. The functions pixmap() and setPixmap() have been extended
|
|
710 |
accordingly.
|
|
711 |
|
|
712 |
The default constructor no longer initializes the iconset to
|
|
713 |
contain a null pixmap. QIconSet::isNull() returns TRUE for un-
|
|
714 |
initialized iconsets, and pixmap() still returns a null pixmap for
|
|
715 |
pixmaps that couldn't be generated.
|
|
716 |
|
|
717 |
|
|
718 |
QIconView
|
|
719 |
---------
|
|
720 |
|
|
721 |
Extended findItem() to support ComparisonFlags. Support for
|
|
722 |
soft-hyphens when doing word wrap.
|
|
723 |
|
|
724 |
New signal:
|
|
725 |
contextMenuRequested( QIconViewItem*, const QPoint& pos);
|
|
726 |
|
|
727 |
|
|
728 |
QIconViewItem
|
|
729 |
-------------
|
|
730 |
|
|
731 |
Added support for explicit rtti.
|
|
732 |
|
|
733 |
New function:
|
|
734 |
int rtti() const;
|
|
735 |
|
|
736 |
|
|
737 |
|
|
738 |
QListBox
|
|
739 |
--------
|
|
740 |
|
|
741 |
Extended findItem() to support ComparisonFlags.
|
|
742 |
|
|
743 |
New signal:
|
|
744 |
void contextMenu( QListBoxItem *, const QPoint & );
|
|
745 |
|
|
746 |
|
|
747 |
QListBoxItem
|
|
748 |
------------
|
|
749 |
|
|
750 |
Added support for explicit rtti.
|
|
751 |
|
|
752 |
New function:
|
|
753 |
int rtti() const;
|
|
754 |
|
|
755 |
|
|
756 |
|
|
757 |
QListView
|
|
758 |
---------
|
|
759 |
|
|
760 |
It was never really hard to implement drag and drop with QListView,
|
|
761 |
but since many applications demand this functionality today, we
|
|
762 |
decided to add it to the listview itself.
|
|
763 |
|
|
764 |
In addition, in-place editing and per-item tooltips have been added.
|
|
765 |
Extended findItem() to support ComparisonFlags
|
|
766 |
|
|
767 |
New properties:
|
|
768 |
bool showToolTips
|
|
769 |
ResizeMode resizeMode
|
|
770 |
|
|
771 |
New signals:
|
|
772 |
contextMenuRequested( QIconViewItem*, const QPoint& pos);
|
|
773 |
void dropped( QDropEvent *e );
|
|
774 |
void itemRenamed( QListViewItem *item, int col, const QString & );
|
|
775 |
void itemRenamed( QListViewItem *item, int col );
|
|
776 |
|
|
777 |
New functions:
|
|
778 |
void setResizeMode( ResizeMode m );
|
|
779 |
ResizeMode resizeMode() const;
|
|
780 |
QDragObject *dragObject();
|
|
781 |
void startDrag();
|
|
782 |
void startRename();
|
|
783 |
|
|
784 |
|
|
785 |
QListViewItem
|
|
786 |
-------------
|
|
787 |
|
|
788 |
Added support for explicit rtti.
|
|
789 |
|
|
790 |
New functions:
|
|
791 |
void setDragEnabled( bool allow );
|
|
792 |
void setDropEnabled( bool allow );
|
|
793 |
bool dragEnabled() const;
|
|
794 |
bool dropEnabled() const;
|
|
795 |
bool acceptDrop( const QMimeSource *mime ) const;
|
|
796 |
void setVisible( bool b );
|
|
797 |
bool isVisible() const;
|
|
798 |
void setRenameEnabled( int col, bool b );
|
|
799 |
bool renameEnabled( int col ) const;
|
|
800 |
void startRename( int col );
|
|
801 |
void setEnabled( bool b );
|
|
802 |
bool isEnabled() const;
|
|
803 |
int rtti() const;
|
|
804 |
|
|
805 |
void dropped( QDropEvent *e );
|
|
806 |
void dragEntered();
|
|
807 |
void dragLeft();
|
|
808 |
void okRename( int col );
|
|
809 |
void cancelRename( int col );
|
|
810 |
|
|
811 |
|
|
812 |
QLabel
|
|
813 |
------
|
|
814 |
|
|
815 |
In addition to text, rich text, pixmaps and movies, QLabel can now
|
|
816 |
display QPicture vector graphics.
|
|
817 |
|
|
818 |
New functions:
|
|
819 |
|
|
820 |
QPicture *picture() const;
|
|
821 |
void setPicture( const QPicture & );
|
|
822 |
|
|
823 |
|
|
824 |
QLineEdit
|
|
825 |
---------
|
|
826 |
|
|
827 |
New property: bool dragEnabled
|
|
828 |
|
|
829 |
New signal:
|
|
830 |
contextMenuRequested( QIconViewItem*, const QPoint& pos);
|
|
831 |
|
|
832 |
New functions:
|
|
833 |
void cursorForward( bool mark, int steps = 1 );
|
|
834 |
void cursorBackward( bool mark, int steps = 1 );
|
|
835 |
void cursorWordForward( bool mark );
|
|
836 |
void cursorWordBackward( bool mark );
|
|
837 |
bool dragEnabled();
|
|
838 |
void setDragEnabled( bool b );
|
|
839 |
|
|
840 |
|
|
841 |
QMainWindow
|
|
842 |
-----------
|
|
843 |
|
|
844 |
Added a dock window architecture. Previous versions of QMainWindow
|
|
845 |
could only deal with toolbars, now they handle generalized dock
|
|
846 |
windows. QToolBar inherits QDockWindow.
|
|
847 |
|
|
848 |
|
|
849 |
New property:
|
|
850 |
bool dockWindowsMovable;
|
|
851 |
|
|
852 |
New signals:
|
|
853 |
void dockWindowPositionChanged( QDockWindow * );
|
|
854 |
|
|
855 |
New functions:
|
|
856 |
void setDockEnabled( Dock dock, bool enable );
|
|
857 |
bool isDockEnabled( Dock dock ) const;
|
|
858 |
bool isDockEnabled( QDockArea *area ) const;
|
|
859 |
void setDockEnabled( QDockWindow *tb, Dock dock, bool enable );
|
|
860 |
bool isDockEnabled( QDockWindow *tb, Dock dock ) const;
|
|
861 |
bool isDockEnabled( QDockWindow *tb, QDockArea *area ) const;
|
|
862 |
|
|
863 |
void addDockWindow( QDockWindow *, Dock = Top, bool newLine = FALSE );
|
|
864 |
void addDockWindow( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE );
|
|
865 |
void moveDockWindow( QDockWindow *, Dock = Top );
|
|
866 |
void moveDockWindow( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 );
|
|
867 |
void removeDockWindow( QDockWindow * );
|
|
868 |
|
|
869 |
QDockArea *dockingArea( const QPoint &p );
|
|
870 |
QDockArea *leftDock() const;
|
|
871 |
QDockArea *rightDock() const;
|
|
872 |
QDockArea *topDock() const;
|
|
873 |
QDockArea *bottomDock() const;
|
|
874 |
|
|
875 |
bool isCustomizable() const;
|
|
876 |
bool appropriate( QDockWindow *dw ) const;
|
|
877 |
QPopupMenu *createDockWindowMenu( DockWindows dockWindows = AllDockWindows ) const;
|
|
878 |
|
|
879 |
bool showDockMenu( const QPoint &globalPos );
|
|
880 |
|
|
881 |
|
|
882 |
QMetaObject
|
|
883 |
-----------
|
|
884 |
|
|
885 |
###TODO
|
|
886 |
|
|
887 |
|
|
888 |
QMimeSourceFactory
|
|
889 |
------------------
|
|
890 |
|
|
891 |
New static functions:
|
|
892 |
QMimeSourceFactory* takeDefaultFactory();
|
|
893 |
static void addFactory( QMimeSourceFactory *f );
|
|
894 |
|
|
895 |
|
|
896 |
QNetworkProtocol
|
|
897 |
----------------
|
|
898 |
|
|
899 |
Spelling fix in Error::ErrListChildren enum.
|
|
900 |
|
|
901 |
|
|
902 |
QRegExp
|
|
903 |
-------
|
|
904 |
|
|
905 |
QRegExp now has a more complete regular expression engine similar to
|
|
906 |
Perl's, with full Unicode and backreference support.
|
|
907 |
|
|
908 |
New functions:
|
|
909 |
bool minimal() const;
|
|
910 |
void setMinimal( bool minimal );
|
|
911 |
bool exactMatch( const QString& str );
|
|
912 |
bool exactMatch( const QString& str ) const;
|
|
913 |
int search( const QString& str, int start = 0 );
|
|
914 |
int search( const QString& str, int start = 0 ) const;
|
|
915 |
int searchRev( const QString& str, int start = -1 );
|
|
916 |
int searchRev( const QString& str, int start = -1 ) const;
|
|
917 |
int matchedLength();
|
|
918 |
QStringList capturedTexts();
|
|
919 |
QString cap( int nth = 0 );
|
|
920 |
int pos( int nth = 0 );
|
|
921 |
|
|
922 |
|
|
923 |
QSessionManager
|
|
924 |
---------------
|
|
925 |
|
|
926 |
Renamed the misnamed setProperty() overloads to setManagerProperty()
|
|
927 |
to resolve the conflict with the now virtual QObject::setProperty().
|
|
928 |
|
|
929 |
|
|
930 |
QString
|
|
931 |
-------
|
|
932 |
|
|
933 |
New functions:
|
|
934 |
bool endsWith( const QString & );
|
|
935 |
int similarityWith( const QString & );
|
|
936 |
|
|
937 |
### TODO
|
|
938 |
|
|
939 |
QStyle
|
|
940 |
------
|
|
941 |
|
|
942 |
### TODO
|
|
943 |
|
|
944 |
QTabBar
|
|
945 |
-------
|
|
946 |
|
|
947 |
The extended QTabWidget support in Qt Designer made two more
|
|
948 |
functions handy to have:
|
|
949 |
QTab * tabAt( int ) const;
|
|
950 |
int indexOf( int ) const;
|
|
951 |
|
|
952 |
|
|
953 |
|
|
954 |
QToolBar
|
|
955 |
--------
|
|
956 |
|
|
957 |
Inherits QDockWindow now, previously only QWidget.
|
|
958 |
|
|
959 |
|
|
960 |
QToolButton
|
|
961 |
-----------
|
|
962 |
|
|
963 |
New property:
|
|
964 |
QIconSet iconSet
|
|
965 |
|
|
966 |
New functions:
|
|
967 |
QIconSet iconSet() const;
|
|
968 |
virtual void setIconSet( const QIconSet & );
|
|
969 |
|
|
970 |
QWidget
|
|
971 |
-------
|
|
972 |
|
|
973 |
New functions:
|
|
974 |
|
|
975 |
const QColor & eraseColor() const;
|
|
976 |
virtual void setEraseColor( const QColor & );
|
|
977 |
const QPixmap * erasePixmap() const;
|
|
978 |
virtual void setErasePixmap( const QPixmap & );
|
|
979 |
|
|
980 |
|
|
981 |
|
|
982 |
QWizard
|
|
983 |
-------
|
|
984 |
|
|
985 |
New property: QString titleFont
|
|
986 |
|
|
987 |
New functions:
|
|
988 |
QFont titleFont() const;
|
|
989 |
void setTitleFont( const QFont & );
|
|
990 |
int indexOf( QWidget* ) const;
|
|
991 |
|
|
992 |
|
|
993 |
QWMatrix
|
|
994 |
--------
|
|
995 |
|
|
996 |
New function:
|
|
997 |
bool isIdentity() const;
|
|
998 |
|
|
999 |
|
|
1000 |
QGL Module
|
|
1001 |
----------
|
|
1002 |
|
|
1003 |
QGLWidget
|
|
1004 |
New functions:
|
|
1005 |
QGLFormat requestedFormat() const;
|
|
1006 |
QImage grabFrameBuffer( bool withAlpha = FALSE );
|
|
1007 |
|
|
1008 |
|
|
1009 |
QWorkspace Module
|
|
1010 |
-----------------
|
|
1011 |
|
|
1012 |
A new property scrollBarsEnabled makes it possible to add on-demand
|
|
1013 |
scrollbars to the workspace. We define this property in Qt Designer to
|
|
1014 |
make designing forms larger than the available space on the desktop
|
|
1015 |
more comfortable.
|
|
1016 |
|
|
1017 |
New property:
|
|
1018 |
bool scrollBarsEnabled
|
|
1019 |
|
|
1020 |
|
|
1021 |
QXML Module
|
|
1022 |
-----------
|
|
1023 |
Many new functions have been added:
|
|
1024 |
QDomImplementation
|
|
1025 |
QDomDocumentType createDocumentType( const QString& qName, const QString& publicId, const QString& systemId );
|
|
1026 |
QDomDocument createDocument( const QString& nsURI, const QString& qName, const QDomDocumentType& doctype );
|
|
1027 |
QDomNode
|
|
1028 |
QDomNode insertBefore( const QDomNode& newChild, const QDomNode& refChild );
|
|
1029 |
QDomNode insertAfter( const QDomNode& newChild, const QDomNode& refChild );
|
|
1030 |
QDomNode replaceChild( const QDomNode& newChild, const QDomNode& oldChild );
|
|
1031 |
QDomNode removeChild( const QDomNode& oldChild );
|
|
1032 |
QDomNode appendChild( const QDomNode& newChild );
|
|
1033 |
bool hasChildNodes() const;
|
|
1034 |
QDomNode cloneNode( bool deep = TRUE ) const;
|
|
1035 |
void normalize();
|
|
1036 |
bool isSupported( const QString& feature, const QString& version ) const;
|
|
1037 |
QString namespaceURI() const;
|
|
1038 |
QString localName() const;
|
|
1039 |
bool hasAttributes() const;
|
|
1040 |
QDomDocument
|
|
1041 |
bool setContent( const QCString& text, bool namespaceProcessing=FALSE );
|
|
1042 |
bool setContent( const QByteArray& text, bool namespaceProcessing=FALSE );
|
|
1043 |
bool setContent( const QString& text, bool namespaceProcessing=FALSE );
|
|
1044 |
bool setContent( QIODevice* dev, bool namespaceProcessing=FALSE );
|
|
1045 |
QDomNamedNodeMap
|
|
1046 |
QDomNode namedItemNS( const QString& nsURI, const QString& localName ) const;
|
|
1047 |
QDomNode setNamedItemNS( const QDomNode& newNode );
|
|
1048 |
QDomNode removeNamedItemNS( const QString& nsURI, const QString& localName );
|
|
1049 |
|
|
1050 |
QDomElement
|
|
1051 |
QString attributeNS( const QString nsURI, const QString& localName, const QString& defValue ) const;
|
|
1052 |
void setAttributeNS( const QString nsURI, const QString& qName, const QString& value );
|
|
1053 |
void setAttributeNS( const QString nsURI, const QString& qName, int value );
|
|
1054 |
void setAttributeNS( const QString nsURI, const QString& qName, uint value );
|
|
1055 |
void setAttributeNS( const QString nsURI, const QString& qName, double value );
|
|
1056 |
void removeAttributeNS( const QString& nsURI, const QString& localName );
|
|
1057 |
QDomAttr attributeNodeNS( const QString& nsURI, const QString& localName );
|
|
1058 |
QDomAttr setAttributeNodeNS( const QDomAttr& newAttr );
|
|
1059 |
QDomNodeList elementsByTagNameNS( const QString& nsURI, const QString& localName ) const;
|
|
1060 |
bool hasAttributeNS( const QString& nsURI, const QString& localName ) const;
|
|
1061 |
|
|
1062 |
|
|
1063 |
QXmlAttributes
|
|
1064 |
void clear();
|
|
1065 |
void append( const QString &qName, const QString &uri, const QString &localPart, const QString &value );
|
|
1066 |
|
|
1067 |
QXmlInputSource:
|
|
1068 |
void setData( const QByteArray& dat );
|
|
1069 |
void fetchData();
|
|
1070 |
QString data();
|
|
1071 |
QChar next();
|
|
1072 |
void reset();
|
|
1073 |
QString fromRawData( const QByteArray &data, bool beginning = FALSE );
|
|
1074 |
|
|
1075 |
QXmlSimpleReader:
|
|
1076 |
bool parse( const QXmlInputSource& input, bool incremental );
|
|
1077 |
bool parseContinue();
|
|
1078 |
|
|
1079 |
QXmlEntityResolver:
|
|
1080 |
bool startEntity( const QString& name );
|
|
1081 |
bool endEntity( const QString& name );
|
|
1082 |
|
|
1083 |
|
|
1084 |
|
|
1085 |
New classes
|
|
1086 |
-----------
|
|
1087 |
|
|
1088 |
QAquaStyle (only on MacOS X)
|
|
1089 |
QCleanupHandler
|
|
1090 |
QComponentFactory
|
|
1091 |
QComponentFactoryInterface
|
|
1092 |
QComponentServerInterface
|
|
1093 |
QContextMenuEvent
|
|
1094 |
QDesktopWidget
|
|
1095 |
QDockArea
|
|
1096 |
QDockWindow
|
|
1097 |
QErrorMessage
|
|
1098 |
QFeatureListInterface
|
|
1099 |
QHttp [network]
|
|
1100 |
QInterfaceListInterface
|
|
1101 |
QInterfacePtr
|
|
1102 |
QIMEvent
|
|
1103 |
QLibrary
|
|
1104 |
QLibraryInterface
|
|
1105 |
QStyleFactory
|
|
1106 |
QStyleInterface
|
|
1107 |
QTextCodecInterface
|
|
1108 |
QUnknownInterface
|
|
1109 |
QUuid
|
|
1110 |
QRegExpValidator
|
|
1111 |
QTextEdit
|
|
1112 |
|
|
1113 |
|
|
1114 |
Renamed Classes
|
|
1115 |
---------------
|
|
1116 |
|
|
1117 |
QArray has been renamed QMemArray
|
|
1118 |
QCollection has been renamed QPtrCollection
|
|
1119 |
QList has been renamed QPtrList
|
|
1120 |
QListIterator has been renamed QPtrListIterator
|
|
1121 |
QQueue has been renamed QPtrQueue
|
|
1122 |
QStack has been renamed QPtrStack
|
|
1123 |
QVector has been renamed QPtrVector
|
|
1124 |
|
|
1125 |
The include file names have changed accordingly (e.g., <qmemarray.h>).
|
|
1126 |
|
|
1127 |
|
|
1128 |
New Modules
|
|
1129 |
-----------
|
|
1130 |
|
|
1131 |
SQL
|
|
1132 |
QDataBrowser
|
|
1133 |
QDataTable
|
|
1134 |
QDataView
|
|
1135 |
QDateTimeEdit
|
|
1136 |
QEditFactory
|
|
1137 |
|
|
1138 |
|
|
1139 |
Obsolete classes
|
|
1140 |
----------------
|
|
1141 |
|
|
1142 |
QSemiModal, use QDialog instead.
|
|
1143 |
QMultiLineEdit, use QTextEdit instead.
|
|
1144 |
QTableView, use QScrollView or QTable instead.
|
|
1145 |
QAsyncIO, QDataSink, QDataSource, QDataPump and QIODeviceSource
|
|
1146 |
|
|
1147 |
|
|
1148 |
Obsolete functions
|
|
1149 |
------------------
|
|
1150 |
QActionGroup::insert( QAction * ), use QActionGroup::add( QAction* ) instead.
|
|
1151 |
QApplication::setWinStyleHighlightColor( const QColor &c ), use setPalette() instead
|
|
1152 |
QApplication::winStyleHighlightColor(), use palette() instead
|
|
1153 |
QDir::encodedEntryList( int filterSpec, int sortSpec ), use QDir::entryList() instead
|
|
1154 |
QDir::encodedEntryList( const QString &nameFilter, int filterSpec, int sortSpec ), use QDir::entryList() instead
|
|
1155 |
QMainWindow::addToolBar( QDockWindow *, Dock = Top, bool newLine = FALSE );
|
|
1156 |
QMainWindow::addToolBar( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE );
|
|
1157 |
QMainWindow::moveToolBar( QDockWindow *, Dock = Top );
|
|
1158 |
QMainWindow::moveToolBar( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 );
|
|
1159 |
QMainWindow::removeToolBar( QDockWindow * );
|
|
1160 |
QMainWindow::toolBarsMovable() const;
|
|
1161 |
QMainWindow::toolBars( Dock dock ) const;
|
|
1162 |
QMainWindow::lineUpToolBars( bool keepNewLines = FALSE );
|
|
1163 |
QRegExp::match( const QString& str, int index = 0, int *len = 0,
|
|
1164 |
bool indexIsStart = TRUE );
|
|
1165 |
QToolButton::setOnIconSet( const QIconSet & )
|
|
1166 |
QToolButton::setOffIconSet( const QIconSet & )
|
|
1167 |
QToolButton::onIconSet() const
|
|
1168 |
QToolButton::offIconSet() const
|
|
1169 |
QToolButton::setIconSet( const QIconSet & set, bool on )
|
|
1170 |
QToolButton::iconSet( bool on ) const
|
|
1171 |
QXmlInputSource::QXmlInputSource( QFile& file ), use QXmlInputSource( QIODevice *dev ) instead.
|
|
1172 |
QXmlInputSource::QXmlInputSource( QTextStream& stream ), use QXmlInputSource( QIODevice *dev ) instead.
|
|
1173 |
|
|
1174 |
Removed functions:
|
|
1175 |
QWidget::setFontPropagation
|
|
1176 |
QWidget::setPalettePropagation
|
|
1177 |
QMenuBar::setActItem
|
|
1178 |
QMenuBar::setWindowsAltMode
|
|
1179 |
QCheckListItem::paintBranches
|
|
1180 |
QString::visual
|
|
1181 |
QString::basicDirection
|
|
1182 |
QRegExp::find( const QString& str, int index ) const; - has been renamed QRegExp::search()
|
|
1183 |
QFont::charSet() const, not needed anymore
|
|
1184 |
QFont::setCharSet( QFont::CharSet ), not needed anymore
|
|
1185 |
QPushButton::upButton(), not relevant anymore
|
|
1186 |
QPushButton::downButton(), not relevant anymore
|
|
1187 |
QSpinBox::upButton(), not relevant anymore
|
|
1188 |
QSpinBox::downButton(), not relevant anymore
|
|
1189 |
|
|
1190 |
|
|
1191 |
Removed preprocessor directives
|
|
1192 |
-------------------------------
|
|
1193 |
|
|
1194 |
qcstring.h no longer contains the following defines:
|
|
1195 |
|
|
1196 |
#define strlen qstrlen
|
|
1197 |
#define strcpy qstrcpy
|
|
1198 |
#define strcmp qstrcmp
|
|
1199 |
#define strncmp qstrncmp
|
|
1200 |
#define stricmp qstricmp
|
|
1201 |
#define strnicmp qstrnicmp
|
|
1202 |
|
|
1203 |
These directives were meant to automagically replace calls to the
|
|
1204 |
above listed standard C functions with the equivalent Qt wrappers.
|
|
1205 |
The latter pre-check the input parameters for null pointers as those
|
|
1206 |
might cause crashes on some platforms.
|
|
1207 |
|
|
1208 |
Although convenient, this trick turned out to sometimes conflict with
|
|
1209 |
third-party code, or, simply be nullified by standard system and
|
|
1210 |
library headers depending on version and include order.
|
|
1211 |
|
|
1212 |
The name of some debugging macro variables has been changed.
|
|
1213 |
|
|
1214 |
DEBUG becomes QT_DEBUG
|
|
1215 |
NO_DEBUG becomes QT_NO_DEBUG
|
|
1216 |
NO_CHECK becomes QT_NO_CHECK
|
|
1217 |
CHECK_STATE becomes QT_CHECK_STATE
|
|
1218 |
CHECK_RANGE becomes QT_CHECK_RANGE
|
|
1219 |
CHECK_NULL becomes QT_CHECK_NULL
|
|
1220 |
CHECK_MATH becomes QT_CHECK_MATH
|
|
1221 |
|
|
1222 |
The name of some other debugging macro functions has also been changed
|
|
1223 |
but source compatibility should not be affected if the macro variable
|
|
1224 |
QT_CLEAN_NAMESPACE is not defined:
|
|
1225 |
|
|
1226 |
ASSERT becomes Q_ASSERT
|
|
1227 |
CHECK_PTR becomes Q_CHECK_PTR
|
|
1228 |
|
|
1229 |
For the record these undocumented macro variables that are not part of
|
|
1230 |
the API have been changed:
|
|
1231 |
|
|
1232 |
_OS_*_ becomes Q_OS_*
|
|
1233 |
_WS_*_ becomes Q_WS_*
|
|
1234 |
_CC_*_ becomes Q_CC_*
|
|
1235 |
|
|
1236 |
|
|
1237 |
[Qt 3.0]
|
|
1238 |
|