LINUX.ORG.RU

Создание виджетов с использованием Cairo и GTK+ 2.8


0

0

Начиная с версии 2.8, GTK+ отрисовывает все свои элементы интерфейса с помощью мощной библиотеки векторной графики Cairo. В этой статье рассказывается как можно самому создать виджет GTK+, используя библиотеку Cairo для его отрисовки.

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от no-dashi

Ну мне хотелось всяких смешных преобразований - а они либо не работали, либо работали не так, как надо. Спасибо добрым людям на #freedesktop - объяснили (авторы cairo).

svu ★★★★★
()
Ответ на: комментарий от RRD

>ну не знаю. я программирую на qt и опыт таков, что даже простое окошко грузится очень долго. Любопытно смотреть на тайминги запусков конструкторов, когда используется не очень шустрый комп.

Тем ,кто говорит кто qt+kde работает быстро, потаскайте любую GTK/QT программу через KDE программу. Например через KEdit. Уберите эту программу с рабочего стола. Потаскайте опять эту программу по рабочему столу. Разницу заметите.

tommy ★★★★★
()
Ответ на: комментарий от RRD

А на каком из QT? QT3?

Не флейма ради, но:

На мой взгляд, QT2 очень медленно работало и gtk вырвался вперед. В последнее время наоборот - gtk все более неторопливо работает. Для этого (кроме других вещей) и ввели эти новые бакэнды, чтобы попытаться ускорить.

На QT намного удобнее писать. И проще. Все остальное - дело привычки.

McGray ★★
()
Ответ на: комментарий от McGray

> и ввели эти новые бакэнды, чтобы попытаться ускорить

Ой.

> На QT намного удобнее писать. И проще.

libglade для qt нет, поэтому qt идет лесом. Описывать gui на C++ - тонкое извращение.

anonymous
()
Ответ на: комментарий от tommy

Ага, еще и strace на эту программу пусти, как qt так и gtk и любуйся. Как на то что на рабочем столе так и на ту которую таскаещь.

McGray ★★
()
Ответ на: комментарий от McGray

> Ээээээ... Мы это, того... *.ui для этого используем....

Ааа... А на ходу их подгружаете? То-то же...

anonymous
()
Ответ на: комментарий от anonymous

Я конечно понимаю что это модно, но.. нафиг нужно?

Но если очень нужно, то http://lists.trolltech.com/qt-interest/2002-09/thread01329-0.html

(Если трудно искать, то:

QDialog *creditForm = (QDialog *) QWidgetFactory::create ("../credit/creditformbase.ui", receiver);

)

:)

McGray ★★
()
Ответ на: комментарий от svu

В смысле "смешных"? Там же все преобразования идут почти как по учебнику аналитической геометрии?! :-)

no-dashi ★★★★★
()
Ответ на: комментарий от anonymous

> Вы видимо ошиблись.

Вряд ли.

> QT-приложения занимают меньше памяти и быстрее работают.

Нет. Наоборот.

anonymous
()
Ответ на: комментарий от McGray

>но.. нафиг нужно?

Шобы было круто, шобы было модно.

anonymous
()
Ответ на: комментарий от RRD

>И грузиться как qt приложения?

а что с ними не так? плохо запускаются на твоем пне-100? работу менять не пробовал?

anonymous
()
Ответ на: комментарий от anonymous

>libglade для qt нет

и слава богу

>Описывать gui на C++ - тонкое извращение

ну если qtdesigner ты не осили тебе следует последовать за томми

anonymous
()
Ответ на: комментарий от anonymous

> и

> class MyWidget : public QWidget { };

> Честно признаюсь, Gtk+ асилить не могу...

Ты привел не равнозначные куски кода.

init ★★★★★
()
Ответ на: комментарий от tommy

>Потаскайте опять эту программу по рабочему столу. Разницу заметите

athlon64 3000, не заметно разницы. у тебя наверное что то с руками

anonymous
()
Ответ на: комментарий от anonymous

> libglade для qt нет, поэтому qt идет лесом. Описывать gui на C++ - тонкое извращение.

Ага. После Qt designer нафиг нам glade? :) Идите, читайте про uic и использование ui-файлов. :)

Skull ★★★★★
()
Ответ на: комментарий от anonymous

> QT-приложения занимают меньше памяти и быстрее работают.

> Нет. Наоборот.

Факты - в студию! :)

Skull ★★★★★
()
Ответ на: комментарий от McGray

> На QT намного удобнее писать. И проще. Все остальное - дело привычки. Господа, не забывайте, это дело принципиальное. QT - это не GNU. Совсем. Оно только OpenSource.

anonymous
()
Ответ на: комментарий от anonymous

> QT - это не GNU. Совсем. Оно только OpenSource.

Гы! Как же оно не GNU, если распространяется под GPL? Полностью названии лицензии написать? :)

Skull ★★★★★
()
Ответ на: комментарий от anonymous

>На QT намного удобнее писать. И проще. Все остальное - дело привычки. Господа, не забывайте, это дело принципиальное. QT - это не GNU. Совсем. Оно только OpenSource.

Кого это ебёт кроме красноглазых фоннатов?

anonymous
()
Ответ на: комментарий от Midael

> Кстати, попробовал тут inkscape. Тут всё говорили, что памяти много жрёт... Не знаю, не больше чем любая линуксовая прога. А вот скорость...мда, я понимаю, конечно, что этот софт рассчитан на мощные машины, но по-моему он и за мощной машине на сложных рисунках притормаживать будет. Никаким ускорение там и не пахнет. Кстати он ведь не cairo для отрисовки использует?

The primary difference is that we use a different renderer than Sodipodi's, and ours is slower.

Around 0.37 or 0.38, it became apparent that the renderer we inherited from Sodipodi had profound correctness problems and didn't deal with edge cases well. We tried to address its issues, but found the code to be essentially unmaintainable.

As a stopgap measure, we repurposed the computational geometry library we had been using for union/intersection/etc as a renderer. It's more correct (and slightly less opaque), but heavyweight and slow compared to a specialized rasterizer.

The ultimate plan is to use Cairo for rendering once it matures sufficiently. It's painstakingly correct and should also permit the use of hardware acceleration (via Glitz). We're mainly awaiting a solid Win32 port and further optimization of its software renderer.

Как видите, Каир пока в пролёте :)

Это было написано около полугода назад. Примерно через месяц после этого Xara объявили о заопенсорсивании кода eXtreme, сразу после чего Bulia Byak пообещал поглядеть в код супербыстрого заровского рендерера и переиспользовать этот код.

Не исключена возможность переиспользования изменённых кусков кода заровского рендерера прямо в Cairo.

FYI, Cairo опционально может использоваться в Scribus CVS HEAD. Тормозов - ноль целых ноль десятых.

AP ★★★★★
()
Ответ на: комментарий от tommy

> Тем ,кто говорит кто qt+kde работает быстро, потаскайте любую GTK/QT программу через KDE программу. Например через KEdit. Уберите эту программу с рабочего стола. Потаскайте опять эту программу по рабочему столу. Разницу заметите.

I like to movve it, move?

За эти эксперименты деньги платят? А то людям, знаете ли, работать надо, а не окошки тудя-сюда таскать.

AP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.