Журнал LinuxFormat - перейти на главную

LXF72:Qt

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(no nspaces!)
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 
__TOC__
 
__TOC__
 +
 
== Qt 4 Open Source Edition ==
 
== Qt 4 Open Source Edition ==
''Как будет выглядеть рабочий стол следующего поколения KDE — 4.0? Выпуск компанией Trolltech четвертой версии Qt, своей основной разработки, позволяет '''Грэхэму Моррисону''' (Graham Morisson) поразмышлять над ожидаемым ходом событий.''
+
''Как будет выглядеть рабочий стол следующего поколения KDE — 4.0? Выпуск компанией Trolltech четвертой версии Qt, своей основной разработки, позволяет '''Грэхэму Моррисону''' (Graham Morisson) поразмышлять над ожидаемым ходом событий.''
  
Qt, разработанный компанией Trolltech – это библиотека для создания кроссплатформенных приложений, на
+
Qt, разработанный компанией Trolltech — это библиотека для создания кроссплатформенных приложений, на
которой построен KDE. Она полностью отвечает за внешний вид и восприятие среды KDE, равно как и за
+
которой построен KDE. Она полностью отвечает за внешний вид и восприятие среды KDE, равно как и за
разнообразие ее возможностей.
+
разнообразие ее возможностей.
  
Нет, Qt сама не определяет то, как должно выглядеть приложение, просто программа предоставляет
+
Нет, Qt сама не определяет то, как должно выглядеть приложение, просто программа предоставляет
инструментарий, с помощью которого все это можно спроектировать. Данный набор средств определяет, что
+
инструментарий, с помощью которого все это можно спроектировать. Данный набор средств определяет, что
возможно осуществить, именно поэтому выпуск новой версии Qt подразумевает появление множества новых
+
возможно осуществить, именно поэтому выпуск новой версии Qt подразумевает появление множества новых
возможностей для самой KDE.
+
возможностей для самой KDE.
  
Взаимосвязь с KDE – отдельный разговор, ведь Qt – это, прежде всего, отдельный и самостоятельный
+
Взаимосвязь с KDE — отдельный разговор, ведь Qt — это, прежде всего, отдельный и самостоятельный
продукт. Иногда легко забыть, что сам по себе Qt является кросс-платформенным интерфейсом для разработки
+
продукт. Иногда легко забыть, что сам по себе Qt является кросс-платформенным интерфейсом для разработки
программ, причем кроме версии для Linux, существуют GPL-версии для Mac OS X и Microsoft Windows.
+
программ, причем кроме версии для Linux, существуют GPL-версии для Mac OS X и Microsoft Windows.
  
 
=== Дизайнер интерфейсов ===
 
=== Дизайнер интерфейсов ===
Qt Designer поставляется с каждым релизом Qt и является инструментом визуального проектирования GUI.
+
Qt Designer поставляется с каждым релизом Qt и является инструментом визуального проектирования GUI.
Внешне он похож на интегрированную среду разработки, например, Eclipse. В недалеком прошлом даже
+
Внешне он похож на интегрированную среду разработки, например, Eclipse. В недалеком прошлом даже
планировалось встроить некоторые из его возможностей непосредственно в интегрированную среду
+
планировалось встроить некоторые из его возможностей непосредственно в интегрированную среду
разработки KDevelop.
+
разработки KDevelop.
  
В предыдущих версиях окно Qt Designer растягивалось на весь рабочего стола, но в этот раз Trolltech
+
В предыдущих версиях окно Qt Designer растягивалось на весь рабочего стола, но в этот раз Trolltech
решили внедрить несколько более своеобразных идей, поэтому рабочая область ограничена несколькими
+
решили внедрить несколько более своеобразных идей, поэтому рабочая область ограничена несколькими
«паркуемыми» (dockable) окнами. Тот же самый подход использует Gimp, и, несомненно, приложение
+
«паркуемыми» (dockable) окнами. Тот же самый подход использует Gimp, и, несомненно, приложение
становится более удобным в использовании.
+
становится более удобным в использовании.
  
Процесс разработки графического интерфейса пользователя не сильно изменился: вы все еще создаете
+
Процесс разработки графического интерфейса пользователя не сильно изменился: вы все еще создаете
пустой холст для вашего окна (при необходимости используя для этого встроенный мастер) и добавляете
+
пустой холст для вашего окна (при необходимости используя для этого встроенный мастер) и добавляете
графические элементы интерфейса («виджеты») из палитры или меню. Небольшие изменения заметны в том,
+
графические элементы интерфейса («виджеты») из палитры или меню. Небольшие изменения заметны в том,
что, при выборе элемента, курсор перетаскивает на холст именно изображение конечного элемента, чтобы
+
что, при выборе элемента, курсор перетаскивает на холст именно изображение конечного элемента, чтобы
можно было представить, как все будет выглядеть в реальности. Этот подход работает отлично, и вы
+
можно было представить, как все будет выглядеть в реальности. Этот подход работает отлично, и вы
можете с легкостью просмотреть палитру, чтобы найти наиболее подходящий для данного проекта элемент.
+
можете с легкостью просмотреть палитру, чтобы найти наиболее подходящий для данного проекта элемент.
  
Наиболее сильным изменениям в Qt Designer подвергся способ определения событий интерфейса. Qt
+
Наиболее сильным изменениям в Qt Designer подвергся способ определения событий интерфейса. Qt
использует систему сигналов и слотов, чтобы описать взаимодействие одного элемента с другим.
+
использует систему сигналов и слотов, чтобы описать взаимодействие одного элемента с другим.
Например, в момент изменения состояния кнопка-переключатель (radio-button) генерирует соответствующий
+
Например, в момент изменения состояния кнопка-переключатель (radio-button) генерирует соответствующий
сигнал, в данном случае – Toggle. Этот сигнал может быть связан со слотом на элементе, отвечающим за
+
сигнал, в данном случае — Toggle. Этот сигнал может быть связан со слотом на элементе, отвечающим за
переключение страниц – Tab. Каждая такая связь отображается в специальном редакторе сигналов и слотов,
+
переключение страниц — Tab. Каждая такая связь отображается в специальном редакторе сигналов и слотов,
но вы можете рассмотреть их непосредственно в графическом интерфейсе пользователя. Designer рисует
+
но вы можете рассмотреть их непосредственно в графическом интерфейсе пользователя. Designer рисует
линии между элементами, чтобы показать взаимодействие между ними (см. экранный снимок). Это, наряду 
+
линии между элементами, чтобы показать взаимодействие между ними (см. экранный снимок). Это, наряду
с усовершенствованным GUI, сделало создание пользовательских интерфейсов с помощью Qt Designer намного
+
с усовершенствованным GUI, сделало создание пользовательских интерфейсов с помощью Qt Designer намного
проще, чем в Qt3.
+
проще, чем в Qt3.
  
 
=== Обновленный API ===
 
=== Обновленный API ===
Qt Designer, безусловно, является полезной программой для разработки пользовательского интерфейса, но
+
Qt Designer, безусловно, является полезной программой для разработки пользовательского интерфейса, но
большинство из новых существенных особенностей Qt 4 коснулись именно API. С его помощью программисты
+
большинство из новых существенных особенностей Qt 4 коснулись именно API. С его помощью программисты
внедряют технологию Qt, обычно используя при этом язык программирования C++, и именно изменения в API
+
внедряют технологию Qt, обычно используя при этом язык программирования C++, и именно изменения в API
непосредственно влияют на то, как будет вести себя конечное приложение.
+
непосредственно влияют на то, как будет вести себя конечное приложение.
  
Самым заметным изменением в новом API является то, что единая в прошлом библиотека Qt теперь разбита
+
Самым заметным изменением в новом API является то, что единая в прошлом библиотека Qt теперь разбита
на десять меньших библиотек, например QtXML и QtSql. наиболее значимая из них — библиотека QtCore,
+
на десять меньших библиотек, например QtXML и QtSql. наиболее значимая из них — библиотека QtCore,
которая содержит многие из наиболее полезных возможностей Qt, но без какого-либо кода графического
+
которая содержит многие из наиболее полезных возможностей Qt, но без какого-либо кода графического
интерфейса. Если Вы когда-либо разрабатывали Qt-приложение, вы, должно быть, знаете, что огромный
+
интерфейса. Если Вы когда-либо разрабатывали Qt-приложение, вы, должно быть, знаете, что огромный
класс QApplication был тесно связан с GUI. Чтобы избавиться от этого ограничения, Trolltech разбила
+
класс QApplication был тесно связан с GUI. Чтобы избавиться от этого ограничения, Trolltech разбила
QApplication на два отдельных класса. Это означает, что вы, наконец, сможете использовать легендарные
+
QApplication на два отдельных класса. Это означает, что вы, наконец, сможете использовать легендарные
функции Qt для работы со строками и файлами без необходимости обременять ваше программное обеспечение
+
функции Qt для работы со строками и файлами без необходимости обременять ваше программное обеспечение
ненужным кодом для графического интерфейса пользователя.
+
ненужным кодом для графического интерфейса пользователя.
  
 
=== Легенда о Короле Артуре ===
 
=== Легенда о Короле Артуре ===
Когда Вы создаете приложение с графическим интерфейсом, знаете ли Вы, на что оно будет похоже?
+
Когда Вы создаете приложение с графическим интерфейсом, знаете ли Вы, на что оно будет похоже?
Наиболее ожидаемая особенность нового Qt имеет далеко не самое интересное название. Никаких «пылающих
+
Наиболее ожидаемая особенность нового Qt имеет далеко не самое интересное название. Никаких «пылающих
закатов над пирамидами» – средство визуализации Qt 4 названо совсем просто: Arthur. Такой вот ответ
+
закатов над пирамидами» — средство визуализации Qt 4 названо совсем просто: Arthur. Такой вот ответ
Qt на Cairo.
+
Qt на Cairo.
  
Arthur представляет собой обобщение подпрограмм визуализации Qt 3. Мало того, что это позволяет не
+
Arthur представляет собой обобщение подпрограмм визуализации Qt 3. Мало того, что это позволяет не
зависеть от аппаратных средств, это также означает, что система визуализации может быть ускорена при
+
зависеть от аппаратных средств, это также означает, что система визуализации может быть ускорена при
помощи «железа» с поддержкой OpenGL, аналогично Cairo, которая может быть ускорена при использовании
+
помощи «железа» с поддержкой OpenGL, аналогично Cairo, которая может быть ускорена при использовании
библиотеки Glitz.
+
библиотеки Glitz.
  
Вы можете видеть Arthur в действии во многих демонстрационных приложениях Qt. Наиболее впечатляющие
+
Вы можете видеть Arthur в действии во многих демонстрационных приложениях Qt. Наиболее впечатляющие
из них используют искажение векторных данных, например в одном из приложений шрифт преобразуется
+
из них используют искажение векторных данных, например в одном из приложений шрифт преобразуется
стеклянным пузырьком-лупой, увеличивающей текст, попадающий в поле ее действия. Кривые безье и
+
стеклянным пузырьком-лупой, увеличивающей текст, попадающий в поле ее действия. Кривые безье и
траектории генерируются наряду с цветовыми градиентами и различными преобразованиями. Каждая
+
траектории генерируются наряду с цветовыми градиентами и различными преобразованиями. Каждая
подпрограмма вычисляется на уровне устройства (уровне аппаратной абстракции Qt4), а не преобразуется
+
подпрограмма вычисляется на уровне устройства (уровне аппаратной абстракции Qt4), а не преобразуется
в растровый формат главной библиотекой; в то время как OpenGL используется для непосредственного
+
в растровый формат главной библиотекой; в то время как OpenGL используется для непосредственного
ускорения многих операций. Интересно будет посмотреть, как KDE сможет использовать тот потенциал,
+
ускорения многих операций. Интересно будет посмотреть, как KDE сможет использовать тот потенциал,
который предлагает Arthur, поскольку именно эти функциональные возможности и были столь успешными для
+
который предлагает Arthur, поскольку именно эти функциональные возможности и были столь успешными для
Apple в OS X.
+
Apple в OS X.
  
Еще одно большое изменение в API – расширение среды разработки, которое очень похоже на общепринятую
+
Еще одно большое изменение в API — расширение среды разработки, которое очень похоже на общепринятую
технологию «модель-представление-контроллер» (Model-View-Controller или MVC) от Smalltalk. Эта
+
технологию «модель-представление-контроллер» (Model-View-Controller или MVC) от Smalltalk. Эта
технология представляет собой метод разделения данных приложения (модели) от пользовательского
+
технология представляет собой метод разделения данных приложения (модели) от пользовательского
интерфейса (представление) и логики программы (контроллера), которая ими управляет.  В связи с
+
интерфейса (представление) и логики программы (контроллера), которая ими управляет. В связи с
уклоном Trolltech в область пользовательских интерфейсов, он слит воедино с объектами логики, таким
+
уклоном Trolltech в область пользовательских интерфейсов, он слит воедино с объектами логики, таким
образом, они отличны только лишь от данных приложения.
+
образом, они отличны только лишь от данных приложения.
  
Результатом этих изменений стал новый тип объекта, названный Interview, который предназначен для
+
Результатом этих изменений стал новый тип объекта, названный Interview, который предназначен для
обработки взаимодействия между компонентами. Практически, это означает, что различные компоненты
+
обработки взаимодействия между компонентами. Практически, это означает, что различные компоненты
пользовательского интерфейса, такие как списки или таблицы, могут совместно использовать одни и те
+
пользовательского интерфейса, такие как списки или таблицы, могут совместно использовать одни и те
же данные программы для мгновенного обновления.
+
же данные программы для мгновенного обновления.
  
Interview начинает обретать больший смысл при использовании его вместе с новыми возможностями модуля
+
Interview начинает обретать больший смысл при использовании его вместе с новыми возможностями модуля
SQL, так как использование базы данных SQL в качестве единственного источника данных для графического
+
SQL, так как использование базы данных SQL в качестве единственного источника данных для графического
приложения улучшит производительность приложения, равно как и его удобство и простоту использования.
+
приложения улучшит производительность приложения, равно как и его удобство и простоту использования.
  
Разделение данных и GUI-кода, повидимому, является одной из главных отличительных черт Qt 4. Для
+
Разделение данных и GUI-кода, повидимому, является одной из главных отличительных черт Qt 4. Для
разработчиков, которые не хотят углубляться внутрь еще одной парадигмы программирования, API
+
разработчиков, которые не хотят углубляться внутрь еще одной парадигмы программирования, API
обеспечивает несколько готовых виджетов, которые могут использовать все преимущества архитектуры
+
обеспечивает несколько готовых виджетов, которые могут использовать все преимущества архитектуры
модели/представления, не заставляя вас понимать ее.
+
модели/представления, не заставляя вас понимать ее.
  
 
=== Достаточно? ===
 
=== Достаточно? ===
Ну и последнее, главное новшество в Qt 4 – замена для старого класса Main Window. Старая версия
+
Ну и последнее, главное новшество в Qt 4 — замена для старого класса Main Window. Старая версия
использовала произвольный и непоследовательный подход к панелям инструментов, хотя они необходимы
+
использовала произвольный и непоследовательный подход к панелям инструментов, хотя они необходимы
практически во всех приложениях, за исключением самых простых.
+
практически во всех приложениях, за исключением самых простых.
  
Это было приведено в порядок с помощью двух различных классов: одного – для панели инструментов,
+
Это было приведено в порядок с помощью двух различных классов: одного — для панели инструментов,
другого – для присоединяемых виджетов. Ну и конечно было определено, каким образом и где эти элементы
+
другого — для присоединяемых виджетов. Ну и конечно было определено, каким образом и где эти элементы
должны находиться в основном окне приложения. Подобные изменения есть практически во всем API
+
должны находиться в основном окне приложения. Подобные изменения есть практически во всем API
библиотеки Qt 4. При просмотре кода можно увидеть огромное количество рационализированных, упрощенных
+
библиотеки Qt 4. При просмотре кода можно увидеть огромное количество рационализированных, упрощенных
и переименованных пространств имен (namespaces) – то есть все изменения направлены на то, чтобы
+
и переименованных пространств имен (namespaces) — то есть все изменения направлены на то, чтобы
сделать программирование при помощи Qt 4 намного проще.
+
сделать программирование при помощи Qt 4 намного проще.
  
Принимая во внимание все изменения – некоторые из которых носят весьма фундаментальный характер – 
+
Принимая во внимание все изменения — некоторые из которых носят весьма фундаментальный характер -
переделать Qt 3 приложение в приложение Qt 4 было бы достаточно сложным занятием – заметил Маттиас
+
переделать Qt 3 приложение в приложение Qt 4 было бы достаточно сложным занятием — заметил Маттиас
Эттрих (Matthias Ettrich), вице-президент по разработке компании Trolltech. Многие из синтаксических
+
Эттрих (Matthias Ettrich), вице-президент по разработке компании Trolltech. Многие из синтаксических
изменений могут быть автоматизированы с помощью маленькой утилиты под названием Qt3to4. Она весьма
+
изменений могут быть автоматизированы с помощью маленькой утилиты под названием Qt3to4. Она весьма
успешно справляется со своей задачей применительно к небольшим проектам, построенным с помощью Qt
+
успешно справляется со своей задачей применительно к небольшим проектам, построенным с помощью Qt
Designer предыдущей версии Qt, но что-то более серьезное все же придется менять вручную, изучая
+
Designer предыдущей версии Qt, но что-то более серьезное все же придется менять вручную, изучая
руководство по переносу приложений, что будет куда более трудоемким процессом, чем относительно
+
руководство по переносу приложений, что будет куда более трудоемким процессом, чем относительно
безболезненный переход от Qt 2 к Qt 3. реальное доказательство этого мы получим от группы
+
безболезненный переход от Qt 2 к Qt 3. реальное доказательство этого мы получим от группы
разработчиков KDE 4, когда они сообщат нам о ходе разработки.
+
разработчиков KDE 4, когда они сообщат нам о ходе разработки.
 
----
 
----
 +
 
=== Возможности средства визуализации Arthur ===
 
=== Возможности средства визуализации Arthur ===
 
* Векторное искажение позволяет вам управлять шрифтами и другими векторными изображениями в режиме реального времени.
 
* Векторное искажение позволяет вам управлять шрифтами и другими векторными изображениями в режиме реального времени.
Строка 132: Строка 134:
  
 
=== Самое главное ===
 
=== Самое главное ===
API, лежащий в основе KDE, также используется для разработки C++-приложений для Windows, Mac OS X и 
+
API, лежащий в основе KDE, также используется для разработки C+±приложений для Windows, Mac OS X и
Linux. См. также: коммерческую версию Qt или GTK.
+
Linux. См. также: коммерческую версию Qt или GTK.
* Разработчик: Trolltech
+
* Разработчик: Trolltech
* Сайт:[http://www.trolltech.com www.trolltech.com]
+
* Сайт: [http://www.trolltech.com www.trolltech.com]
* Цена: бесплатно по лицензии GPL
+
* Цена: бесплатно по лицензии GPL
  
 
=== Пол считает… ===
 
=== Пол считает… ===
Идея связанных виджетов, кажется, была позаимствована из Xcode от Apple, но я надеюсь – и
+
Идея связанных виджетов, кажется, была позаимствована из Xcode от Apple, но я надеюсь — и
это ещё важнее – на сотрудничество Trolltech с командой разработчиков Cairo, что позволит
+
это ещё важнее — на сотрудничество Trolltech с командой разработчиков Cairo, что позволит
избежать дублирования работы.
+
избежать дублирования работы.
  
 
=== Вердикт Linux Format ===
 
=== Вердикт Linux Format ===
* Возможности - 9/10
+
* Возможности — 9/10
* Производительность - 7/10
+
* Производительность — 7/10
* Простота использования - 8/10
+
* Простота использования — 8/10
* Документация - 9/10
+
* Документация — 9/10
Qt является одной из основных причин привлекательности Linux и многое зависит от ее успеха. К счастью,
+
Qt является одной из основных причин привлекательности Linux и многое зависит от ее успеха. К счастью,
данное обновление не разочаровывает.
+
данное обновление не разочаровывает.
* '''Рейтинг - 9/10'''
+
* '''Рейтинг — 9/10'''
 +
 
 +
[[Категория:Обзоры]]

Текущая версия на 22:29, 23 марта 2008

Содержание


[править] Qt 4 Open Source Edition

Как будет выглядеть рабочий стол следующего поколения KDE — 4.0? Выпуск компанией Trolltech четвертой версии Qt, своей основной разработки, позволяет Грэхэму Моррисону (Graham Morisson) поразмышлять над ожидаемым ходом событий.

Qt, разработанный компанией Trolltech — это библиотека для создания кроссплатформенных приложений, на которой построен KDE. Она полностью отвечает за внешний вид и восприятие среды KDE, равно как и за разнообразие ее возможностей.

Нет, Qt сама не определяет то, как должно выглядеть приложение, просто программа предоставляет инструментарий, с помощью которого все это можно спроектировать. Данный набор средств определяет, что возможно осуществить, именно поэтому выпуск новой версии Qt подразумевает появление множества новых возможностей для самой KDE.

Взаимосвязь с KDE — отдельный разговор, ведь Qt — это, прежде всего, отдельный и самостоятельный продукт. Иногда легко забыть, что сам по себе Qt является кросс-платформенным интерфейсом для разработки программ, причем кроме версии для Linux, существуют GPL-версии для Mac OS X и Microsoft Windows.

[править] Дизайнер интерфейсов

Qt Designer поставляется с каждым релизом Qt и является инструментом визуального проектирования GUI. Внешне он похож на интегрированную среду разработки, например, Eclipse. В недалеком прошлом даже планировалось встроить некоторые из его возможностей непосредственно в интегрированную среду разработки KDevelop.

В предыдущих версиях окно Qt Designer растягивалось на весь рабочего стола, но в этот раз Trolltech решили внедрить несколько более своеобразных идей, поэтому рабочая область ограничена несколькими «паркуемыми» (dockable) окнами. Тот же самый подход использует Gimp, и, несомненно, приложение становится более удобным в использовании.

Процесс разработки графического интерфейса пользователя не сильно изменился: вы все еще создаете пустой холст для вашего окна (при необходимости используя для этого встроенный мастер) и добавляете графические элементы интерфейса («виджеты») из палитры или меню. Небольшие изменения заметны в том, что, при выборе элемента, курсор перетаскивает на холст именно изображение конечного элемента, чтобы можно было представить, как все будет выглядеть в реальности. Этот подход работает отлично, и вы можете с легкостью просмотреть палитру, чтобы найти наиболее подходящий для данного проекта элемент.

Наиболее сильным изменениям в Qt Designer подвергся способ определения событий интерфейса. Qt использует систему сигналов и слотов, чтобы описать взаимодействие одного элемента с другим. Например, в момент изменения состояния кнопка-переключатель (radio-button) генерирует соответствующий сигнал, в данном случае — Toggle. Этот сигнал может быть связан со слотом на элементе, отвечающим за переключение страниц — Tab. Каждая такая связь отображается в специальном редакторе сигналов и слотов, но вы можете рассмотреть их непосредственно в графическом интерфейсе пользователя. Designer рисует линии между элементами, чтобы показать взаимодействие между ними (см. экранный снимок). Это, наряду с усовершенствованным GUI, сделало создание пользовательских интерфейсов с помощью Qt Designer намного проще, чем в Qt3.

[править] Обновленный API

Qt Designer, безусловно, является полезной программой для разработки пользовательского интерфейса, но большинство из новых существенных особенностей Qt 4 коснулись именно API. С его помощью программисты внедряют технологию Qt, обычно используя при этом язык программирования C++, и именно изменения в API непосредственно влияют на то, как будет вести себя конечное приложение.

Самым заметным изменением в новом API является то, что единая в прошлом библиотека Qt теперь разбита на десять меньших библиотек, например QtXML и QtSql. наиболее значимая из них — библиотека QtCore, которая содержит многие из наиболее полезных возможностей Qt, но без какого-либо кода графического интерфейса. Если Вы когда-либо разрабатывали Qt-приложение, вы, должно быть, знаете, что огромный класс QApplication был тесно связан с GUI. Чтобы избавиться от этого ограничения, Trolltech разбила QApplication на два отдельных класса. Это означает, что вы, наконец, сможете использовать легендарные функции Qt для работы со строками и файлами без необходимости обременять ваше программное обеспечение ненужным кодом для графического интерфейса пользователя.

[править] Легенда о Короле Артуре

Когда Вы создаете приложение с графическим интерфейсом, знаете ли Вы, на что оно будет похоже? Наиболее ожидаемая особенность нового Qt имеет далеко не самое интересное название. Никаких «пылающих закатов над пирамидами» — средство визуализации Qt 4 названо совсем просто: Arthur. Такой вот ответ Qt на Cairo.

Arthur представляет собой обобщение подпрограмм визуализации Qt 3. Мало того, что это позволяет не зависеть от аппаратных средств, это также означает, что система визуализации может быть ускорена при помощи «железа» с поддержкой OpenGL, аналогично Cairo, которая может быть ускорена при использовании библиотеки Glitz.

Вы можете видеть Arthur в действии во многих демонстрационных приложениях Qt. Наиболее впечатляющие из них используют искажение векторных данных, например в одном из приложений шрифт преобразуется стеклянным пузырьком-лупой, увеличивающей текст, попадающий в поле ее действия. Кривые безье и траектории генерируются наряду с цветовыми градиентами и различными преобразованиями. Каждая подпрограмма вычисляется на уровне устройства (уровне аппаратной абстракции Qt4), а не преобразуется в растровый формат главной библиотекой; в то время как OpenGL используется для непосредственного ускорения многих операций. Интересно будет посмотреть, как KDE сможет использовать тот потенциал, который предлагает Arthur, поскольку именно эти функциональные возможности и были столь успешными для Apple в OS X.

Еще одно большое изменение в API — расширение среды разработки, которое очень похоже на общепринятую технологию «модель-представление-контроллер» (Model-View-Controller или MVC) от Smalltalk. Эта технология представляет собой метод разделения данных приложения (модели) от пользовательского интерфейса (представление) и логики программы (контроллера), которая ими управляет. В связи с уклоном Trolltech в область пользовательских интерфейсов, он слит воедино с объектами логики, таким образом, они отличны только лишь от данных приложения.

Результатом этих изменений стал новый тип объекта, названный Interview, который предназначен для обработки взаимодействия между компонентами. Практически, это означает, что различные компоненты пользовательского интерфейса, такие как списки или таблицы, могут совместно использовать одни и те же данные программы для мгновенного обновления.

Interview начинает обретать больший смысл при использовании его вместе с новыми возможностями модуля SQL, так как использование базы данных SQL в качестве единственного источника данных для графического приложения улучшит производительность приложения, равно как и его удобство и простоту использования.

Разделение данных и GUI-кода, повидимому, является одной из главных отличительных черт Qt 4. Для разработчиков, которые не хотят углубляться внутрь еще одной парадигмы программирования, API обеспечивает несколько готовых виджетов, которые могут использовать все преимущества архитектуры модели/представления, не заставляя вас понимать ее.

[править] Достаточно?

Ну и последнее, главное новшество в Qt 4 — замена для старого класса Main Window. Старая версия использовала произвольный и непоследовательный подход к панелям инструментов, хотя они необходимы практически во всех приложениях, за исключением самых простых.

Это было приведено в порядок с помощью двух различных классов: одного — для панели инструментов, другого — для присоединяемых виджетов. Ну и конечно было определено, каким образом и где эти элементы должны находиться в основном окне приложения. Подобные изменения есть практически во всем API библиотеки Qt 4. При просмотре кода можно увидеть огромное количество рационализированных, упрощенных и переименованных пространств имен (namespaces) — то есть все изменения направлены на то, чтобы сделать программирование при помощи Qt 4 намного проще.

Принимая во внимание все изменения — некоторые из которых носят весьма фундаментальный характер - переделать Qt 3 приложение в приложение Qt 4 было бы достаточно сложным занятием — заметил Маттиас Эттрих (Matthias Ettrich), вице-президент по разработке компании Trolltech. Многие из синтаксических изменений могут быть автоматизированы с помощью маленькой утилиты под названием Qt3to4. Она весьма успешно справляется со своей задачей применительно к небольшим проектам, построенным с помощью Qt Designer предыдущей версии Qt, но что-то более серьезное все же придется менять вручную, изучая руководство по переносу приложений, что будет куда более трудоемким процессом, чем относительно безболезненный переход от Qt 2 к Qt 3. реальное доказательство этого мы получим от группы разработчиков KDE 4, когда они сообщат нам о ходе разработки.


[править] Возможности средства визуализации Arthur

  • Векторное искажение позволяет вам управлять шрифтами и другими векторными изображениями в режиме реального времени.
  • Градиенты теперь определяются как плавный, а не дискретный, переход от одного цвета к другому.
  • При аффинных (родственных) преобразованиях векторных изображений сохраняется взаимное расположение между точками.
  • Пути (paths) теперь являются частью средства визуализации и позволяют вам создавать свои собственные векторы.
  • По возможности используется ускорение OpenGL, включая объединение трехмерных объектов.
  • Классы изображений Qt 4 могут использоваться как текстуры OpenGL без каких-либо преобразований.

[править] Самое главное

API, лежащий в основе KDE, также используется для разработки C+±приложений для Windows, Mac OS X и Linux. См. также: коммерческую версию Qt или GTK.

  • Разработчик: Trolltech
  • Сайт: www.trolltech.com
  • Цена: бесплатно по лицензии GPL

[править] Пол считает…

Идея связанных виджетов, кажется, была позаимствована из Xcode от Apple, но я надеюсь — и это ещё важнее — на сотрудничество Trolltech с командой разработчиков Cairo, что позволит избежать дублирования работы.

[править] Вердикт Linux Format

  • Возможности — 9/10
  • Производительность — 7/10
  • Простота использования — 8/10
  • Документация — 9/10

Qt является одной из основных причин привлекательности Linux и многое зависит от ее успеха. К счастью, данное обновление не разочаровывает.

  • Рейтинг — 9/10
Персональные инструменты
купить
подписаться
Яндекс.Метрика