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.
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.
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.
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.
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).
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.
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.
41 ========================================
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
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.
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.
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
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.
81 Component model - plugins
82 -------------------------
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.
94 Qt Designer supports custom widgets in plugins, and will use the
95 widgets both when designing and previewing forms.
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
102 Rich text engine and editor
103 ---------------------------
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.
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
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.
134 Docked and Floating Windows
135 ---------------------------
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.
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.
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.
164 Storing application settings
165 ----------------------------
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.
176 Creating and controlling other processes
177 ----------------------------------------
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.
185 Accessibility (not part of the beta1 release)
186 ---------------------------------------------
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
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.
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.
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.
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
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.
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.
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
246 X11 specific enhancements
247 -------------------------
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.
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.
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).
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
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.
287 This class provides a simple interface for HTTP downloads and uploads.
290 Compatibility with the Standard Template Library (STL)
291 ------------------------------------------------------
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()).
302 ========================================
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.
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
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.
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
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
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
343 ========================================
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.
349 Translation of a Qt application is a three-step process:
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
354 2) Provide translations for the source texts in the *.ts file using
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
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
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.
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.
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.
392 ========================================
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.
404 ========================================
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.
413 ========================================
419 void addedTo( QWidget *actionWidget, QWidget *container );
420 void addedTo( int index, QPopupMenu *menu );
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) )
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;
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.
444 desktop() now returns a QDesktopWidget that provides access to
445 multi-head information. Prior to 3.0, it returned a normal QWidget.
447 New functions to define the library search path for plugins
448 (setLibraryPaths, ...).
450 New functions to define reverse layout for bidirectional languages
451 (setReverseLayout, ...).
454 bool hasPendingEvents()
456 void setLibraryPaths(const QStringList &);
457 QStringList libraryPaths();
458 void addLibraryPath(const QString &);
459 void removeLibraryPath(const QString &);
461 void setReverseLayout( bool b );
462 bool reverseLayout();
463 int horizontalAlignment( int align );
470 On systems that support it, for example X11, QClipboard now
471 differentiates between the primary selection and the data in the clipboard.
474 bool supportsSelection() const;
475 bool ownsClipboard() const;
476 void setSelectionMode(bool enable);
477 bool selectionModeEnabled() const;
479 void selectionChanged()
486 Now inherits Qt namespace. Enum values like ArrowCursor,
487 UpArrowCursor, CrossCursor etc. are now part of that namespace.
493 Added missing operators for Q_LONG and Q_ULONG
496 QDateTime / QDate / QTime
497 -------------------------
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).
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 );
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().
523 exec() is now a public slot.
525 Usability: For widgets supporting What's This help, QDialog
526 automatically offers a context menu containing a "What's This?" entry.
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.
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.
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
545 QWheelevent now carries an orientation to differentiate between
546 horizontal and vertical wheels.
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.
552 New events: QContextMenuEvent, QIMEvent
558 Ported from int to Q_LONG to prepare for large file sizes on 64 bit
561 Filter handling made more flexible.
568 void setSelectedFilter( const QString& );
569 void setSelectedFilter( int );
571 void filesSelected( const QStringList& );
572 void filterSelected( const QString& );
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.
584 QCanvasSpline - a multi-bezier spline
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);
597 const QWMatrix &worldMatrix() const;
598 const QWMatrix &inverseWorldMatrix() const;
599 void setWorldMatrix( const QWMatrix & );
601 int leftEdge() 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;
610 QCanvasSprite can now be set to animate its frames without the need to
614 QFont, QFontDatabase, QFontInfo, QFontMetrics
615 ---------------------------------------------
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.
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).
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
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.
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
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:
657 Starting with 3.0, QFontDatabase lists them like this:
667 Two new frame shapes for more sophisticated style features:
668 MenuBarPanel and ToolBarPanel.
676 enum Direction { Horizontal, Vertical };
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.
686 More functionality of the built-in layout is exposed:
688 int insideMargin() const;
689 int insideSpacing() const;
690 void setInsideMargin( int m );
691 void setInsideSpacing( int s );
697 New property: bool stretching
700 bool isStretchEnabled( int section );
701 void setStretchEnabled( bool b, int section );
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
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.
721 Extended findItem() to support ComparisonFlags. Support for
722 soft-hyphens when doing word wrap.
725 contextMenuRequested( QIconViewItem*, const QPoint& pos);
731 Added support for explicit rtti.
741 Extended findItem() to support ComparisonFlags.
744 void contextMenu( QListBoxItem *, const QPoint & );
750 Added support for explicit rtti.
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.
764 In addition, in-place editing and per-item tooltips have been added.
765 Extended findItem() to support ComparisonFlags
769 ResizeMode resizeMode
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 );
778 void setResizeMode( ResizeMode m );
779 ResizeMode resizeMode() const;
780 QDragObject *dragObject();
788 Added support for explicit rtti.
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;
805 void dropped( QDropEvent *e );
808 void okRename( int col );
809 void cancelRename( int col );
815 In addition to text, rich text, pixmaps and movies, QLabel can now
816 display QPicture vector graphics.
820 QPicture *picture() const;
821 void setPicture( const QPicture & );
827 New property: bool dragEnabled
830 contextMenuRequested( QIconViewItem*, const QPoint& pos);
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 );
838 void setDragEnabled( bool b );
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.
850 bool dockWindowsMovable;
853 void dockWindowPositionChanged( QDockWindow * );
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;
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 * );
869 QDockArea *dockingArea( const QPoint &p );
870 QDockArea *leftDock() const;
871 QDockArea *rightDock() const;
872 QDockArea *topDock() const;
873 QDockArea *bottomDock() const;
875 bool isCustomizable() const;
876 bool appropriate( QDockWindow *dw ) const;
877 QPopupMenu *createDockWindowMenu( DockWindows dockWindows = AllDockWindows ) const;
879 bool showDockMenu( const QPoint &globalPos );
891 New static functions:
892 QMimeSourceFactory* takeDefaultFactory();
893 static void addFactory( QMimeSourceFactory *f );
899 Spelling fix in Error::ErrListChildren enum.
905 QRegExp now has a more complete regular expression engine similar to
906 Perl's, with full Unicode and backreference support.
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;
918 QStringList capturedTexts();
919 QString cap( int nth = 0 );
920 int pos( int nth = 0 );
926 Renamed the misnamed setProperty() overloads to setManagerProperty()
927 to resolve the conflict with the now virtual QObject::setProperty().
934 bool endsWith( const QString & );
935 int similarityWith( const QString & );
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;
957 Inherits QDockWindow now, previously only QWidget.
967 QIconSet iconSet() const;
968 virtual void setIconSet( const QIconSet & );
975 const QColor & eraseColor() const;
976 virtual void setEraseColor( const QColor & );
977 const QPixmap * erasePixmap() const;
978 virtual void setErasePixmap( const QPixmap & );
985 New property: QString titleFont
988 QFont titleFont() const;
989 void setTitleFont( const QFont & );
990 int indexOf( QWidget* ) const;
997 bool isIdentity() const;
1005 QGLFormat requestedFormat() const;
1006 QImage grabFrameBuffer( bool withAlpha = FALSE );
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
1018 bool scrollBarsEnabled
1023 Many new functions have been added:
1025 QDomDocumentType createDocumentType( const QString& qName, const QString& publicId, const QString& systemId );
1026 QDomDocument createDocument( const QString& nsURI, const QString& qName, const QDomDocumentType& doctype );
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;
1036 bool isSupported( const QString& feature, const QString& version ) const;
1037 QString namespaceURI() const;
1038 QString localName() const;
1039 bool hasAttributes() const;
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 );
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 );
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;
1065 void append( const QString &qName, const QString &uri, const QString &localPart, const QString &value );
1068 void setData( const QByteArray& dat );
1073 QString fromRawData( const QByteArray &data, bool beginning = FALSE );
1076 bool parse( const QXmlInputSource& input, bool incremental );
1077 bool parseContinue();
1080 bool startEntity( const QString& name );
1081 bool endEntity( const QString& name );
1088 QAquaStyle (only on MacOS X)
1091 QComponentFactoryInterface
1092 QComponentServerInterface
1098 QFeatureListInterface
1100 QInterfaceListInterface
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
1125 The include file names have changed accordingly (e.g., <qmemarray.h>).
1142 QSemiModal, use QDialog instead.
1143 QMultiLineEdit, use QTextEdit instead.
1144 QTableView, use QScrollView or QTable instead.
1145 QAsyncIO, QDataSink, QDataSource, QDataPump and QIODeviceSource
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.
1175 QWidget::setFontPropagation
1176 QWidget::setPalettePropagation
1177 QMenuBar::setActItem
1178 QMenuBar::setWindowsAltMode
1179 QCheckListItem::paintBranches
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
1191 Removed preprocessor directives
1192 -------------------------------
1194 qcstring.h no longer contains the following defines:
1196 #define strlen qstrlen
1197 #define strcpy qstrcpy
1198 #define strcmp qstrcmp
1199 #define strncmp qstrncmp
1200 #define stricmp qstricmp
1201 #define strnicmp qstrnicmp
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.
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.
1212 The name of some debugging macro variables has been changed.
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
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:
1226 ASSERT becomes Q_ASSERT
1227 CHECK_PTR becomes Q_CHECK_PTR
1229 For the record these undocumented macro variables that are not part of
1230 the API have been changed:
1232 _OS_*_ becomes Q_OS_*
1233 _WS_*_ becomes Q_WS_*
1234 _CC_*_ becomes Q_CC_*