Какую графическую библиотеку использует Qt?



  • Доброго времени суток.

    Подскажите пожалуйста, какую графическую библиотеку (например FLTK или Fox toolkit или др.) использует Qt на самом нижнем уровне, для взаимодействия с операционной системой и прорисовки графических примитивов?

    Спасибо.



  • Как я понимаю, это определятся тем, для какой платформы Qt собран. Глядя на исходники Qt, я не вижу никаких внешних библиотек, т.е. он использует только системный интерфейс.



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

    Я предположил, что разработчики Qt могли пойти по пути наименьшего сопротивления, взяв за основу то, что уже написано другими разработчиками.



  • Так ведь Qt и является такой абстракцией! Он и был создан изначально именно для того, чтобы можно было разрабатывать приложения, абстрагируясь от особенностей платформы. Причём, когда он был создан, других разумных альтернатив вообще не существовало :) Соответственно, он сам не должен опираться на ещё одну кросс-платформенную библиотеку. Это бы только добавило ещё один уровень надстройки, ухудшило производительность и значительно затруднило бы поддержание проекта (из-за дополнительной зависимости).



  • Qt - это абстракция более высокого уровня, предоставляющая нам для использования непосредственно готовые виджеты, а я спрашиваю об инструменте более низкого уровня, того, который собственно рисует на экране нашу кнопку, или листвью, с помощью линий, кружочков и т.п. Если вы читали Беарне Стровструпа "Программирование. Принципы и практика использования C++", то должны понять, о чём речь (в книге, в качестве аналога, рассмотрен FLTK).



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

    В этом нетрудно убедиться, заглянув в исходный код: на каждой платформе реализация всех графических функций заканчивается кодом, который непосредственно обращается к системному интерфейсу. Например, на Mac графические примитивы обращаются к Core Foundation.



  • Понял, спасибо!



  • Пожалуйста :) Ещё один момент, который мне вспомнился: в данный момент, как я понимаю, Qt по умолчанию использует родные виджеты на настольных платформах (просто не изучал мобильные). Т.е. он не пользуется никакой графической библиотекой для их вывода. Вроде бы, раньше где-то он рисовал свои собственные, по-моему, как раз на Mac. Но они отличались от родных достаточно, чтобы было заметно. Поэтому сейчас все стандартные виджеты рисует сама система.



  • Qt это полный framework не нуждающийся в других системах:-)



  • [quote author="NuVeS" date="1372514917"]Qt это полный framework не нуждающийся в других системах:-)[/quote]
    Как минимум, он нуждается в операционной системе, поскольку для визуализации прибегает к её помощи. Поэтому "полный" - понятие относительное.



  • Я наверно не зря написал слово framework?!



  • [quote author="a_bush" date="1372515707"]
    Как минимум, он нуждается в операционной системе, поскольку для визуализации прибегает к её помощи. Поэтому "полный" - понятие относительное.[/quote]

    до чего же ты упоротый. гугли qminimal, учи "матчасть":http://qt-project.org/wiki/Qt-Platform-Abstraction, а ещё лучше - иди по пути наименьшего сопротивления - стань явошником или сишарпером, уверен, тебе понравится



  • [quote author="epicfailguy93" date="1373098252"]
    до чего же ты упоротый. гугли qminimal, учи "матчасть":http://qt-project.org/wiki/Qt-Platform-Abstraction, а ещё лучше - иди по пути наименьшего сопротивления - стань явошником или сишарпером, уверен, тебе понравится [/quote]
    некропостинг ради флуда не приветствуется.



  • [quote author="a_bush" date="1373099347"]
    ко-ко-ко-ко-ко, ку-ка-ре-ку!!!
    [/quote]

    что, простите?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.