Jump to content

    

Графика для Linux.

Здравствуйте!

Задача: разработать панель оператора 320х240.

За основу выбрана отладочная плата Cirrus Logic EDB9315A.

Основная сложность в том, что программировать GUI будут программеры заказчика. Надо создать для них примеры и т.д.

 

Начал я с QT, но поговорив с Trolltech'ом, узнал, что лицензирование дорого (от Э7500 со средами разработки) и запутанно (пока на разобрался до конца).

 

Linux использовать придеться (и хочется!), иначе потянутся другие сложности.

 

Вопрос: что посоветуете для графики?

 

P.S. Если есть проблемы с заливкой платы, см. сюда arm.cirrus.com/docs/2.6/x160.html

Share this post


Link to post
Share on other sites
Здравствуйте!

Задача: разработать панель оператора 320х240.

За основу выбрана отладочная плата Cirrus Logic EDB9315A.

Основная сложность в том, что программировать GUI будут программеры заказчика. Надо создать для них примеры и т.д.

 

Начал я с QT, но поговорив с Trolltech'ом, узнал, что лицензирование дорого (от Э7500 со средами разработки) и запутанно (пока на разобрался до конца).

 

Linux использовать придеться (и хочется!), иначе потянутся другие сложности.

 

Вопрос: что посоветуете для графики?

 

P.S. Если есть проблемы с заливкой платы, см. сюда arm.cirrus.com/docs/2.6/x160.html

 

У Trolltech есть старые версии open-source qtopia (например, qtopia-free-2.1.0), которые идут не по dual-license, а по обычной GNU GPL лицензии. Поэтому, если заказчик программирует для себя, или открытие исходников не является для него проблемой, то можете смело ставить эту версию QTopia и использовать ее для коммерческого проекта.

 

Если открытие исходников не входит в планы, то похоже из бесплатного кроме как FLTK особых вариантов нет.

Share this post


Link to post
Share on other sites

qt не рекомендую, лучшее(из бесплатного) чем я пользуюсь и мне нравится это wxWidgets к тому же к нему есть опен сорс редактор форм, вобщем вот ссылки:

http://wxwidgets.org

http://wxformbuilder.org/

 

вот скрины готовых интерфейсов: http://www.wxwidgets.org/about/screensh.htm

Share this post


Link to post
Share on other sites
qt не рекомендую, лучшее(из бесплатного) чем я пользуюсь и мне нравится это wxWidgets к тому же к нему есть опен сорс редактор форм, вобщем вот ссылки:

http://wxwidgets.org

http://wxformbuilder.org/

 

вот скрины готовых интерфейсов: http://www.wxwidgets.org/about/screensh.htm

 

А можно узнать причины неприязни к QT?

Или это из серии - "я знаю только Delphi, поэтому Delphi круче"?

Share this post


Link to post
Share on other sites

wxWidgets вообще-то не есть GUI.

Это некий довольно убогий фреймворк с кучей далеко не embedded функций тесно привязанный к PC платформе.

Смотрите сами: http://docs.wxwidgets.org/stable/wx_functions.html#functions

Шансы поставить его на голую платформу близки к нулю.

 

Qt - тот же гемор. Это тоже фреймворк, с кучей не относящихся к GUI функций.

Плюс дополнительный гемор - не прямая компиляция. Если Wiki не врет , то там нужно предварительно пропускать исходники через Meta Object Compiler.

В переводе это типичный obfuscator. Т.е. портирование затруднено до предела.

Из опыта работы с Qt на отладочной борде с i.MX27 его так называемая embedded версия требует не менее 30 Мег RAM-а

 

 

 

А можно узнать причины неприязни к QT?

Или это из серии - "я знаю только Delphi, поэтому Delphi круче"?

Share this post


Link to post
Share on other sites
А можно узнать причины неприязни к QT?

Или это из серии - "я знаю только Delphi, поэтому Delphi круче"?

 

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

 

wxWidgets вообще-то не есть GUI.

Это некий довольно убогий фреймворк с кучей далеко не embedded функций тесно привязанный к PC платформе.

Смотрите сами: http://docs.wxwidgets.org/stable/wx_functions.html#functions

Шансы поставить его на голую платформу близки к нулю.

 

Qt - тот же гемор. Это тоже фреймворк, с кучей не относящихся к GUI функций.

Плюс дополнительный гемор - не прямая компиляция. Если Wiki не врет , то там нужно предварительно пропускать исходники через Meta Object Compiler.

В переводе это типичный obfuscator. Т.е. портирование затруднено до предела.

Из опыта работы с Qt на отладочной борде с i.MX27 его так называемая embedded версия требует не менее 30 Мег RAM-а

 

мда... довольно веселый ответ особенно еси учесть что(надеюсь вы понимаете английский):

 

"wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native. This is because wxWidgets uses the platform's own native controls rather than emulating them. It's also extensive, free, open-source, and mature."

 

далее идете и читаете вот это http://www.wxwidgets.org/about/datasheets/...etsEmbedded.pdf

и это http://www.wxwidgets.org/docs/embedded.htm

 

если это называется "тесно привязанный к PC" и "вообще-то не есть GUI" значит я испанский летчик... а насчет убогости... вы просто видать не писали интерфейсов на чистом ассемблере....

 

а вообще нужно сказать что на вкус и цвет фломастеры разные...

Share this post


Link to post
Share on other sites
Здравствуйте!

Задача: разработать панель оператора 320х240.

За основу выбрана отладочная плата Cirrus Logic EDB9315A.

Основная сложность в том, что программировать GUI будут программеры заказчика. Надо создать для них примеры и т.д.

 

Начал я с QT, но поговорив с Trolltech'ом, узнал, что лицензирование дорого (от Э7500 со средами разработки) и запутанно (пока на разобрался до конца).

 

Linux использовать придеться (и хочется!), иначе потянутся другие сложности.

 

Вопрос: что посоветуете для графики?

 

P.S. Если есть проблемы с заливкой платы, см. сюда arm.cirrus.com/docs/2.6/x160.html

Вы можете выложить свой исходный код и Trolltech не попросит у Вас ни цента. Вряд ли кому-то будет особый зыск с GUI Вашего проекта... мало того, можете еще накатать пару статей в журналы, мол "программирование Qt под встроенные системы" с ссылками на свой проект. Ведь лицензия Qt обязывет раскрыть только код для...

Share this post


Link to post
Share on other sites

Рекламой нам мозги кормить не надо, тем более такой не убедительной.

Можете показать что сами сделаи на wxwidgets?

И каким образом они к вам попали, в смысле получили вы их готовыми на чужом KIT-е или портировали сами.

 

 

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

мда... довольно веселый ответ особенно еси учесть что(надеюсь вы понимаете английский):

 

"wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native. This is because wxWidgets uses the platform's own native controls rather than emulating them. It's also extensive, free, open-source, and mature."

 

далее идете и читаете вот это http://www.wxwidgets.org/about/datasheets/...etsEmbedded.pdf

и это http://www.wxwidgets.org/docs/embedded.htm

 

если это называется "тесно привязанный к PC" и "вообще-то не есть GUI" значит я испанский летчик... а насчет убогости... вы просто видать не писали интерфейсов на чистом ассемблере....

 

а вообще нужно сказать что на вкус и цвет фломастеры разные...

Share this post


Link to post
Share on other sites

Замечательная дискуссия получается!

Настоящий индеец должен всё попробовать (не в смысле шмали, конечно), но не сразу.

 

По поводу wxwidgets...

У меня целевая система 64 MB RAM, 16 MB flash. Увеличитвать память затратно. Можно поставить диск на компакт-флэши, но крайне не желательно из-за суровых условий применения (нефтепромысел).

В связи с этим вопросы:

1. если применять wxwidgets, то какой порт - wxX11 или wxGTK?

2. будет ли X11 нормально работать на такой машине? Если ли порт X11 для EDB9315 или рецепт как его изготовить? Надо будет спросить на форуме Cirrus'a.

Share this post


Link to post
Share on other sites
wxWidgets вообще-то не есть GUI.

Это некий довольно убогий фреймворк с кучей далеко не embedded функций тесно привязанный к PC платформе.

Смотрите сами: http://docs.wxwidgets.org/stable/wx_functions.html#functions

Шансы поставить его на голую платформу близки к нулю.

 

Qt - тот же гемор. Это тоже фреймворк, с кучей не относящихся к GUI функций.

Плюс дополнительный гемор - не прямая компиляция. Если Wiki не врет , то там нужно предварительно пропускать исходники через Meta Object Compiler.

В переводе это типичный obfuscator. Т.е. портирование затруднено до предела.

Из опыта работы с Qt на отладочной борде с i.MX27 его так называемая embedded версия требует не менее 30 Мег RAM-а

wx даавно смотрел - не понравилось :( поэтому не скажу хорош он или плох

а про Qt - в данном случае "нефиг на зеркало пенять" - при минимальном знании английского (для прочтения доки) он настраиваеться так-как нужно автору ....MOC зоветься автоматом - и нужен для работы связки signal-slot - и это более правильно чем Борландовское творение (VCL - Delphi & Builder с добавлением несуразностей в язык).Qt в данном случае совершенно прозрачен и собираеться пачкой компиляторов без лишних(ну еслим честно они бывают) телодвижений.

про память .... я в свое время ради прикола - прочитавши qtopia на ngw100(ngw100 это эвалюшен для avr32 ap7000) запихал на него нечто для красивого отбражения состояния железки - загрузку проца,памяти ,сколько пролетело через езернеты и по цепрчкам iptables ну и остальной фигни какую смог придумать - на плате 32 метра оперативки и оставалась примерно 4M ....

Цена да - кусаеться в свое время покупали за 2500*2 (две платформы) но это было 4 года назад (еще 3 версия)...Щаз незнаю - 4 покупали без моего участия ....

Share this post


Link to post
Share on other sites
Qt - тот же гемор. Это тоже фреймворк, с кучей не относящихся к GUI функций.

Плюс дополнительный гемор - не прямая компиляция. Если Wiki не врет , то там нужно предварительно пропускать исходники через Meta Object Compiler.

В переводе это типичный obfuscator. Т.е. портирование затруднено до предела.

Из опыта работы с Qt на отладочной борде с i.MX27 его так называемая embedded версия требует не менее 30 Мег RAM-а

 

Не стоит быть таким категоричным в вещах, в которых не разбираетесь.

QTopia отлично портируется на embedded Linux, так как работает напрямую через framebuffer.

Кроме того, перед компиляцией библиотеки пользователь может сам выбрать при помощи QConfig какая функциональность ему нужна - соответственно можно уменьшить размер, выбрав только нужные фичи. Лет 6-7 назад, когда память была дорогая, у меня довольно сложное приложение на QT отлично крутилось на SA1110 c 16 Мб RAM.

Share this post


Link to post
Share on other sites

Здравствуйте!

Решил пока остановиться на QT. Всё таки Cirrus кое как это поддерживает. Для EDB9315 есть тулчейн, который автоматически лепит бибилотеки QT и окружение рабочего стола OPIE. Так же есть инструмент, который эмулирует фреймбуфер для Х11. То есть можно запускать приложение на ПК, и оно, вроде как, должно выглядеть как на контроллере.

Пока сумел запустить Hello world! из примеров на плате и на ПК. Это получилось не сразу.

 

Чтобы установить QT/X11 делай раз:

#do-all

#Создать директрию "qtx11" там же, где находится linux-crater_1-0-3/

#копировать и запустить скрипт:

#sourse do-all

wget http://vanille.de/tools/uic-qt2

chmod u+rx uic-qt2

wget http://vanille.de/tools/qvfb-qt2

chmod u+rx qvfb-qt2

wget ftp://ftp.trolltech.com/pub/qt/source/qt-....10-free.tar.gz

tar zxvf qt-embedded-2.3.10-free.tar.gz 1>/dev/null

cd qt-2.3.10

export QTDIR="$(pwd)"

mkdir bin

ln -s $QTDIR/../uic-qt2 bin/uic

ln -s $QTDIR/../qvfb-qt2 bin/qvfb

chmod 666 src/kernel/qpixmapcache.cpp src/kernel/qwindowsystem_qws.h src/tools/qvaluestack.h

patch -p1 < ../../linux-crater_1-0-3/packages/qt/qt-2.3.10-gcc4.1.1-fix.patch

yes yes |./configure -qconfig "" -depths 4,16,24,32 -system-jpeg -system-libpng -system-zlib -no-xft -qvfb

make

export PATH=$QTDIR/bin:$PATH

 

Чтобы запустить фреймбуфер делай два:

#runfb

#запускает фреймбуффер

#source runfb

export QTDIR=$PWD/qt-2.3.10

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

qvfb -width 320 -height 240 &

sleep 5

 

Чтобы поздороваться с миром делай три:

#run-t1

#завускает Hello world! из примера

#source run-t1

source runfb

$QTDIR/tutorial/t1/t1 -qws &

 

Как скомпилирвать этот же пример для EDB9315A в linux-crater напишу попозже, если кому то интересно...

Там я много ковырялся, и не только с QT. В общем, работать можно.

Share this post


Link to post
Share on other sites
cd qt-2.3.10

это реально 2 ветка ? брось каку - возьми 3 хотя-б , лучше 4 но тут смотреть надо что лучше к задече подходит .... она приятнее(4) но и более массивная ....

по qt тут можно поспрошать ;)

Share this post


Link to post
Share on other sites

Пришлось однажды использовать Nano-X. В качестве элементарного GUI сойдет (кнопки, простейшие окошки). Размер 100кб, правда проект уже довольно давно не развивается. Включен в дистрибутив uClinux.

Почему никто не предложил использовать библиотеку GTK? По-моему неплохая альтернатива QT

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this