summaryrefslogtreecommitdiff
path: root/docs/start.doc
blob: 53a4e36a4ef351c469eb11dcf2c1b4a6d6d9dc4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
/*!

\page start.html

\title Getting Started

<html>
<title>Qtopia - The Qt palmtop environment</title>

<body>
<h1><i>Qtopia</i> - The Qt palmtop environment</h1>

<p>
<i>Qtopia</i> is a windowing system for handheld devices. It offers
developers the powerful Qt API, and provides users with fast and
intuitive interaction.

<h2>Developing for <i>Qtopia</i></h2>

<p>
The Qt API includes rich GUI functionality, and is suitable for
both large and small applications.

<p> 
Since <i>Qtopia</i> offers the complete Qt API, you can do much of
your development on any of the other platforms for which Qt is
available - Windows, Unix/X11, or Mac OS X. However, for optimal
tailoring of your application to the smaller screen and other
demands of a handheld environment, you should use the <i>Qtopia
SDK</i>.

<p>
The <i>Qtopia SDK</i> allows you to develop <i>Qtopia</i>
applications under the Linux desktop environment using the Qt Virtual
Framebuffer, which completely emulates the handheld <i>Qtopia</i>
environment. It also includes cross-compiler software so that you can
compile your application to run on the target handheld device.
If you do not already have the Qtopia SDK (this document is normally
part of the SDK), contact info@trolltech.com, or see the
<a href=http://www.trolltech.com>Trolltech</a> web site.

<p>To build applications for the SHARP SL5000 or similar StrongARM-based devices,
you will also need a StrongARM cross compiler. Entrants in the programming
contest for this device will have received both the SDK and a cross-compiler.

<p>
The SDK includes an example program. We recommend that you compile and
run this example to learn how things work, before tackling your own
projects.

<p>
To compile the example program for running on the Linux desktop:

<ol>
 <li>
    <p>
    Check the environment is correct:

    <p>
<pre>
   export QPEDIR=/opt/Qtopia
   export QTDIR=/opt/Qtopia
   export PATH=$QTDIR/bin:$PATH
   export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-generic-g++
   export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
</pre>

 <li> Take a copy of the example:

<pre>
   cd somewhere
   cp -r $QPEDIR/example .
   cd example
</pre>

 <li> Generate a Makefile:

<pre>
   tmake -o Makefile example.pro
</pre>

 <li> Build the example:

<pre>
   make
</pre>

 <li> Install it:

<pre>
   su # root privileges required to install
   cp example.desktop $QPEDIR/apps/Applications
   cp Example.png $QPEDIR/pics
   cp example $QPEDIR/bin
   exit # no need to be root anymore
</pre>

 <li> To run it, first run the Qt Virtual Framebuffer:

<pre>
   qvfb &amp;
</pre>

 <li> Then run the <i>Qtopia</i> environment:

<pre>
   qpe
</pre>

<p>
 Your application should be available in the Applications tab visible
inside the Qt Virtual Framebuffer window.
</p>

 <li> If you want to distribute your applications to others, build an RPM package, e.g.:
<pre>
   mkipks -rpm -arch i386 example.control
</pre>
</ol>

<p>
To make your own application, use the example program as a model. Make sure that
when you add files to your project, you also add them
to your project file (e.g. <tt>example.pro</tt>) and rerun the
<tt>tmake</tt> command to update the <tt>Makefile</tt>.

<p>
To build you application for the SHARP SL5000 rather than just running
on the desktop, the process is similar:

<ol>
 <li>
    <p>
    Check the environment is correctly set for the SHARP SL5000:

    <p>
<pre>
   export QPEDIR=/opt/Qtopia/sharp
   export QTDIR=/opt/Qtopia/sharp
   export PATH=$QTDIR/bin:/usr/local/arm/bin:$PATH
   export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-sharp-g++
</pre>

 <li> Rebuild the makefile ($TMAKEPATH has changed) above:
<pre>
   make clean
   tmake -o Makefile example.pro
</pre>

 <li> Build it:
<pre>
   make
</pre>

 <li> Install it (note that this is now going into the /opt/Qtopia/sharp/ directory):
<pre>
   su # root privileges required to install
   cp example.desktop $QPEDIR/apps/Applications
   cp Example.png $QPEDIR/pics
   cp example $QPEDIR/bin
   exit # no need to be root anymore
</pre>

</pre>

 <li> To install it on a device, build an ipk package file:
<pre>
   su # root privileges required to strip the executable
   mkipks example.control
   exit # no need to be root anymore
</pre>

<p>
  The resulting <tt>example-1.0.0.ipk</tt> can be installed on the
SL5000 by using <i>Qtopia Desktop</i>.
</p>

</ol>

<h3>Building Your Own Applications</h3>

Once you have built the example, you can proceed with writing
your own applicatons. If you are not familiar with Qt, you should
consult the Qt documentation by pointing your web browser at
<a href=file:/opt/Qtopia/doc/html/index.html><tt>/opt/Qtopia/doc/html/index.html</tt></a>
when you have installed the SDK, or use the online
<a href=http://doc.trolltech.com/>Trolltech Documentation Site</a>.
The <a href="http://www.trolltech.com/products/qt/whitepaper.html">Qt
Whitepaper</a> provides a good overview of, and introduction to, the
Qt API.

<p>
When you add more files to your application, just edit the project
file (e.g. <tt>example.pro</tt>) and rerun the <tt>tmake</tt>
command.

<p>
The <tt>.ui</tt> files are <i>Qt Designer</i> user interface files.
You can create and edit these using <i>Qt Designer</i>:
<pre>
   designer example.ui
</pre>
<i>Qt Designer</i>'s online documentation includes a complete
tutorial.

*/