QT question

june
-i am a newbie please be patient.
-i want to develop qtopia applicaton for mini2440.
-i have installed the qt package that came with the dvd.both desktop and 
 arm.
-i have run the hello example also both on desktop and on mini.
-now how can i write my own application?
-i could not find any documentation for "how to develop applications  
 using  qt-2.2.0"?!
-i found a book "c++ GUI programming with qt4", but my question is are
qt-2.2.0 and qt4 compatible?
-will applications compiled with qt4 work on my current miniboard which has
qt-2.2.0 headers i guess!

thankx for your patience,please help

eddylau
If you can read chinese,the link below may be useful for you.

http://www.arm9home.net/read.php?tid-4399.html

Thanks

Eddy

june
i wish i could..

skip2816
Hi june,

inside qtopia/doc/html dir you can find an short intro writing an qtopia
app. 
For developing qt2 apps you can use any infos about qt3 too. Even the api
is smaller. Refere the doc under qt2 dir.
You can run an qt4 app, but not as a qtopia app. Means your qt4 app needs a
normal main function. Integration in qtopia is not possible, you had have
to link against qtopia, qte (2) and qt4 libs which not work.

skip

kevin
man i'm confused again..what is qt qte qtopia qt/embedded qt-core qt-2 qt-3
qt-4..with the numbers i can make out are versions but what with the
names...its damn frustrating!

skip2816
hi kevin,

I will try to explain:

qt-2/qt-3/qt-4 stays for the major version of Qt.

qte is a short for qt/embedded

qt/embedded is a library based on qt (2/3/4), that provided the functions
from qt (2/3/4) and additioal a frame buffer for visulizing.
In oppsite therefor, the 'normal' qt uses the installed windowing system
like X11 on UNIX.

qte is the name of the qt/embedded library. You link your app with
 -lqte, not -lqt.

Qtopia is a desktop window, the top level window in the frame buffer of
qte. It provided program icons,  status bar, task switch, any smaller apps
etc.
To create an app running inside this window, you must use a special form of
the main function.

qt-core is one of librarys from qt 4.

kevin
so i guess qt-2.2.0-friendlyARM is qt-2 only ryt?

can u tell me how do i cross compile in qt-2.2.0 ?

kevin
or in other words if i want to write an application what are the files that
i need to write?

skip2816
1. install and compile x86-qtopia and arm-qtopia.
2. make your prog running in x86-qtopia. 
3. after that you only need to change the compiler from g++ to
arm-linux-g++ and the include/library path from .../x86-qtopia/... to 
.../arm-qtopia/...
For installing and compiling are good howto's in the forum.
Qtopias hello is a good starting point for a app.

skip

kevin
what qt version do u use for application development?were u successful in
developing any?

skip2816
I use Qtopia 2.2.0, the factory default, for my apps. My project must be
running at late spring, it's hobby and my time therefor is limited. So is
using the factory default the fastest way to success. 

skip

kevin
hello skip can you figure out what might be the problem here..i created a
hello.pro file and did after tmake when i make it gives following error?


make
arm-linux-gcc  -o hello hello.o  
-L/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/lib -lm
-lqte
/usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm
-none-linux-gnueabi/bin/ld:
cannot find -lqte
collect2: ld returned 1 exit status
make: *** [hello] Error 1


please help

skip2816
your -L option points to qt's /lib but it must point to qtopia's /lib.
I have my micro not handy, so from my memory the right path should be 
-L/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt
/Qtopia/lib
Youe have to link 4 libs: -lqte -lqpe -lqtopia -lqtopia2 (but ever -lqt)

kevin
Well by doin that i get this-->


arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2
-DNO_DEBUG
-I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/image/opt
/Qtopia/lib/include
-o hello.o hello.cpp
hello.cpp:1:125: error: qapplication.h: No such file or directory
hello.cpp:2:125: error: qpushbutton.h: No such file or directory
hello.cpp: In function 'int main(int, char**)':
hello.cpp:6: error: 'QApplication' was not declared in this scope
hello.cpp:6: error: expected `;' before 'a'
hello.cpp:7: error: 'QPushButton' was not declared in this scope
hello.cpp:7: error: expected `;' before 'hello'
hello.cpp:8: error: 'hello' was not declared in this scope
hello.cpp:9: error: 'a' was not declared in this scope
hello.cpp: At global scope:
hello.cpp:4: warning: unused parameter 'argc'
hello.cpp:4: warning: unused parameter 'argv'
make: *** [hello.o] Error 1

kevin
hi skip thanks i have managed to link the way you sedat hint..thanks a lot
for th.but now m having trouble executing the bin file it doesnot give me
any error or warning.it just dont execute!

skip2816
open qtopia's console app and start there. So you will be able to see any
error messages.

kevin
?? dint get it? sorry :(

Ankit M Patel
Hello Sir,
I am having final year project on the topic "Embedded System based on ARM9
with Zigbee interface"
I have to make a GUI file to display it on LCD which is already mounted on
ARM9 kit.
I had made one program in qt3 in which i had placed on pushbutton now i
need to program that pushbutton such that if it is clicked once than some
text shuold be display on the lineedit window of GUI.
Thank you.

patisonq
can you post code if this program, I already installed arm-qtopia,
x86-qtopia and qt creator. I want to write a window application so I
thought that I will need creator to do that...or mayby I'm wrong?

AAAS
I am working on mini2440; trying to build the HELLO program and I am
getting the following error


/opt/FriendlyARM/toolschain/4.4.3/lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../
../arm-none-linux-gnueabi/bin/ld:
cannot find -lqtopia2
collect2: ld returned 1 exit status
make: *** [hello] Error 1

need help ASAP

Wingz
wow. Its really painful reading these entries!
I would suggest a completely different approach which (only according to
me) is a lot more painless when you want to get things done on the mini2440
(if you are a beginner like me).  
for qt see this link :
http://wingston.workshopindia.com/wingz/video-a-qt-demo-application-cont...
I have the tutorials of exactly how to do that up on my blog.

FYI: If you are a beginner : The approach I would sincerely suggest that
you use the pengutronix mini2440 BSP to work on the mini2440. The
pengutronix chaps have written a very good BSP that you can use to get
things working on the mini2440 with a decent bit of effort on your part.

and i'm sorry but i guess an expert in qt might be able to help you with
your individual errors(at first glance i think you have to use "qmake" to
compile qt and not "make"). But this is a mini2440 forum and not a Qt one.
So i think there are only a few qt experts around (you'll have to wait
quite a bit till they find your post!). 

If you do know some embedded systems, Qt progamming and all and are verry
fussy about using the friendlyarm-
http://suchakra.wordpress.com/2011/05/17/qt-on-mini2440/ might be of
interest. But it is not a completely definitive guide but the tutorial
works. (i have tried it)

Andre
here is a video tutorial of how to create a hello world application with QT

http://www.youtube.com/watch?v=ghzRuwEAWdo

Suchakra
Hi,
For all those who need a Quick into to Qt on Embedded Devices, please go
through : http://fudcon.in/sites/default/files/slides/talk-fudcon2011.pdf
Its quite generic but it will give you some high level idea. 

Also, I'd advice everyone who's having problems to rebuild the Qt libraries
(4.6 and above instead of 2.2.0) from scratch and then follow-up with
building an application (which indeed is quite easy with Qt Creator) You
can even specify a build target in it, so that you can build your
applications for mini2440 directly from Qt Creator. 

Using Qt4 gives you added advantage of new and powerful APIs without
compromising much on performance on the mini. I think Wingz would surely
agree on that :)

Please feel free to ask specific questions. Btw most of the errors above
are surely related to library path being incorrectly provided or library
not being present - all the more reason to build your own libs from scratch
:)

P.S. Wingz - Thanks for visiting the blog. I'm happy I was of a little help