QTOPIA tutorial ?

Aquatlantis
Hello,

is there a simple tutorial to develop Qtopia application  ?

How to compile it , what do i need to make it run on mini2440 ?

Thank you

Killerwatt
http://doc.trolltech.com/

Killerwatt
http://www.friendlyarm.net/downloads

Stranet
Hi Aquatlantis,
have you done something with Qtopia on mini2440 board??

I can't do nothing!!

Please help! :D

marco
I have similar problem, I'm not able to build the arm-qtopia.
I install the cross compiler arm-gcc that unpack the arm-qtopia (everithing
from frendly arm web site) but the build script returns several errors.
I used a ubuntu distro.

skip2816
see http://friendlyarm.net/forum/topic/332?lang=en

The fixes for x86 and arm are the same.

To find out more info about the errors do:
configure as in buit script
go to the qtopia subdir and remove all occurrence of " > /dev/null " from
all Makefiles.
after them make

Use a 32 Bit distro on host. This saves lots of hours! 64 Bit ones are
confused on 32/64 Bit libs and headers.

s_stavrev
Step by step example of building a GUI application 
http://farm2440.blogspot.com/

s_stavrev
There is a new post on my blog http://farm2440.blogspot.com.
It is about how to upload the application and how to create desktop
louncher

Mario Gonzalez
Hi,
I succeed with Qt cross compile and ts lib cross compile in my 7šLCD unit.
I also can make some applications without major problems. I found that make
applications with Qt 4.x is easier since you can have the QtCreator, in
QtCreator you can make a program, test it in x86 Linux, and then compile to
the mini2440, download it using ftp and run it in a telnet terminal.

I have some documentation made by myself to cross compile Qt4.5, but some
information is missed, for example, sometimes you need some extra tools and
I simple installed it using apt-get but I didn't document it.

Regards,
Mario

david
HI,
i could cross compile qt-everywhere-opensource-src-4.6.2, with out
mistakes, following the instructions of the page:

http://www.sereno-online.com/site/2010/05/01/qt-4-6-2-installation-proce...

i have create a simple hello world on qt, but how can i put it run on my
mini2440?


i have seen that many people send it by ftp or telnet, cant it work if i
send it by my usb?


and i have a doubt with this step:

In order to run our ARM compiled applications we have to set following
environment variables on the mini2440 board:

export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/usr/input/ts
export TSLIB_CALIBFILE=/usr/etc/pointercal
export TSLIB_CONFFILE=/usr/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export LD_LIBRARY_PATH=/usr/local/Qt/lib
export QTDIR=/usr/local/Qt
export QWS_MOUSE_PROTO=tslib:/usr/input/ts
export QWS_DISPLAY=LinuxFB:mmWidth=310:mmHeight=190

where do i put this lines??


thanks

david
s_stavrev, i see your page, and i tried to follow your steps:

but i use another package for my cross
compile:qt-everywhere-opensource-src-4.6.2.tar.gz

I ran your command:

qmake -spec
/usr/local/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++
-o Makefile *.pro 

but appears me this:

Cannot find file: *.pro.

thats when i ran a project with qt designer like you did on your forum.

after that i try with a simple hello world who has a file .pro but
appearsme this:

qt_config.prf:7: include(file) requires one argument.


i have follow all the steps of my previus link for my cross compilation so
i dont know if maybe i missing something else.

thanks

s_stavrev
FriendlyARM comes with Qtopia 2.2 and I don't know whether newer version
can be installed. If you compile an application with Qt 4.6 it won't run on
out-of-the-box FriendlyARM. So the first thing is to install the
cross-compiler on your PC
http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.3.2.tgz
and the development tools
http://www.friendlyarm.net/dl.php?file=arm-qtopia-2.2.0_20100108.tgz

.pro file is the project file. You probably missed to create it like
described on step 5

You can upload application using USB flash drive or SD card. But without
launcher you can run only console applications

jrh_engineering
These are my favorite two links for getting started:

http://www.friendlyarm.net/forum/topic/885

http://equallybad.blogspot.com/2010/02/project-how-to-setup-default-dev-...

For the second link:
At some point in time he has you change the source to add the following:
(S_IRUSR|S_IWUSR));

This may no longer be neccessary since the latest version of the source has
the 0777 as shown below:
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY, 0777); 

Other than that, follow the instructions exactly.  I did, and everything
works fine for me now.  

The best starting point for ARM9 based projects is the hello project he
talks about.  Be sure to run the ./build script in the hello directory and
not "make" as other tutorials will instruct you to do.  The ./build script
will generate the proper environment variables for you as referred to in
other tutorials.

After a proper install you will find the following two files:

Qt Assistant is located at:
/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/dqt/bin/assistant

Qt Designer is located at:
/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/designer

Google for the book: CPP GUI Programming With QT 3.pdf.  This is a good
resource.  However, the build instructions are for x11 development, not for
arm development.  

The basic instructions for x11 dev are as follows:
1. generate .ui file from Designer
2. Create your main.cpp which instantiates your class you created in
designer.  This is talked about in the .pdf book I mentioned above.
3. In terminal enter $ qmake -project
4. get the generated project file name and then:
$ qmake proj_name.pro
Now you have a file called Makefile
5. make generates an x11 executable.
You should start with general x11 design to get to know the tools.  The
.pdf book above is good for that.

As for ARM9 development:
In the book above it will show you a main.cpp which is different from the
main.cpp you will find in the "hello" example project.  This is OK.  The
sample "hello" project has the same code.  It's just encapsulated in a
macro. 

In the .pdf book, you will eventually need to understand the section on
"subclassing".  The "hello" example project is a perfect example of
subclassing.  It's main.cpp file is already pointing to the sub class file.
 The "hello" project stores hello_base.cpp and hello_base.h in a hidden
directory called .ui\release-shared.  

The sample "hello" project is located at:
/opt/FriendlyARM/mini2440/arm-qtopia/hello.  The second link above
describes how to build and download it.  The .pdf book I mentioned shows
you how to add buttons to the user interface, add slots, and make
connections to the slots.  After you rebuild the project, view the hidden
hello_base.h and hello_base.cpp.  The slots defined there will need to be
copied to your hello.h and hello.cpp sub class files.

good luck...


Qt designer