Wiki

Что нового в Qt 3.3

Jasmin Blanchette (перевод Racheengel)
Уже доступна Qt 3.3. Эта новая версия имеет множество улучшений по сравнению с Qt 3.2. В этой статье мы рассмотрим наиболее важные изменения; полный список изменений доступен здесь: www.trolltech.com/developer/changes/changes-3.3.0.html.

Новый класс QLocale

Класс QLocale служит для переводов число-в-строку и строка-в-число для разных языков. Например:

QLocale iranian(QLocale::Persian, QLocale::Iran);
QString s = iranian.toString(195);  // s == "<img src="http://www.crossplatform.ru/uploads/articles/qq09-195.png" tppabs="http://doc.trolltech.com/qq/qq09-195.png" alt="195"/>"
int n = iranian.toInt(s);           // n == 195
 
QLocale german(QLocale::German, QLocale::Germany);
QString s = german.toString(3.14);  // s == "3,14" (comma)
double d = german.toDouble(s);      // d == 3.14

Пользовательские установки региона по умолчанию используются вQString::sprintf() для регионально-зависимого числового вывода. Для QString::arg(), по умолчанию используется регион С, но это может быть переопределено использованием в синтаксисе %L: :

QLocale::setDefaultLocale(iranian);
s1 = QString("%1 cars").arg(195);   // s == "195 cars"
s2 = QString("%L1 cars").arg(195);  // s == "<img src="http://www.crossplatform.ru/uploads/articles/qq09-195.png" tppabs="http://doc.trolltech.com/qq/qq09-195.png" alt="195"/> cars"

Ожидается, что QLocale будет усовершенствован в дальнейшем в Qt 4 для поддержки прочих региональных категорий.

Улучшенная поддержка .NET

Оболочка ActiveQt была улучшена для работы в среде .NET. ActiveQt может быть использован как "мост" для экспортирования виджетов Qt и прочих компонентов через Microsoft COM.

Справочная документация по Qt была расширена с целью пояснить, как писать приложения Qt, взаимодействующие с .NET без потери переносимости. Она также поясняет, как использовать "ручной" подход с помощью расширений управления Microsoft в языке C++ - подход в стиле "это кое-как работает". Смотрите обзор "Использование объектов Qt в Microsoft .NET" для более детального пояснения.

Новые драйвера баз данных: Interbase и SQLite

Два новых драйвера баз данных были добавлены в модуль SQL: Interbase и SQLite. База данных SQLite включена в дистрибутив Qt 3.3 и может быть активирована указанием ключа -qt-sql-sqlite или -plugin-sql-sqlite в скрипте конфигурации под Unix. SQLite - это внутренняя база данных, не требующая отдельного сервера для работы. Модуль Interbase также работает с Firebird, открытой версией Interbase.

Прекомпилируемые заголовки

Средство qmake в Qt 3.3 позволяет вам указывать прекомпилируемые заголовки для Windows (MSVC), Mac OS X (GCC 3.3), и X11 (GCC 3.4). Дл их использования при компиляции вашего приложения Qt, добавьте PRECOMPILED_HEADER в ваш файл проекта: PRECOMPILED_HEADER = myfile.h

Для более детальной информации про использование прекомпилируемых заголовков, смотрите Руководство пользователя по qmake.

Расширения в оболочке ActiveQt

Оболочка ActiveQt , появившаяся в Qt 3.1, была значительно расширена в Qt 3.3.

  • Три новых класса, QAxScript, QAxScriptManager и QAxScriptEngine могут быть использованы для написания COM-объектов в приложениях Qt, используя Windows Script Host.
  • Две новые функции, QAxFactory::startServer() и QAxFactory::stopServer(), могут быть использованы для запуска и останова сервера ActiveQt во время выполнения программы.
  • Интерфейс ActiveX IClassFactory2 поддерживается для разработки лицензированных компонентов.
  • Специфическая для класса информация может быть указана прямо в описании класса C++ с использованием макроса Q_CLASSINFO(), чтобы контролировать, как объекты и управляющие элементы регистрируются и освобождаются. Доступны новые вспомогательные классы и макросы, упрощающие освобождать классы объектов; смотрите документацию по QAxServer.
  • Семантика QAxBase::setControl() была расширена для разрешения создания COM -объектов на удаленных машинах через DCOM, для создания элементов управления, требующих лицензионный ключ, а также для присоединения уже запущенных объектов. Имплементация QAxBase::dynamicCall() была улучшена для поддержки передачи значений параметров напрямую в строку функции.

Полупрозрачные окна

Была добавлена поддержка полупрозрачных элементов верхнего уровня для Mac OS X и Windows 2000/XP. Чтобы сделать элемент полупрозрачным, вызовите QWidget::setWindowOpacity() с указанием уровня прозрачности от 0.0 до 1.0, например:

 widget->setWindowOpacity(0.5);

Другие улучшения

  • Модуль network теперь поддерживает IPv6 в дополнение к IPv4.
  • Поддержка новых 64-разрядных платформ: Itanium на Linux (компилятор Intel) и Windows (MSVC и Intel).
  • Qt/Mac теперь поддерживает доступность и поддержку таблиц.
  • Qt/Embedded поддерживает графические драйвера SNAP от SciTech Software, давая доступ к драйверам ускорителя более чем для 150 графических чипсетов.
  • QCursor теперь имеет также форму BusyCursor, комбинирующую часы и стрелку
  • Классы Qt DOM теперь реентрабельны, если Qt собрана с поддержкой мультипоточности.


Copyright © 2004 Trolltech Торговые марки