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