OSDN Git Service

タグを打ち忘れていたついでに、html版ドキュメントを追加しました。
[ring-lang-081/ring.git] / docs / ja-jp / build / html / qtmobile.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>モバイル用 RingQt アプリケーションのビルド方法 &mdash; プログラミング言語 Ring 1.12 取扱説明書</title>
10     
11     <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    './',
17         VERSION:     '1.12',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="_static/jquery.js"></script>
24     <script type="text/javascript" src="_static/underscore.js"></script>
25     <script type="text/javascript" src="_static/doctools.js"></script>
26     <script type="text/javascript" src="_static/translations.js"></script>
27     <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
28     <link rel="next" title="RingQt アプリケーション用のオブジェクトライブラリ" href="ringqtobjects.html" />
29     <link rel="prev" title="デスクトップとモバイル開発 (RingQt)" href="qt.html" />
30     <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
31
32   </head>
33   <body role="document">
34 <div class="topbar">
35   <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">&#x1f369;Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
36   <ul>
37     
38     <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
39     <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
40     <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
41     <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
42     <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
43     <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
44     
45     <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46     <li><a title="総合索引" href="genindex.html">Index</a></li>
47     <li>
48       
49       
50 <form action="search.html" method="get">
51   <input type="text" name="q" placeholder="Search" />
52   <input type="hidden" name="check_keywords" value="yes" />
53   <input type="hidden" name="area" value="default" />
54 </form>
55       
56     </li>
57   </ul>
58 </div>
59
60 <div class="related">
61     <h3>ナビゲーション</h3>
62     <ul>
63       <li class="right">
64         <a href="ringqtobjects.html" title="RingQt アプリケーション用のオブジェクトライブラリ">
65           次へ &raquo;
66         </a>
67       </li>
68       <li class="right">
69         <a href="qt.html" title="デスクトップとモバイル開発 (RingQt)">
70           &raquo; 前へ
71         </a>
72          |
73       </li>
74       <li>
75         <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
76          &raquo;
77       </li>
78       
79       <li>モバイル用 RingQt アプリケーションのビルド方法</li> 
80     </ul>
81 </div>
82   
83
84     <div class="document">
85       <div class="documentwrapper">
86         <div class="bodywrapper">
87           <div class="body" role="main">
88             
89   <div class="section" id="ringqt">
90 <span id="index-0"></span><h1>モバイル用 RingQt アプリケーションのビルド方法<a class="headerlink" href="#ringqt" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>モバイル用 RingQt アプリケーションのビルド方法を学びます。</p>
92 <div class="section" id="index-1">
93 <span id="id1"></span><h2>開発環境のダウンロード<a class="headerlink" href="#index-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
94 <p>このリンクをご確認ください : <a class="reference external" href="http://doc.qt.io/qt-5/androidgs.html">http://doc.qt.io/qt-5/androidgs.html</a></p>
95 <p>ダウンロード</p>
96 <ul>
97 <li><p class="first">Android SDK ツール</p>
98 <blockquote>
99 <div><p><a class="reference external" href="https://developer.android.com/sdk/index.html">https://developer.android.com/sdk/index.html</a></p>
100 </div></blockquote>
101 </li>
102 <li><p class="first">Android NDK (android-ndk-r21 で検証済み)</p>
103 <blockquote>
104 <div><p><a class="reference external" href="http://developer.android.com/tools/sdk/ndk/index.html">http://developer.android.com/tools/sdk/ndk/index.html</a></p>
105 </div></blockquote>
106 </li>
107 <li><p class="first">Java SE Development Kit (JDK) v6 以降</p>
108 <blockquote>
109 <div><p><a class="reference external" href="https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html</a></p>
110 </div></blockquote>
111 </li>
112 </ul>
113 </div>
114 <div class="section" id="android-sdk">
115 <span id="index-2"></span><h2>Android SDK の更新<a class="headerlink" href="#android-sdk" title="このヘッドラインへのパーマリンク">¶</a></h2>
116 <p>開発で必要な API および、ツールのパッケージを得るには Android SDK を更新します。</p>
117 <blockquote>
118 <div>Android 4.4.2 (API 19) で検証済み。</div></blockquote>
119 <ul class="simple">
120 <li>Windows では -  愛用のシステムに合わせて環境変数を定義します。</li>
121 </ul>
122 <ol class="arabic simple">
123 <li>JAVA_HOME</li>
124 </ol>
125 <div class="highlight-ring"><div class="highlight"><pre><span class="n">用例</span> <span class="p">:</span> <span class="n">C</span><span class="p">:</span><span class="o">\</span><span class="n">Program</span> <span class="n">Files</span> <span class="p">(</span><span class="n">x86</span><span class="p">)</span><span class="o">\</span><span class="n">Java</span><span class="o">\</span><span class="n">jdk1</span><span class="p">.</span><span class="mf">8.0_05</span>
126 </pre></div>
127 </div>
128 <ol class="arabic simple" start="2">
129 <li>ANDROID_HOME</li>
130 </ol>
131 <div class="highlight-ring"><div class="highlight"><pre><span class="n">用例</span> <span class="p">:</span> <span class="n">C</span><span class="p">:</span><span class="o">\</span><span class="n">JavaAndroid</span><span class="o">\</span><span class="n">AndroidSDK</span>
132 </pre></div>
133 </div>
134 </div>
135 <div class="section" id="qt-for-android">
136 <span id="index-3"></span><h2>Qt for Android のインストール<a class="headerlink" href="#qt-for-android" title="このヘッドラインへのパーマリンク">¶</a></h2>
137 <ul>
138 <li><p class="first">このリンクから Qt for Android をインストールします。</p>
139 <blockquote>
140 <div><p><a class="reference external" href="https://download.qt.io/archive/qt/5.12/5.12.6/">https://download.qt.io/archive/qt/5.12/5.12.6/</a></p>
141 </div></blockquote>
142 </li>
143 <li><dl class="first docutils">
144 <dt>Qt Creator を実行後に、 ツール → オプション → Android を選択して</dt>
145 <dd><p class="first">Android NDK と SDK のパスを追加します。</p>
146 <blockquote class="last">
147 <div><p><a class="reference external" href="http://doc.qt.io/qtcreator/creator-developing-android.html">http://doc.qt.io/qtcreator/creator-developing-android.html</a></p>
148 </div></blockquote>
149 </dd>
150 </dl>
151 </li>
152 </ul>
153 </div>
154 <div class="section" id="ring2exe">
155 <span id="index-4"></span><h2>Ring2EXE の用法<a class="headerlink" href="#ring2exe" title="このヘッドラインへのパーマリンク">¶</a></h2>
156 <p>Qt プロジェクトのアプリケーションを Ring2EXE で手軽に用意できます。</p>
157 <p>用例:</p>
158 <div class="highlight-none"><div class="highlight"><pre>ring2exe myapp.ring -dist -mobileqt
159 </pre></div>
160 </div>
161 <div class="admonition note">
162 <p class="first admonition-title">注釈</p>
163 <p class="last">Ring ノートパッドの配布メニューからでもできます。</p>
164 </div>
165 <div class="admonition tip">
166 <p class="first admonition-title">情報</p>
167 <p class="last">Ring2EXE (Qt プロジェクトの準備 - モバイル機器用の配布) オプションは配布メニューにあります。</p>
168 </div>
169 </div>
170 <div class="section" id="ring-qt">
171 <span id="index-5"></span><h2>Ring アプリケーション用の Qt プロジェクト<a class="headerlink" href="#ring-qt" title="このヘッドラインへのパーマリンク">¶</a></h2>
172 <p>Ring2EXE または Ring ノートパッドの配布メニューを使用後に、</p>
173 <ul>
174 <li><p class="first">Qt Creator で生成された Qt プロジェクトを開きます。</p>
175 <blockquote>
176 <div><p>フォルダ : target/mobile/qtproject</p>
177 <p>プロジェクトファイル : project.pro</p>
178 </div></blockquote>
179 </li>
180 <li><p class="first">Qt Creator からリソース (YourAppName.ringo) にコンパイルされた Ring アプリケーションを見つけられます。</p>
181 <blockquote>
182 <div><p>このファイル (Ring オブジェクトファイル) は Ring コンパイラで生成します。</p>
183 </div></blockquote>
184 </li>
185 </ul>
186 <div class="highlight-none"><div class="highlight"><pre>ring YourAppName.ring -go -norun
187 </pre></div>
188 </div>
189 <ul class="simple">
190 <li>Qt Creator でアプリケーションをビルドします。</li>
191 </ul>
192 <ol class="arabic">
193 <li><p class="first">リソースにはアプリケーションで使用する画像を追加できます。</p>
194 <blockquote>
195 <div><p>またはテキストエディタを (Notepad など) で修正します : project.qrc</p>
196 </div></blockquote>
197 </li>
198 <li><p class="first">Ring アプリケーションから画像を見つけ出すには、リソースで使用されているファイル名が必要です。</p>
199 <blockquote>
200 <div><p>用例</p>
201 </div></blockquote>
202 </li>
203 </ol>
204 <div class="highlight-ring"><div class="highlight"><pre><span class="k">if</span> <span class="n">isandroid</span><span class="p">()</span>
205         <span class="n">mypic</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPixmap</span><span class="p">(</span><span class="s">&quot;:/cards.jpg&quot;</span><span class="p">)</span>
206 <span class="k">else</span>
207         <span class="n">mypic</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPixmap</span><span class="p">(</span><span class="s">&quot;cards.jpg&quot;</span><span class="p">)</span>
208 <span class="k">ok</span>
209 </pre></div>
210 </div>
211 </div>
212 <div class="section" id="android-ringqt">
213 <span id="index-6"></span><h2>Android 開発についての注釈 (RingQt)<a class="headerlink" href="#android-ringqt" title="このヘッドラインへのパーマリンク">¶</a></h2>
214 <ol class="arabic">
215 <li><p class="first">メインのプロジェクトファイルは main.cpp です。</p>
216 <blockquote>
217 <div><p>このファイルは Ring コンパイラ、仮想計算機 (VM) と RingQt で読み込まれます。</p>
218 <p>実行中にリソースの一時作業フォルダから Ring オブジェクトファイルを取得します。</p>
219 <p>そして Ring 仮想計算機 (VM) で Ring オブジェクトファイル (ringapp.ringo) を実行します。</p>
220 <p>main.cpp で追加 (複数のファイルから構成されているプロジェクト) することにより、
221 リソースの一時作業フォルダから複数のファイルを抽出できます。</p>
222 </div></blockquote>
223 </li>
224 <li><p class="first">この Ring エディションにおいて、この関数は未実装です。</p>
225 <blockquote>
226 <div><ul class="simple">
227 <li>データベース (ODBC, SQLite と MySQL)</li>
228 <li>セキュリティとインターネット関数 (LibCurl と OpenSSL)</li>
229 <li>RingAllegro (Allegro ライブラリ)</li>
230 <li>RingLibSDL (LibSDL ライブラリ)</li>
231 </ul>
232 <p>Qt クラスは RingQt から使用します</p>
233 <p>データベースのアクセスには QSqlDatabase クラスを使用します。</p>
234 </div></blockquote>
235 </li>
236 </ol>
237 <div class="admonition note">
238 <p class="first admonition-title">注釈</p>
239 <p class="last">未実装のライブラリ (LibCurl, OpenSSL および Allegro) は全て Android 用にコンパイルできますが Qt プロジェクトは収録されていません。</p>
240 </div>
241 <ol class="arabic simple" start="3">
242 <li>Android 用のコードへ動作を切り替えたい場合は isandroid() を使用します。</li>
243 </ol>
244 <p>用例:</p>
245 <div class="highlight-ring"><div class="highlight"><pre><span class="k">if</span> <span class="n">isandroid</span><span class="p">()</span>
246         <span class="o">//</span> <span class="n">Android</span> <span class="n">のコード</span>
247 <span class="k">else</span>
248         <span class="o">//</span> <span class="n">それ以外のプラットフォーム</span>
249 <span class="k">ok</span>
250 </pre></div>
251 </div>
252 <ol class="arabic" start="4">
253 <li><dl class="first docutils">
254 <dt>ボタンのテキスト、または画像が繰り返し描画されることがあること気づくと思います!</dt>
255 <dd><p class="first last">このコードで Qt の問題を回避できます。</p>
256 </dd>
257 </dl>
258 </li>
259 </ol>
260 <div class="highlight-ring"><div class="highlight"><pre>if isandroid()
261         setStyleSheet(&quot;
262                 border-style: outset;
263                 border-width: 2px;
264                 border-radius: 4px;
265                 border-color: black;
266                 padding: 6px;&quot;)
267  ok
268 </pre></div>
269 </div>
270 <ol class="arabic" start="5">
271 <li><dl class="first docutils">
272 <dt>手動設定によるコントロールの位置と寸法の代わりにレイアウトを常時使用します。</dt>
273 <dd><p class="first last">これはユーザインタフェースの問題回避を想定した最良の方法 (小規模、追加の寸法を有するコントロール) です。</p>
274 </dd>
275 </dl>
276 </li>
277 <li><p class="first">Qt クラスを扱う場合はリソースから画像を決定できます (main.cpp で使うためのコピーは不要です)。</p>
278 </li>
279 </ol>
280 <p>用例:</p>
281 <div class="highlight-ring"><div class="highlight"><pre><span class="k">if</span> <span class="n">isandroid</span><span class="p">()</span>
282     <span class="n">mypic</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPixmap</span><span class="p">(</span><span class="s">&quot;:/cards.jpg&quot;</span><span class="p">)</span>
283 <span class="k">else</span>
284     <span class="n">mypic</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPixmap</span><span class="p">(</span><span class="s">&quot;cards.jpg&quot;</span><span class="p">)</span>
285 <span class="k">ok</span>
286 </pre></div>
287 </div>
288 <p>RingQt にはファイル名を決定するために AppFile() 関数があります。</p>
289 <p>用例:</p>
290 <div class="highlight-ring"><div class="highlight"><pre><span class="n">mypic</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPixmap</span><span class="p">(</span><span class="n">AppFile</span><span class="p">(</span><span class="s">&quot;cards.jpg&quot;</span><span class="p">))</span>  <span class="c"># デスクトップまたは Androrid</span>
291 </pre></div>
292 </div>
293 <ol class="arabic simple" start="7">
294 <li>プロジェクトのコード更新時、 Qt プロジェクトの生成に Ring2EXE を再実行する必要はありません。</li>
295 </ol>
296 <p>Ring ノートパッドの配布メニューからオブジェクトファイルの生成 (*.ringo) を選択します。</p>
297 <p>その後 YourAppName.ringo ファイルを target/mobile/qtproject フォルダへコピーしてファイルの置き換えに応じてください。</p>
298 <ol class="arabic simple" start="8">
299 <li>アプリケーションにフォルダに Qt リソースファイル (project.qrc) がある場合は、</li>
300 </ol>
301 <p>Ring2EXE または Ring ノートパッドの配布メニュー → Ring2EXE (Qt プロジェクトの準備 - モバイル機器用の配布) を実行するとリソースファイルが使用されるようになります。</p>
302 <p>用例は ring/applications/cards ゲームを参照してください。</p>
303 </div>
304 </div>
305
306
307           </div>
308         </div>
309       </div>
310       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
311         <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
312 <ul>
313 <li><a class="reference internal" href="#">モバイル用 RingQt アプリケーションのビルド方法</a><ul>
314 <li><a class="reference internal" href="#index-1">開発環境のダウンロード</a></li>
315 <li><a class="reference internal" href="#android-sdk">Android SDK の更新</a></li>
316 <li><a class="reference internal" href="#qt-for-android">Qt for Android のインストール</a></li>
317 <li><a class="reference internal" href="#ring2exe">Ring2EXE の用法</a></li>
318 <li><a class="reference internal" href="#ring-qt">Ring アプリケーション用の Qt プロジェクト</a></li>
319 <li><a class="reference internal" href="#android-ringqt">Android 開発についての注釈 (RingQt)</a></li>
320 </ul>
321 </li>
322 </ul>
323
324
325   <h4>前のトピックへ</h4>
326   <p class="topless"><a href="qt.html"
327                         title="前の章へ">デスクトップとモバイル開発 (RingQt)</a></p>
328   <h4>次のトピックへ</h4>
329   <p class="topless"><a href="ringqtobjects.html"
330                         title="次の章へ">RingQt アプリケーション用のオブジェクトライブラリ</a></p>
331   <div role="note" aria-label="source link">
332     <h3>このページ</h3>
333     <ul class="this-page-menu">
334       <li><a href="_sources/qtmobile.txt"
335             rel="nofollow">ソースコードを表示</a></li>
336     </ul>
337    </div>
338       
339 <form action="search.html" method="get">
340   <input type="text" name="q" placeholder="Search" />
341   <input type="hidden" name="check_keywords" value="yes" />
342   <input type="hidden" name="area" value="default" />
343 </form>
344       
345         </div>
346       </div>
347       <div class="clearer"></div>
348     </div>
349 <footer class="footer">
350   <p class="pull-right">
351     <a href="_sources/qtmobile.txt"
352        rel="nofollow">ソースコードを表示</a> &nbsp;
353     <a href="#">冒頭へ戻る</a></p>
354   <p>
355     &copy; Copyright 2016-2020, Ring Team.<br/>
356     Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6 / astropy-sphinx-theme 1.1 (isVowel)
357   </p>
358 </footer>
359   </body>
360 </html>