Софт-Портал

Qt официальный сайт

Рейтинг: 4.0/5.0 (311 проголосовавших)

Категория: Windows

Описание

Qt официальный сайт

Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов [10] во всём мире. Кроме того, Qt является фундаментом популярной рабочей среды KDE. входящей в состав многих дистрибутивов Linux .

Описание

Qt позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы. которые могут потребоваться при разработке прикладного программного обеспечения. начиная от элементов графического интерфейса и заканчивая классами для работы с сетью. базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC) — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос Q_OBJECT. и создаёт дополнительный исходный файл на C++. содержащий метаобъектный код.

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

Qt комплектуется визуальной средой разработки графического интерфейса «Qt Designer », позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке Qt есть «Qt Linguist» — графическая утилита, позволяющая упростить локализацию и перевод программы на многие языки; и «Qt Assistant» — справочная система Qt, упрощающая работу с документацией по библиотеке, а также позволяющая создавать кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator », которая включает в себя редактор кода, справку, графические средства «Qt Designer » и возможность отладки приложений. «Qt Creator » может использовать GCC или Microsoft VC++ в качестве компилятора и GDB в качестве отладчика. Для Windows версий библиотека комплектуется компилятором, заголовочными и объектными файлами MinGW .

До недавнего времени библиотека Qt также распространялась ещё в одной версии: Qt/Embedded. Теперь эта платформа переименована в Qtopia Core и распространяется как отдельный продукт. Qtopia Core обеспечивает базовую функциональность для всей линейки платформ, предназначенных для разработки приложений для встраиваемых и мобильных устройств (КПК. смартфонов и т. п.).

Начиная с версии 4.5 Qt распространяется по 3 лицензиям (независимо от лицензии, исходный код Qt один и тот же):

  • Qt Commercial  — для разработки ПО с собственнической лицензией, допускающая модификацию самой Qt без раскрытия изменений;
  • GNU GPL  — для разработки ПО с открытыми исходниками, распространяемыми на условиях GNU GPL ;
  • GNU LGPL  — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.

До версии 4.0.0 под свободной лицензией распространялись лишь Qt/Mac, Qt/X11, Qt/Embedded, но, начиная с 4.0.0 (выпущенной в конце июня 2005 ), Qt Software «освободили» и Qt/Windows. Следует отметить, что существовали сторонние свободные версии Qt/Windows < 4.0.0, сделанные на основе Qt/X11.

Компоненты

Библиотека разделена на несколько модулей, для четвёртой версии библиотеки это:

  • QtCore — классы ядра библиотеки, используемые другими модулями;
  • QtGui — компоненты графического интерфейса;
  • QtNetwork — набор классов для сетевого программирования. Поддержка различных высокоуровневых протоколов может меняться от версии к версии. В версии 4.2.x присутствуют классы для работы с протоколами FTP и HTTP. Для работы с протоколами TCP/IP предназначены такие классы, как QTcpServer, QTcpSocket для TCP и QUdpSocket для UDP;
  • QtOpenGL — набор классов для работы с OpenGL ;
  • QtSql — набор классов для работы с базами данных с использованием языка структурированных запросов SQL. Основные классы данного модуля в версии 4.2.х: QSqlDatabase — класс для предоставления соединения с базой, для работы с какой-нибудь конкретной базой данных требует объект, унаследованный от класса QSqlDriver — абстрактного класса, который реализуется для конкретной базы данных и может требовать для компиляции SDK базы данных. Например, для сборки драйвера под базу данных Firebird /InterBase требует .h файлы и библиотеки статической линковки, входящие в комплект поставки данной БД;
  • QtScript — классы для работы с Qt Scripts ;
  • QtSvg — классы для отображения и работы с данными Scalable Vector Graphics (SVG );
  • QtXml — модуль для работы с XML. поддерживается SAX и DOM модели работы;
  • QtDesigner — классы создания расширений QtDesigner’а для своих собственных виджетов;
  • QtUiTools — классы для обработки в приложении форм Qt Designer;
  • QtAssistant — справочная система;
  • Qt3Support — модуль с классами, необходимыми для совместимости с библиотекой Qt версии 3.х.х;
  • QtTest — модуль для работы с UNIT тестами ;
  • QtWebKit — модуль WebKit, интегрированный в Qt и доступный через её классы;
  • QtXmlPatterns — модуль для поддержки XQuery 1.0 и XPath 2.0;
  • Phonon  — модуль для поддержки воспроизведения и записи видео и аудио, как локально, так и с устройств и по сети;
  • QtCLucene — модуль для поддержки полнотекстового поиска. применяется в новой версии Assistant в Qt 4.4;
  • ActiveQt — модуль для работы с ActiveX и COM технологиями для Qt-разработчиков под Windows .
  • QtDeclarative — модуль, предоставляющий декларативный фреймворк для создания динамичных, настраиваемых пользовательских интерфейсов.

Также реализована технология WoC — widgets on canvas, с помощью которой реализована Plasma в KDE 4.1, Будет возможным использовать виджеты библиотеки Qt прямо в аплетах. Обеспечивает расположение виджетов на QGraphicsView с возможностью масштабирования и различных графических эффектов.

Библиотека использует собственный формат проекта, именуемый .pro файлом, в котором собрана информация о том, какие файлы будут скомпилированы, по каким путям искать заголовочные файлы и много другой информации. Впоследствии при помощи утилиты qmake из них получаются makefile для make-утилиты компилятора. Также есть возможность работы при помощи интеграторов с Microsoft Visual Studio 2003/2005/2008/2010. Совсем недавно стала доступна интеграция в Eclipse для версии библиотеки 4.х.х.

Разработчики на Java могут использовать Qt с помощью фреймворка Qt Jambi от того же производителя (официально с 2009 года Qt Software прекратила разработку этого фреймворка).

Документация

Одним из весомых преимуществ проекта Qt является наличие качественной документации [14] [15]. в отличие, например, от wxWidgets. Статьи документации снабжены большим количеством примеров. Исходный код самой библиотеки хорошо форматирован, подробно комментирован и легко читается, что также упрощает изучение Qt.

Исходный код

Исходный код, единый для всех вариантов лицензий, свободно доступен в Git -хранилище, расположенном на Gitorious-е по адресу — qt.gitorious.org/qt. Кроме самого исходного кода Qt, на Gitorious-е расположены хранилища сопутствующих библиотек, разрабатываемых авторами библиотеки и сообществом. Корневой адрес связанных с Qt официальных проектов — qt.gitorious.org. Для внесения собственного вклада в развитие Qt, можно склонировать официальное хранилище, внести необходимые исправления/улучшения в код, а затем подать запрос на объединение (Merge Request) ваших изменений с официальным кодом.

Подробная инструкция по участию находится здесь .

Использование

Кроме того, на Qt основана среда рабочего стола KDE. графический интерфейс мобильной ОС MeeGo и Qt Creator  — среда разработки на Qt;

Qt официальный сайт:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Статическая сборка проекта Qt 5 под Windows

    Статическая сборка проекта Qt 5 под Windows.

    Qt 5 является отличным инструментом разработки приложений на языке C++. Отдельных похвал заслуживает IDE редактор Qt Creator. И все бы замечательно, пока время не приходит к публикации проекта.


    Полученный файл *.exe при публикации будет запускается на вашем компьютере только в том случаи, если у вас установлены библиотеки Qt в /system32 или в корень исполняемого файла. Если что эти библиотеки можно скачать с официального сайта Qt .
    Но очевидно, что для проекта в несколько килобайт, ставить библиотеку в 40-50 мегабайт слишком не рачительно. Поэтому есть вариант статической сборки. Хотя тут вы теряете право использование своей программы в коммерческих целях, если конечно вы не купили платную версию (более подробно читайте лицензионное соглашение).


    Но ближе к делу. Для начала вам потребуется установить ряд дистрибутивов: perl, ruby, python.

    Тепер сборка, в папке <ваш путь>/Qt/5.0.2/5.0.2/Src располагается исходный код компилятора Qt. Наша задача собрать его таким образом, что бы он «подхватывал» библиотеки Qt статически. Сделать это очень просто. Создайте папку <ваш путь>/Qt/5.0.2/5.0.2/static, разместите туда батник (файл с расширением *.bat) и пропишите в него следующее:

    По идее все должно сработать нормально. Но может случиться так, что будет вызвана ошибка из-за пути C:/Program Files (x86)/SQLXML 4.0/bin. Причина в пробельном символе. Лично я вылечил эту проблему переопределением пути (set LIB = %LIB%;"C:/dev/SQLXML4.0/bin"). Просто создайте папку без пробелов (я сделал dev) в любом месте и скопируйте туда, то, что у вас в C:/Program Files (x86)/SQLXML 4.0/bin.


    Теперь сам процесс компиляции. Скажу сразу, прикрутить Qt Creator не получится, причина в лицензионном соглашении (разумеется, разрабатываеть свой проект вы можете по-прежнему в IDE). Создаем батник следующего порядка:


    Перед запуском батника добавьте в файл проекта (*.pro) следующе строки:

    Теперь, запускайте компиляцию через бат файл. В результате, должны получится папки release и debug с exe файлом программы.
    Собственно это все. Желаю удачи.

    автор Adminдата 05/08/2013

    Qt официальный сайт

    Репутация: нет
    Всего: нет

    А что относительно коммерческого использования софта? Если имеется программа, написанная с использованием Qt, программа предназначена для продаж её копий. В этом случае подходит только коммерческая лицензия Qt или существуют ещё какие-либо варианты выхода из ситуации "не тратить много бабла"? (изменения в Qt вносить не будем).

    Насколько я понимаю и по лицензии LPGL можно разрабатывать продаваемое ПО? (продаваемое конечным пользователям, а не заказчику). Тогда не пойму какое отличие между коммерческой лицензией и LGPL

    Добавлено через 3 минуты и 44 секунды

    Цитата (bsa @ 26.8.2012, 21:59)

    BearFear. коммерческая лицензия необходима для проектов, которые не могут использовать LGPL-библиотеку. Например, программы под игровые консоли.


    А почему они не могут использовать её?

    Это сообщение отредактировал(а) Proger10 - 1.10.2012, 15:34

    Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"

    • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx] .
    • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией. укажите это. Например: [QT4], [GTK2] .
    • Все начинающие изучать Qt - не забудьте зайти сюда .
    • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
    • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
    • Не забывайте пользоваться кнопкой "Код" .
    • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика .
    • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
    • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

    Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF. Любитель .

    0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

    Проблема с рисованием поверх виджета в Qt

    • Qt
    • C++
    Проблема с рисованием поверх виджета в Qt

    Я не имел, в общем-то, опыта разработки на Qt, поэтому чтобы ничего нечаянно не испортить начал с проекта-примера с сайта Qt. Вот сам проект Image Viewer .

    Техническая суть проекта: класс ImageViewer населдует QMainWindow, устанавливает своим «центральным виджетом» зону прокрутки QScrollArea, в которой находится QLabel с картинкой.

    Исходный код есть на той же страничке в разделе «Files» сверху.

    Проблема заключается в следующем: я хотел выполнять некое рисование поверх отображаемой картинки, но для примера сведём задачу к тому, чтобы просто нарисовать линию.

    Вооружившись гуглом, я пришёл к такому варианту:

    в файле imageviewer.h подключаем библотеку для рисования:


    и добавляем обработчик события отрисовки в класс:


    В imageviewer.cpp опишем этот обработчик:


    Ожидалось, что в левом верхнем углу появится линия, но… нет.

    Мне кажется, что проблема в том, что scrollArea перекрывает линию, поэтому для эксперимента я закомментировал строку

    в методе ImageViewer::ImageViewer(). Линия появилась, но картинка, понятно, перестала отображаться.

    Пытался рисовать на scrollArea. так же безуспешно (картинка есть, линии нет):

    Этот код выдавал в консоль QCreator-а сообщения вида
    QPainter::begin: Paint device returned engine == 0, type: 1

    Гугление привело к идее рисовать на scrollArea->viewport(), не помогло.

    Внимание, вопрос: как сделать то же самое, но правильно?)

    • Вопрос задан более трёх лет назад
    • 10138 просмотров

    Qt Creator для Linux •

    Qt Creator

    ide. редактор кода

    Qt Creator - кроссплатформенная среда для разработки программного обеспечения, написанная на C, C++ и QML. Разработана компанией Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса с использованием как QtWidgets, так и QML. Существенно упрощает разработку приложений с помощью фреймворка Qt на различных платформах. Имеет подсветку синтаксиса и автодополнение. Поддерживает множество компиляторов: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW. Нативно поддерживает системы контроля версии: Git, SVN, Mercurial, CVS, Bazaar, Perforce. Имеются встроенные примеры приложений, что позволяет быстро найти пример реализации необходимого функционала. Распространяется под лицензией LGPL и доступна для Linux, OS X, Microsoft Windows и других систем.

    Скриншоты

    Установка Ubuntu / Debian

    Способ 1.
    Установка из репозитория:

    В репозитории обычно находится не русифицированная и не самая последняя версия Qt Creator.

    Способ 2.
    Установка с официального сайта:
    1) Создаем папку для Qt:

    2) Изменяем владельца каталога, указывая свой логин, вместо username :

    3) Скачиваем последнюю версию Qt с официального сайта .
    4) Жмем правой кнопкой мыши по скачанному файлу, открываем «Свойства», переходим во кладку «Права», ставим галочку рядом с «Разрешить выполнения файла как программы». (или задаем флаг на выполнение с помощью chmod +x )
    5) Запускаем и устанавливаем в /opt/qtsdk .

    Arch Linux

    Добавить комментарий Похожие

    Qt - это

    Qt это:

    Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы. которые могут потребоваться при разработке прикладного программного обеспечения. начиная от элементов графического интерфейса и заканчивая классами для работы с сетью. базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

    Существуют версии библиотеки для Microsoft Windows. систем класса UNIX с графической подсистемой X11. iOS. Android. Mac OS X. Microsoft Windows CE. QNX [6]. встраиваемых Linux-систем и платформы S60. В данный момент рассматривается возможность внедрения поддержки Qt в Windows Phone [7]. Также идёт портирование на Haiku .

    До недавнего времени библиотека Qt также распространялась ещё в одной версии: Qt/Embedded. Теперь эта платформа переименована в Qtopia Core и распространяется как отдельный продукт. Qtopia Core обеспечивает базовую функциональность для всей линейки платформ, предназначенных для разработки приложений для встраиваемых и мобильных устройств (КПК. смартфонов и т. п.).

    Начиная с версии 4.5 Qt распространяется по 3 лицензиям (независимо от лицензии, исходный код Qt один и тот же):

    • Qt Commercial — для разработки ПО с собственнической лицензией, допускающая модификацию самой Qt без раскрытия изменений;
    • GNU GPL  — для разработки ПО с открытыми исходниками, распространяемыми на условиях GNU GPL ;
    • GNU LGPL  — для разработки ПО с собственнической лицензией, но без внесения изменений в Qt.

    До версии 4.0.0 под свободной лицензией распространялись лишь Qt/Mac, Qt/X11, Qt/Embedded, но, начиная с 4.0.0 (выпущенной в конце июня 2005 ), Qt Software «освободили» и Qt/Windows. Следует отметить, что существовали сторонние свободные версии Qt/Windows < 4.0.0, сделанные на основе Qt/X11.

    Со времени своего появления в 1996 году библиотека Qt легла в основу тысяч успешных проектов [8] во всём мире. Кроме того, Qt является фундаментом популярной рабочей среды KDE. входящей в состав многих дистрибутивов Linux .

    Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC)  — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос Q_OBJECT. и создаёт дополнительный исходный файл на C++. содержащий метаобъектный код.

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

    Qt комплектуется визуальной средой разработки графического интерфейса «Qt Designer», позволяющей создавать диалоги и формы в режиме WYSIWYG. В поставке Qt есть «Qt Linguist» — графическая утилита, позволяющая упростить локализацию и перевод программы на многие языки; и «Qt Assistant» — справочная система Qt, упрощающая работу с документацией по библиотеке, а также позволяющая создавать кросс-платформенную справку для разрабатываемого на основе Qt ПО. Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator », которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений. «Qt Creator » может использовать GCC или Microsoft VC++ в качестве компилятора и GDB в качестве отладчика. Для Windows версий библиотека комплектуется компилятором, заголовочными и объектными файлами MinGW .

    Содержание Компоненты

    Библиотека разделена на несколько модулей, для четвёртой версии библиотеки это:

    • QtCore — классы ядра библиотеки, используемые другими модулями;
    • QtGui — компоненты графического интерфейса;
    • QtNetwork — набор классов для сетевого программирования. Поддержка различных высокоуровневых протоколов может меняться от версии к версии. В версии 4.2.x присутствуют классы для работы с протоколами FTP и HTTP. Для работы с протоколами TCP/IP предназначены такие классы, как QTcpServer, QTcpSocket для TCP и QUdpSocket для UDP;
    • QtOpenGL — набор классов для работы с OpenGL ;
    • QtSql — набор классов для работы с базами данных с использованием языка структурированных запросов SQL. Основные классы данного модуля в версии 4.2.х: QSqlDatabase — класс для предоставления соединения с базой, для работы с какой-нибудь конкретной базой данных требует объект, унаследованный от класса QSqlDriver — абстрактного класса, который реализуется для конкретной базы данных и может требовать для компиляции SDK базы данных. Например, для сборки драйвера под базу данных FireBird/InterBase требует .h файлы и библиотеки статической линковки, входящие в комплект поставки данной БД;
    • QtScript — классы для работы с Qt Scripts ;
    • QtSvg — классы для отображения и работы с данными Scalable Vector Graphics (SVG );
    • QtXml — модуль для работы с XML. поддерживается SAX и DOM модели работы;
    • QtDesigner — классы создания расширений QtDesigner’а для своих собственных виджетов;
    • QtUiTools — классы для обработки в приложении форм Qt Designer;
    • QtAssistant — справочная система;
    • Qt3Support — модуль с классами, необходимыми для совместимости с библиотекой Qt версии 3.х.х;
    • QtTest — модуль для работы с UNIT тестами ;
    • QtWebKit — модуль WebKit, интегрированный в Qt и доступный через её классы;
    • QtXmlPatterns — модуль для поддержки XQuery 1.0 и XPath 2.0;
    • Phonon  — модуль для поддержки воспроизведения и записи видео и аудио, как локально, так и с устройств и по сети;
    • QtCLucene — модуль для поддержки полнотекстового поиска. применяется в новой версии Assistant в Qt 4.4;
    • ActiveQt — модуль для работы с ActiveX и COM технологиями для Qt-разработчиков под Windows .
    • QtDeclarative — модуль, предоставляющий декларативный фреймворк для создания динамичных, настраиваемых пользовательских интерфейсов.

    Также реализована технология WoC — widgets on canvas, с помощью которой реализована Plasma в KDE 4.1, Будет возможным использовать виджеты библиотеки Qt прямо в аплетах. Обеспечивает расположение виджетов на QGraphicsView с возможностью масштабирования и различных графических эффектов.

    Библиотека использует собственный формат проекта, именуемый .pro файлом, в котором собрана информация о том, какие файлы будут скомпилированы, по каким путям искать заголовочные файлы и много другой информации. Впоследствии при помощи утилиты qmake из них получаются makefile для make-утилиты компилятора. Также есть возможность работы при помощи интеграторов с Microsoft Visual Studio 2003/2005/2008/2010. Совсем недавно стала доступна интеграция в Eclipse для версии библиотеки 4.х.х.

    Разработчики на Java могут использовать Qt с помощью фреймворка Qt Jambi от того же производителя (официально с 2009 года Qt Software прекратила разработку этого фреймворка).

    Документация

    Одним из весомых преимуществ проекта Qt является наличие качественной документации [9] [10]. в отличие, например, от wxWidgets. Статьи документации снабжены большим количеством примеров. Исходный код самой библиотеки хорошо форматирован, подробно комментирован и легко читается, что также упрощает изучение Qt.

    Исходный код

    Исходный код, единый для всех вариантов лицензий, свободно доступен в Git -хранилище, расположенном на Gitorious-е по адресу — qt.gitorious.org/qt. Кроме самого исходного кода Qt, на Gitorious-е расположены хранилища сопутствующих библиотек, разрабатываемых авторами библиотеки и сообществом. Корневой адрес связанных с Qt официальных проектов — qt.gitorious.org. Для внесения собственного вклада в развитие Qt, можно склонировать официальное хранилище, внести необходимые исправления/улучшения в код, а затем подать запрос на объединение (Merge Request) ваших изменений с официальным кодом.

    Подробная инструкция по участию находится здесь .

    Использование

    Кроме того, на Qt основана среда рабочего стола KDE. графический интерфейс мобильной ОС MeeGo и Qt Creator  — среда разработки на Qt;

    См. также Категория:Приложения, использующие Qt

    См. также Примечания Литература
    • Боровский А. Qt 4.7+ Практическое программирование на C++. — СПб. «БХВ-Петербург», 2012. — С. 496. — ISBN 978-5-9775-0757-8
    • Макс Шлее Qt 4.8 Профессиональное программирование на C++. — СПб. «БХВ-Петербург», 2012. — С. 912. — ISBN 978-5-9775-0736-3
    • Саммерфилд М. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++. — СПб. «Символ-Плюс», 2011. — С. 560. — ISBN 978-5-93286-207-0
    • Макс Шлее Qt 4.5 Профессиональное программирование на C++. — СПб. «БХВ-Петербург», 2010. — С. 896. — ISBN 978-5-9775-0398-3
    • Ж. Бланшет, М. Саммерфилд Qt 4: Программирование GUI на C++. 2-е дополненное издание. — М. «КУДИЦ-ПРЕСС», 2008. — С. 736. — ISBN 978-5-91136-059-7
    • Земсков Ю.В. Qt 4 на примерах. — СПб. «БХВ-Петербург», 2008. — С. 608. — ISBN 978-5-9775-0256-6
    • Ж. Бланшет, М. Саммерфилд Qt 4: Программирование GUI на C++ . — М. «КУДИЦ-ПРЕСС», 2007. — С. 648. — ISBN 978-5-91136-038-2
    • Макс Шлее Qt 4: Профессиональное программирование на C++. — СПб. «БХВ-Петербург», 2007. — С. 880. — ISBN 978-5-9775-0010-6
    • Чеботарев А. Библиотека Qt 4. Создание прикладных приложений в среде Linux. — М. «Диалектика», 2006. — С. 256. — ISBN 5-8459-0996-1
    Ссылки

    Категории:
    • Программное обеспечение по алфавиту
    • Qt
    • Свободные библиотеки программ
    • Программное обеспечение с лицензией GNU GPL
    • Программное обеспечение с лицензией GNU LGPL
    • Кроссплатформенное программное обеспечение
    • Программное обеспечение для Haiku
    • Программное обеспечение для Mac OS X
    • Программное обеспечение для Linux
    • Программное обеспечение для OpenSolaris
    • Программное обеспечение для Solaris
    • Программное обеспечение для Windows
    • Библиотеки виджетов
    • Библиотеки C++
    • Библиотеки на основе X
    • Свободное программное обеспечение, написанное на C++
    • Появились в 1996 году

    Wikimedia Foundation. 2010 .

    Смотреть что такое "Qt" в других словарях:

    Qt — Entwickler: Qt Software Aktuelle Version: 4.5.1 (23. April 2009) … Deutsch Wikipedia

    Qt — Developpeur Qt Development Frameworks/Nokia Derniere version … Wikipedia en Francais

    Qt — Saltar a navegacion, busqueda Qt puede significar: Qt o biblioteca Qt es una herramienta de programadores para desarrollar interfaces graficas de usuario. Es un sistema integral de desarrollo para aplicaciones multi plataforma. Qt o intervalo QT… … Wikipedia Espanol

    QT — or QT may refer to: Contents 1 Units and measurements 2 Businesses and products 3 Computing … Wikipedia

    QT — ist die Abkurzung fur: QT Syndrom, eine seltene lebensgefahrliche Krankheit Quantentheorie QuickTime, eine von der Firma Apple entwickelte Multimedia Architektur Tampa Cargo, kolumbianische Frachtfluggesellschaft (IATA Code) In der Medizin… … Deutsch Wikipedia

    Qt — puede significar: ? Qt abreviatura de un cuarto de galon (en ingles quart ), una medida de volumen de liquidos. ? Qt o biblioteca Qt es una herramienta de programadores para desarrollar interfaces graficas de usuario. ? Qt o intervalo Qt en… … Enciclopedia Universal

    QT — или Qt может означать: QuickTime  технология воспроизведения цифрового видео, звука, текста, анимации, музыки и панорамных изображений, разработанная фирмой Apple. Qt  кросс платформенный инструментарий разработки ПО на языке… … Википедия

    Qt — Qt, plattformunabhangige C++ Bibliothek zur Erstellung von grafischen Benutzeroberflachen. Qt wurde von dem norwegischen Software Unternehmen Trolltech entwickelt und kann von nicht kommerziellen Anwendern kostenfrei bezogen werden. … Universal-Lexikon

    qt — BrE qt. AmE the written abbreviation of quart or quarts … Dictionary of contemporary English

    qt — abbrev. 1. quantity 2. quart(s): also, for the plural, qts * * * … Universalium

    .qt — qt, Erweiterung fur Anwendungsdateien der Multimediasoftware QuickTime … Universal-Lexikon

    Книги
    • Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++.. Саммерфилд М. Qtпредставляет собой мощную библиотеку разработки кроссплатформенных приложений - настольных, сетевых и для мобильных устройств. Но нередко даже опытные Qt-программисты используют лишь малую… Подробнее Купить за 2064 руб
    • Qt 5. 3. Профессиональное программирование на C++. Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны… Подробнее Купить за 991 руб
    • Qt 5. 3. Профессиональное программирование на C++. Макс Шлее. Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны… Подробнее Купить за 856 руб
    Другие книги по запросу «Qt» >>

    Qt официальный сайт

    ?Перед установкой QuoteTerminal
    для Вашего удобства предусмотрена возможность сохранения и переноса настроенных экранов из предыдущих версий терминальных программ QuoteTotal и QuoteRate.

    Для этого в предыдущей версии терминала выберите пункт меню «Избранное\ Сохранить набор экранов». Выберите папку, в которой Вы желаете сохранить набор экранов и нажмите кнопку «Сохранить» - файл сохранился в указанной Вами папке. После установки QuoteTerminal, при первом запуске программы выберите в стартовом диалоге пункт «Выбор экранов из файла» и укажите путь к ранее сохраненному файлу с рабочими экранами.

    Подробнее с переносом экранов можно ознакомиться в разделе 8 «Перенос экранов из предыдущих версий терминала» инструкции по установке и настройки QuoteTerminal.
    Также Вы можете получить оперативную консультацию по телефону технической поддержки продукта +7 (495) 363-03-33.

    Краткая инструкция по установке терминала на Mac OS X

    QuoteTerminal работает на операционных системах семейства Windows. Однако терминал можно установить и на компьютере под управлением Mac OS X. Для этого необходимо, во-первых, в Mac OS X установить т.н. “виртуальную машину”, позволяющую запускать одновременно с Mac OS X операционную систему Windows; во-вторых, установить в виртуальной машине операционную систему Windows, она будет называться гостевой операционной системой; в-третьих, установить QuoteTerminal в гостевой операционной системе.

    Наиболее простой способ сделать это:

    Установить наиболее популярную для Mac виртуальную машину “Parallels Desktop для Mac”. Скачать пробную версию программы можно на официальном сайте www.parallels.com. После установки Parallels Desktop для Mac, эта программа предложит установить в качестве гостевой операционной системы Windows 8 Preview (бесплатно).

    Запустить гостевую операционную систему Windows 8 Preview, установить в ней QuoteTerminal. Скачать QuoteTerminal можно на официальном сайте qt.rbc.ru .

    После того, как вы попробовали работу системы (а она весьма удобна на Mac), и вас она устраивает, то ПО необходимо приобрести:

    Операционную систему Windows 8 можно приобрести на официальном сайте windows.microsoft.com. обновив Windows 8 Preview до финальной Windows 8.

    Parallels Desktop для Mac можно приобрести на официальном сайте www.parallels.com .

    Если установлена русская версия MacOS X, то Parallels Desktop и гостевая Windows будут установлены также русские (т.е. ни о чем беспокоиться не надо). А если нет, то Windows должна быть русифицированной или с установленным русским language pack.

    Все замечания и пожелания присылайте на market@quote.ru .

    Все права защищены и охраняются законом. © 1995 - 2016 РосБизнесКонсалтинг .

    Порядок и Условия использования данных © Dow Jones&Company. Данные предоставлены © ComStock, Inc .

    Подробнее о соблюдении авторских прав и размещении рекламы. Любое использование материалов допускается только с указанием в качестве источника информации портала QT.rbc.ru. Гиперссылка обязательна.

    Все информационные ресурсы проекта QT.rbc.ru имеют исключительно информативные цели и не являются публичной офертой к купле/продаже каких-либо ценных бумаг или осуществлению любых иных инвестиций.

    Информация, содержащаяся на страницах портала QT.rbc.ru, была получена из источников, которые редакция QT.rbc.ru считает заслуживающими доверия. При этом редакция проекта и авторы текстов не несут ответственности за возникшие убытки в связи с использованием содержащейся на страницах портала QT.rbc.ru информации.

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

    OpenGL на Qt 4

    OpenGL на Qt 4. Это просто! (часть 2) (2 стр.) Контекст OpenGL

    Контекст, или графический контекст, является состоянием OpenGL. Можно сказать, что контекст — это режим работы OpenGL. По причине платформонезависимости OpenGL часть функций для работы с контекстом предоставляется API оконной системы. Эта часть функций обеспечивает работу с буфером кадров (то, куда выводится изображение). О работе с контекстом пойдёт речь в этом разделе.

    Классы QGLFormat и QGLContext

    В модуле QtOpenGL определены классы QGLFormat (формат — настройки вывода изображения) и QGLContext (контекст — режим работы OpenGL). С помощью QGLFormat можно задать настройки контекста (формат контекста) и устанавливать их в контекст с помощью QGLContext (установить формат в контекст). Классы QGLFormat и QGLContext являются универсальным средством для работы с контекстом OpenGL, как бы «переводя» стандартные команды контекста на «собственный язык» оконной системы ОС. Например, использование простой или двойной буферизации при выводе изображения, использование буфера глубины, использование состояния RGBA и т.д. являются контекстом оконной системы — режимом работы с буфером кадров. В общем случае класс QGLContext отвечает за инкапсуляцию настроек контекста. Общая схема работы с контекстом следующая: 1) создать нужный формат (например, установить в формат простую буферизацию) 2) установить формат в контекст (т.е. передать формат, в котором заданы настройки, в контекст для дальнейшей работы OpenGL).

    Настройка контекста

    Объект класса QGLContext создаётся автоматически конструктором класса QGLWidget с настройками по умолчанию. Давайте посмотрим, какие настройки по умолчанию задаются автоматически в контекст:

    Можно при необходимости определить свой формат по умолчанию. Отметим, что все настройки по умолчанию являются наиболее распространёнными и поддерживаются большинством реализаций OpenGL. Например, мультивыборку (сглаживание), простую буферизацию и другие настройки могут не поддерживать встроенные видеоадаптеры. Использование Qt отличается от библиотеки GLUT в том плане, что за счёт Qt во многом облегчается работа c OpenGL. Например, при двойной буферизации (double buffer) необязательно вызывать команду переключения заднего (невидимого, закадрового) и переднего (видимого, выводимого на экран) буферов. Вы также можете не использовать команду glFlush() (обработать очередь команд), соответствующую завершению команд. Всё это произойдёт автоматически после выполнения функции paintGL(), а точнее в теле функции glDraw() (класса QGLWidget). Cама функция переключения буферов есть swapBuffers() класса QGLWidget. Она эквивалентна функции glutSwapBuffers() библиотеки GLUT. Схема работы в Qt будет следующая:

    «Ручное» управление переключением буферов устанавливается с помощью метода setAutoBufferSwap() (класса QGLWidget) с параметром false; в этом случае вам нужно будет самостоятельно переключать буферы в paintGL().

    Установить простую буферизацию (только один буфер кадров, а не два, как при двойной буферизации) в контекст можно следующим образом:

    Создать формат и установить его в контекст можно уже при наследовании от QGLWidget(). Так можно сделать благодаря тому, что класс QGLWidget имеет несколько конструкторов. Совокупность константных значений (флагов) QGL::SingleBuffer (простая буферизация), QGL::DepthBuffer (буфер глубины) и QGL::Rgba (режим RGBA) определяют формат, остальные настройки берутся по умолчанию, затем формат будет передан в контекст. Все флаги опций формата указаны в перечислении QGL::FormatOption или флагах QGL::FormatOptions. Читайте о них в Qt Assistant. Далее мы явно создаём формат frmt и устанавливаем простую буферизацию с помощью setDoubleBuffer(false). Затем устанавливаем формат в контекст с помощью setFormat() класса QGLContext. Задать настройки в контекст через setFormat() можно и сразу без явного создания формата так: setFormat(QGLFormat(QGL::SingleBuffer)).

    В примере мы используем функцию вывода в консоль qDebug(). Её удобно использовать при работе в интегрированной среде разработки QtCreator, которую можно свободно скачать на официальном сайте Qt (http://qt.nokia.com/downloads ). При работе с QtCreator информация выводится во встроенную консоль приложения. В нашем случае в консоль будет выведено false. Как вы догадались, функция doubleBuffer() возвращает состояние двойной буферизации (типа bool), которое выключено. Выключение двойной буферизации означает включение простой буферизации. Изображение будет заметно мигать при обновлении, так как задана простая буферизация, т.е. используется только один буфер кадров. Для проверки qDebug() используйте простой пример:

    Формат может быть установлен в контекст в конструкторе виджета, либо действуя на объект виджета через setFormat() (но только не в самом классе виджета!). Так можно менять контекст OpenGL для виджета в процессе выполнения программы. Пример:

    Часто нужно проверить, поддерживается ли конкретная настройка. Пример для проверки мультивыборки:

    Мультивыборка (т.е. множественная выборка) сглаживает изображения за счёт смешения цвета пикселя с его окружением. Здесь использованы функции format() класса QGLContext и sampleBuffers() класса QGLFormat. Для вывода информации использован класс сообщений QMessageBox, который входит в модуль QtGui.

    Версии OpenGL

    Прежде, чем начать работу с конкретной версией OpenGL, важно узнать, поддерживается ли она вашей аппаратной платформой, в частном случае драйвером графической карты, или на платформе пользователя приложением. Вкратце скажем, что в OpenGL имеет место так называемый механизм расширений. Производители видеокарт не ждут выхода новой версии OpenGL и выпускают свои собственные расширения (как бы дополнения) — набор новых функий и возможностей OpenGL, поддерживаемый их графическими картами. Если расширение окажется очень полезным для дальнейшего развития OpenGL и пройдёт все тестирования, то у него есть шанс оказаться в ядре следующей версии OpenGL и поддерживаться графическими картами других производителей (подобные вопросы решает консорциум по OpenGL, в который входят крупнейшие корпорации). Разберём на примере, как получить информацию о поддерживаемой версии и расширениях:

    Для определения версии мы используем функцию glGetString() с параметром GL_VERSION, которая возвращает указатель на начало строки информации в памяти. В примере продемонстрирован вывод данных в текстовый файл с помощью Qt, который очень похож на классический способ вывода в C++ с помощью оператора cout (и cin для ввода). В системе Windows XP файл по умолчанию будет создан в той же папке, что и исполняемый файл; в системе openSUSE 11.2 файл info.txt создаётся по умолчанию в "Домашней папке" в "Документах". Важное замечание: glGetString() нужно использовать только после установки контекста OpenGL. В файл info.txt у меня на системе Windows XP выведено:

    Запись означает: используется драйвер графической карты, поддерживающий реализацию OpenGL 2.0; модификация драйвера 6120; драйвер под Windows XP. Подставляя вместо параметра GL_VERSION параметр GL_VENDOR, получим поставщика реализации (у меня "ATI Technologies Inc."). Параметр GL_RENDERER укажет торговую марку (у меня "Radeon X1600 Series x86/SSE2"). Наконец, glGetString() с параметром GL_EXTENSIONS выдаст через пробел все поддерживаемые драйвером расширения (список довольно большой, поэтому не буду его приводить). При параметре GL_VERSION в Linux, скорее всего, будет выведено название Mesa. Mesa — это открытая неофициальная реализация OpenGL, на которой основаны аппаратные драйверы под Linux с открытым исходным кодом. Для Linux также существует соответствующие официальные драйверы, которые можно найти на сайте производителя графической карты.

    Дополнительно и Qt 4 даёт возможность определить версии OpenGL, поддерживаемые платформой, с помощью функции QGLFormat::openGLVersionFlags() и перечисления QGLFormat::OpenGLVersionFlag или флагов QGLFormat::OpenGLVersionFlags класса QGLFormat. Флаги принимают константные значения в шестнадцатиричной системе исчисления, о чём говорит префикс 0x (cм. Qt Assistant). Версия Qt 4.7.1 распознаёт реализации до OpenGL 4.0 включительно. Функция QGLFormat::openGLVersionFlags() возвращает сумму флагов поддерживаемых версий OpenGL. Например, если QGLFormat::openGLVersionFlags() определяет значение 0x3f (это есть сумма 0x01+0x02+0x04+0x08+0x10+0x20), то это означает поддержку драйвером видеокарты версий OpenGL: 1.1, 1.2, 1.3, 1.4, 1.5 и 2.0. Другой пример: 0x1f будет соответствовать версиям от 1.1 до 1.5. Значения функции и флагов удобно сравнивать с помощью оператора побитового «И» (&) благодаря удобной кодировке самих флагов, представленной в виде смещения ненулевого разряда (единицы в двоичной системе исчисления). Пример:

    В случае, если проверяемая версия OpenGL 2.0 не поддерживается платформой пользователя, будет выдано критическое сообщение (виджет) QMessageBox::critical() с соответствующим текстом, после чего приложение завершит работу.

    Важно знать, что операционные системы поддерживают не все версии OpenGL. Например, WGL API (или Wiggle — реализация OpenGL в cистеме Windows) ограничивается только версией 1.1 и в этом плане уступает GLX и AGL. В любом случае «доподдержку» остальных версий берёт на себя драйвер графической карты — об этом позаботились производители видеокарт. Для того, чтобы использовать возможности, не реализованные в системных API, необходимо подключить заголовочный файл glext.h, который можно найти на официальной странице OpenGL (http://www.opengl.org/registry/ ). Этот файл на текущий момент времени содержит макросы (макроопределения) и прототипы функций всех реализаций OpenGL от 1.2 до 4.2 и расширений OpenGL. Сами же функции определены в драйвере и многие из них выполняются аппаратно (в кремниевой схеме графической карты).

    Обратите внимание, что в этом разделе мы рассмотрели некоторые способы вывода информации.

    Анимация

    Смена изображения за некоторый промежуток времени называется анимацией. Скорость смены изображения измеряется кадровой частотой, т.е. числом кадров в секунду (fps — frames per second). Видеоанимация — это изменение кадра в буфере кадров (то, куда выводится изображение). Работа с анимацией в OpenGL сводится к работе с таймером, благодаря которому изображение будет обновляться (изменяться и заново выводиться в буфер кадров) через некоторый интервал времени. Работу с таймером обеспечивает API библиотеки, которую вы используете.

    Класс QTimer

    В Qt есть два альтернативных способа работы с таймером: 1) низкоуровневые возможности с помощью QObject::startTimer() и QObject::timerEvent(); 2) высокоуровневые возможности с помощью класса QTimer. Мы разберём сначала второй способ, так как он предоставляет разработчикам больше возможностей с использованием механизма сигналов и слотов. Суть механизма сигналов и слотов заключается в том, что объекты разных классов можно связать между собой с помощью сигналов и слотов. Генерация сигнала некоторым объектом одного класса приводит к выполнению слота (т.е. некотрого метода) для некоторого объекта другого класса. При работе с классом QTimer сигнал будет генерироваться (эмитироваться) через определённый интервал времени объектом класса QTimer и вызывать выполнение слота (обновляющего изображение) для объекта виджета-окна. Схема работы с таймером будет такая:
    1) создать объект таймера;
    2) связать сигналы, генерируемые таймером, со слотом, изменяющим изображение;
    3) задать интервал таймера в миллисекундах и запустить его.

    Пример из двух файлов scene3D.h и scene3D.cpp:

    QTimer + сигналы и слоты

    Обратите внимание на макрос Q_OBJECT, который стоит вначале определения класса. Именно по этому макросу MOC (Meta Object Compiler — метаобъектный компилятор) определит, что в этом классе используется механизм сигналов и слотов и запишет соотвествующую информацию в специальный файл при препроцессорной обработке. Механизм сигналов и слотов связывает между собой объекты классов так, что объект одного класса может создавать сигнал, а объект другого класса получать этот сигнал и реагировать на него. В качестве слота класса Scene3D выступает слот change(), который будет изменять значения углов наблюдения (модельно-видовой матрицы) и обновлять изображение. В конструкторе класса Scene3D мы создаём динамический объект класса QTimer, потомка объекта класса Scene3D, о чём говорит параметр this. Затем связываем объекты классов QTimer и нашего класса Scene3D (используем указатель this) с помощью функции connect() класса QObject. Cигнал-функция должна быть вставлена в макрос-функцию SIGNAL(), слот-функция — в макрос SLOT(). Сигнал-функция timeout() будет вызывать сигналы таймера через определённый интервал времени. Наш объект this будет получать эти сигналы и реагировать на них вызовом слота-функции change(). Наконец, мы запускаем таймер с помощью start() с интервалом 20 миллисекунд. Обычно погрешность измерения времени операционными системами составляет 1 миллисекунду. Если вы ничего не задали в start() или задали 0, то таймер будет установлен на минимально возможный интервал. Если интервал таймера был уже установлен заранее для данного объекта класса QTimer, то функция start() запускает таймер с этим интервалом. Функция stop() остановит таймер, если это будет нужно, до следующего вызова start(). Дополнительную информацию смотрите в Qt Assistant.

    Про механизм сигналов и слотов следует указать, что можно создавать свои собственные сигналы и их эмитировать; можно соединять сигналы с сигналами; отправку сигналов можно блокировать; сигналы и слоты могут содержать параметры, но, разумеется, одинакового типа; сигналы и слоты можно не только соединять, но и разъединять. При уничтожении объекта все сигнально-слотовые связи с ним разъединяются автоматически. Недостаток механизма сигналов и слотов состоит в том, он работает медленнее, чем механизм функций обратного вызова. Дело в том, что при использовании сигналов и слотов появляеется задержка, связанная с отлавливанием сигнала. В связи с эти разберём другой дополнительный, низкоуровневый, но более быстрый по выполнению метод.

    Другой метод: событие таймера

    Этот альтернативный метод не задействует класс QTimer, а значит и не задействует механизм сигналов и слотов, и использует функции startTimer() и timeEvent() класса QObject. Функция startTimer() запускает таймер с указанным в ней интервалом (также в миллисекундах) и возвращает id (идентификатор, т.е. имя) таймера, а функция timeEvent() выполняет событие таймера. В теле виртуальной переопределённой функции timeEvent() нужно указать, что должно произойти, когда она вызовится таймером. Пример:

    Функция killTimer() класса QObject уничтожает таймер с указанным в ней id. Событие таймера является более точным методом работы с таймером, чем использование сигналов и слотов. Визуально, конечно, это незаметно.

    Синхронизация кадров с дисплеем

    На первый взгляд может показаться, что чем меньше интервал таймера и чем меньше изменения сцены, тем плавнее будет анимация. В действительности это не так. Уменьшение интервалов не приводит к плавности анимации, т.е. анимация будет выглядеть как бы рваной, ступенчатой, неплавной. Причина этого состоит в том, что работа монитора (дисплея) и работа буфера кадров не согласованы между собой, т.е. не синхронизированы. Мы не будем вдаваться во все подробности (например, в подробности о работе монитора и частоте обновления изображения монитором, и как под это должен подстраиваться вывод в буфер кадров), а лишь покажем как синхронизировать буфер кадров с работой монитора. Для этого в конструктор класса Scene3D нужно добавить всего три строки:

    В добавленной первой строке мы создаем формат по умолчанию; во второй — задаем синхронизацию в формат; а в третьей — устанавливаем формат в контекст. Функция setSwapInterval() принадлежит классу QGLFormat, поэтому на нее распространяется все сказанное ранее о работе с форматом и контекстом. В частности, как вы заметили, синхронизация задается и устанавливается в контекст в конструкторе класса Scene3D.

    10 августа 2011


    Обновление: 2 января 2013