2012-01-28 14 views
3

Возможно, это так же, как «Как мой программный код переходит к графическому интерфейсу на экране устройства через различную систему окраски Qt5?»Как работает Qt4.8 (или Qt 5)?

Поскольку Qt поддерживает различные виды платформ, мои вопросы только базовые на Linux и Embedded Linux (потому что оба с открытым исходным кодом операционной системы и отличаются в живописи :-))

Мой вопрос внимание на эти темы:.

  1. Есть QWidget, QGraphicsItem, Rectangle (в QML) разные в системе окраски? И что это?

  2. Какой из них не используется QPainter (QPaintEngine) класс?

  3. Сколько лакокрасочных двигателей реализовано в Qt4.8 (или Qt5)? Например, QRasterPaintEngine.

  4. Если платформа Linux (с поддержкой X11), будет ли Qt использовать X11 API делать картину? Тогда в чем разница между движком краски X11 и QRasterPaintEngine? Если платформа поддерживает OpenGL, то Qt будет использовать API X11 или API OpenGL?

  5. Если GPU поддерживает OpenGL, Qt может использовать OpenGL; но если OpenGL не поддерживается GPU, то как Qt относится к этой ситуации?

+0

Один вопрос на вопрос пожалуйста. – Mat

+0

@Mat: Вы хотите сказать «Одно сообщение за вопрос», не так ли? – menjaraz

ответ

3

Ваш вопрос очень широк, большинство из которых можно ответить в документации Qt QPaintEngine:

http://developer.qt.nokia.com/doc/qt-4.8/qpaintengine.html

Класс QPaintEngine обеспечивает абстрактное определение как QPainter приближается к данное устройство на данной платформе. Qt 4.0 предоставляет несколько готовых реализаций QPaintEngine для различных художников, поддерживаемых нами. Мы предоставляем один лакокрасочный движок для каждого окна. Система и каркас, которые мы поддерживаем. Сюда входит X11 на Unix/Linux и CoreGraphics на Mac OS X. Кроме того, мы предоставляем реализаций QPaintEngine для OpenGL (доступных через QGLWidget) и PostScript (доступный через QPSPrinter на X11). Кроме того, есть механизм рисования на основе растра, который является резервным, когда двигатель не поддерживает определенную возможность.