1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml">
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 <title>デスクトップとモバイル開発 (RingQt) — プログラミング言語 Ring 1.12 取扱説明書</title>
11 <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
14 <script type="text/javascript">
15 var DOCUMENTATION_OPTIONS = {
18 COLLAPSE_INDEX: false,
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="qtmobile.html" />
29 <link rel="prev" title="RingRayLib の用法" href="ringraylib.html" />
30 <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
33 <body role="document">
35 <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">🍩Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
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>
45 <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46 <li><a title="総合索引" href="genindex.html">Index</a></li>
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" />
64 <a href="qtmobile.html" title="モバイル用 RingQt アプリケーションのビルド方法">
69 <a href="ringraylib.html" title="RingRayLib の用法">
75 <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
79 <li>デスクトップとモバイル開発 (RingQt)</li>
84 <div class="document">
85 <div class="documentwrapper">
86 <div class="bodywrapper">
87 <div class="body" role="main">
89 <div class="section" id="ringqt">
90 <span id="index-0"></span><h1>デスクトップとモバイル開発 (RingQt)<a class="headerlink" href="#ringqt" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>Ring アプリケーション (デスクトップとモバイル) 開発のために Qt フレームワーククラスの用法を学びます。</p>
92 <div class="section" id="gui">
93 <span id="index-1"></span><h2>はじめての GUI アプリケーション<a class="headerlink" href="#gui" title="このヘッドラインへのパーマリンク">¶</a></h2>
94 <p>この用例では、彼氏、彼女の名前を質問するアプリケーションを作成します。
95 ユーザがテキストボックスへ名前を入力して “Say Hello” ボタンをクリックした後に、
96 “Hello ” を名前へ追加することでテキストボックスの値を更新します。</p>
97 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
99 <span class="n">oApp</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
101 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
103 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">)</span>
104 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">370</span><span class="p">,</span><span class="mi">250</span><span class="p">)</span>
106 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
107 <span class="n">settext</span><span class="p">(</span><span class="s">"What is your name ?"</span><span class="p">)</span>
108 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
109 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span><span class="p">)</span>
110 <span class="p">}</span>
112 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
113 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
114 <span class="n">settext</span><span class="p">(</span><span class="s">"Say Hello"</span><span class="p">)</span>
115 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pHello()"</span><span class="p">)</span>
116 <span class="p">}</span>
118 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
119 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
120 <span class="n">settext</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
121 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pClose()"</span><span class="p">)</span>
122 <span class="p">}</span>
124 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
125 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
126 <span class="p">}</span>
128 <span class="n">show</span><span class="p">()</span>
129 <span class="p">}</span>
131 <span class="n">exec</span><span class="p">()</span>
132 <span class="p">}</span>
134 <span class="k">Func</span> <span class="n">pHello</span>
135 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span> <span class="s">"Hello "</span> <span class="o">+</span> <span class="n">lineedit1</span><span class="p">.</span><span class="n">text</span><span class="p">())</span>
137 <span class="k">Func</span> <span class="n">pClose</span>
138 <span class="n">oApp</span><span class="p">.</span><span class="n">quit</span><span class="p">()</span>
142 <p>最初にテキストボックスへ名前を入力します。</p>
143 <img alt="テキストボックスへの名前入力" src="_images/ringqt_shot1.jpg" />
144 <p>そして Say Hello ボタンをクリックします。</p>
145 <img alt="ボタンのクリック" src="_images/ringqt_shot2.jpg" />
147 <div class="section" id="index-2">
148 <span id="id1"></span><h2>イベントループ<a class="headerlink" href="#index-2" title="このヘッドラインへのパーマリンク">¶</a></h2>
149 <p>qApp クラスから exec() メソッドを呼び出すときは Qt はイベント駆動とイベントループで制御します。</p>
150 <p>一度でも exec() を呼び出すと、イベントループを開始し、ウィジェットは様々なイベントへの応答を開始します (マウス、キーボード、タイマーなど)。</p>
151 <p>イベントが発行されてコールバック関数が呼び出されるときは再び制御を戻します。</p>
152 <p>コールバック関数の実行完了後、制御をイベントループへ再び戻します。</p>
154 <ol class="arabic simple">
155 <li>ほとんどの作業は標準イベントで行います (イベントは各種ウィジェットで用意されています)。</li>
156 <li>イベントフィルタを使うとウィジェットにイベントを追加できます。</li>
157 <li>タイマーを使うと制御を戻します。これにより、各種検査を簡単にできます。</li>
159 <p>コールバック関数で処理時間がかかり、ビジー状態であるとき、 GUI の停止を回避するために qApp クラスで ProcessEvents() メソッドを呼び出せます。</p>
160 <div class="highlight-ring"><div class="highlight"><pre><span class="n">oApp</span><span class="p">.</span><span class="n">processevents</span><span class="p">()</span>
163 <p>exec() メソッドを呼び出さずに、メインループを作成することもできます。</p>
164 <p>この方法は非推奨であり、選択肢の一つに過ぎません。</p>
165 <div class="highlight-ring"><div class="highlight"><pre><span class="c"># exec() メソッドを呼び出さない方法</span>
166 <span class="k">while</span> <span class="kp">true</span>
167 <span class="n">oApp</span><span class="p">.</span><span class="n">processevents</span><span class="p">()</span> <span class="c"># GUI イベントへの応答</span>
168 <span class="c"># さらにコードを追加することで、制御を行います!</span>
169 <span class="c"># .....</span>
170 <span class="k">end</span>
174 <div class="section" id="index-3">
175 <span id="id2"></span><h2>レイアウトの用法<a class="headerlink" href="#index-3" title="このヘッドラインへのパーマリンク">¶</a></h2>
176 <p>この用例は、前述のアプリケーションで垂直レイアウトを使用するように更新したものです。</p>
177 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
179 <span class="n">MyApp</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
181 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
183 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">)</span>
184 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">130</span><span class="p">)</span>
185 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
186 <span class="n">settext</span><span class="p">(</span><span class="s">"What is your name ?"</span><span class="p">)</span>
187 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
188 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span><span class="p">)</span>
189 <span class="p">}</span>
190 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
191 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
192 <span class="n">settext</span><span class="p">(</span><span class="s">"Say Hello"</span><span class="p">)</span>
193 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pHello()"</span><span class="p">)</span>
194 <span class="p">}</span>
195 <span class="n">btn2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
196 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
197 <span class="n">settext</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
198 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pClose()"</span><span class="p">)</span>
199 <span class="p">}</span>
200 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
201 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
202 <span class="p">}</span>
203 <span class="n">layout1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qVBoxLayout</span><span class="p">()</span> <span class="p">{</span>
204 <span class="n">addwidget</span><span class="p">(</span><span class="n">label1</span><span class="p">)</span>
205 <span class="n">addwidget</span><span class="p">(</span><span class="n">lineedit1</span><span class="p">)</span>
206 <span class="n">addwidget</span><span class="p">(</span><span class="n">btn1</span><span class="p">)</span>
207 <span class="n">addwidget</span><span class="p">(</span><span class="n">btn2</span><span class="p">)</span>
208 <span class="p">}</span>
209 <span class="n">win1</span><span class="p">.</span><span class="n">setlayout</span><span class="p">(</span><span class="n">layout1</span><span class="p">)</span>
210 <span class="n">show</span><span class="p">()</span>
211 <span class="p">}</span>
213 <span class="n">exec</span><span class="p">()</span>
215 <span class="p">}</span>
217 <span class="k">Func</span> <span class="n">pHello</span>
218 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span> <span class="s">"Hello "</span> <span class="o">+</span> <span class="n">lineedit1</span><span class="p">.</span><span class="n">text</span><span class="p">())</span>
220 <span class="k">Func</span> <span class="n">pClose</span>
221 <span class="n">MyApp</span><span class="p">.</span><span class="n">quit</span><span class="p">()</span>
225 <img alt="垂直レイアウト" src="_images/ringqt_shot3.jpg" />
227 <div class="section" id="qtextedit">
228 <span id="index-4"></span><h2>QTextEdit クラスの用法<a class="headerlink" href="#qtextedit" title="このヘッドラインへのパーマリンク">¶</a></h2>
229 <p>この用例では、 QTextEdit クラスを使用しています。</p>
230 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
232 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
234 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
236 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QTextEdit Class"</span><span class="p">)</span>
237 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
239 <span class="k">new</span> <span class="n">qtextedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
240 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">480</span><span class="p">,</span><span class="mi">480</span><span class="p">)</span>
242 <span class="p">}</span>
244 <span class="n">show</span><span class="p">()</span>
245 <span class="p">}</span>
247 <span class="n">exec</span><span class="p">()</span>
248 <span class="p">}</span>
251 <p>実行中は qtextedit へリッチテキストを貼り付けることができます。</p>
252 <img alt="QTextEdit クラス" src="_images/ringqt_shot4.jpg" />
254 <div class="section" id="qlistwidget">
255 <span id="index-5"></span><h2>QListWidget クラスの用法<a class="headerlink" href="#qlistwidget" title="このヘッドラインへのパーマリンク">¶</a></h2>
256 <p>この用例では、 QListWidget クラスを使用しています。</p>
257 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
259 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
261 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
263 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
265 <span class="n">list1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlistwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
266 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">)</span>
267 <span class="n">alist</span> <span class="o">=</span> <span class="o">[</span><span class="s">"one"</span><span class="p">,</span><span class="s">"two"</span><span class="p">,</span><span class="s">"three"</span><span class="p">,</span><span class="s">"four"</span><span class="p">,</span><span class="s">"five"</span><span class="o">]</span>
268 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">alist</span> <span class="n">additem</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">next</span>
269 <span class="n">setcurrentrow</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
270 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Items Count : "</span> <span class="o">+</span> <span class="n">count</span><span class="p">()</span> <span class="p">)</span>
271 <span class="p">}</span>
273 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
274 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
275 <span class="n">settext</span><span class="p">(</span><span class="s">"selected item"</span><span class="p">)</span>
276 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
277 <span class="p">}</span>
279 <span class="n">btn2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
280 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">240</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
281 <span class="n">settext</span><span class="p">(</span><span class="s">"Delete item"</span><span class="p">)</span>
282 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWork2()"</span><span class="p">)</span>
283 <span class="p">}</span>
285 <span class="n">show</span><span class="p">()</span>
286 <span class="p">}</span>
288 <span class="n">exec</span><span class="p">()</span>
289 <span class="p">}</span>
291 <span class="k">func</span> <span class="n">pWork</span>
292 <span class="n">btn1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="kt">string</span><span class="p">(</span><span class="n">list1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()))</span>
294 <span class="k">func</span> <span class="n">pWork2</span>
295 <span class="n">list1</span> <span class="p">{</span>
296 <span class="n">takeitem</span><span class="p">(</span><span class="n">currentrow</span><span class="p">())</span>
297 <span class="p">}</span>
301 <img alt="QListWidget Class" src="_images/ringqt_shot5.jpg" />
303 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
305 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
307 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
309 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
311 <span class="n">list1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlistwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
312 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">)</span>
313 <span class="n">alist</span> <span class="o">=</span> <span class="o">[</span><span class="s">"one"</span><span class="p">,</span><span class="s">"two"</span><span class="p">,</span><span class="s">"three"</span><span class="p">,</span><span class="s">"four"</span><span class="p">,</span><span class="s">"five"</span><span class="o">]</span>
314 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">alist</span> <span class="n">additem</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">next</span>
316 <span class="n">setcurrentrow</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
317 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Items Count : "</span> <span class="o">+</span> <span class="n">count</span><span class="p">()</span> <span class="p">)</span>
318 <span class="p">}</span>
320 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
321 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
322 <span class="n">settext</span><span class="p">(</span><span class="s">"selected item"</span><span class="p">)</span>
323 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
324 <span class="p">}</span>
326 <span class="n">btn2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
327 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">240</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
328 <span class="n">settext</span><span class="p">(</span><span class="s">"Delete item"</span><span class="p">)</span>
329 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWork2()"</span><span class="p">)</span>
330 <span class="p">}</span>
332 <span class="n">show</span><span class="p">()</span>
333 <span class="p">}</span>
335 <span class="n">exec</span><span class="p">()</span>
336 <span class="p">}</span>
338 <span class="k">func</span> <span class="n">pWork</span>
340 <span class="n">nbrOfItems</span> <span class="o">=</span> <span class="n">list1</span><span class="p">.</span><span class="n">count</span><span class="p">()</span>
341 <span class="n">curItemNbr</span> <span class="o">=</span> <span class="n">list1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()</span>
342 <span class="n">curValue</span> <span class="o">=</span> <span class="n">list1</span><span class="p">.</span><span class="n">item</span><span class="p">(</span><span class="n">list1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()).</span><span class="n">text</span><span class="p">()</span>
344 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span> <span class="s">"After Select - NbrOfItems: "</span> <span class="o">+</span> <span class="n">nbrOfItems</span> <span class="o">+</span>
345 <span class="s">" CurItemNbr: "</span> <span class="o">+</span> <span class="n">curItemNbr</span> <span class="o">+</span> <span class="s">" CurValue: "</span> <span class="o">+</span> <span class="n">curValue</span> <span class="p">)</span>
347 <span class="n">btn1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span> <span class="kt">string</span><span class="p">(</span><span class="n">list1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()</span> <span class="p">)</span> <span class="o">+</span> <span class="s">" --- "</span> <span class="o">+</span>
348 <span class="n">list1</span><span class="p">.</span><span class="n">item</span><span class="p">(</span><span class="n">list1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()).</span><span class="n">text</span><span class="p">()</span> <span class="p">)</span>
352 <span class="k">func</span> <span class="n">pWork2</span>
353 <span class="n">list1</span> <span class="p">{</span>
354 <span class="n">takeitem</span><span class="p">(</span><span class="n">currentrow</span><span class="p">())</span>
356 <span class="n">nbrOfItems</span> <span class="o">=</span> <span class="n">count</span><span class="p">()</span>
357 <span class="n">curItemNbr</span> <span class="o">=</span> <span class="n">currentrow</span><span class="p">()</span>
358 <span class="n">curValue</span> <span class="o">=</span> <span class="n">item</span><span class="p">(</span><span class="n">currentrow</span><span class="p">()).</span><span class="n">text</span><span class="p">()</span>
360 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"After Delete - NbrOfItems: "</span> <span class="o">+</span> <span class="n">nbrOfItems</span> <span class="o">+</span>
361 <span class="s">" CurItemNbr: "</span> <span class="o">+</span> <span class="n">curItemNbr</span> <span class="o">+</span><span class="s">" CurValue: "</span> <span class="o">+</span> <span class="n">curValue</span> <span class="p">)</span>
362 <span class="p">}</span>
366 <div class="section" id="qtreeview-qfilesystemmodel">
367 <span id="index-6"></span><h2>QTreeView および QFileSystemModel の用法<a class="headerlink" href="#qtreeview-qfilesystemmodel" title="このヘッドラインへのパーマリンク">¶</a></h2>
368 <p>この用例では、ファイルシステムを表示するために QTreeView ウィジェットの用法を学びます。</p>
369 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
371 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
373 <span class="n">win1</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
375 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QTreeView and QFileSystemModel"</span><span class="p">)</span>
376 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
378 <span class="k">New</span> <span class="n">qtreeview</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
379 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">00</span><span class="p">,</span><span class="mi">00</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
380 <span class="n">oDir</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QDir</span><span class="p">()</span>
381 <span class="n">ofile</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QFileSystemModel</span><span class="p">()</span>
382 <span class="n">ofile</span><span class="p">.</span><span class="n">setrootpath</span><span class="p">(</span><span class="n">oDir</span><span class="p">.</span><span class="n">currentpath</span><span class="p">())</span>
383 <span class="n">setmodel</span><span class="p">(</span><span class="n">ofile</span><span class="p">)</span>
384 <span class="p">}</span>
386 <span class="n">show</span><span class="p">()</span>
387 <span class="p">}</span>
389 <span class="n">exec</span><span class="p">()</span>
390 <span class="p">}</span>
394 <img alt="QTreeView および QFileSystemModel" src="_images/ringqt_shot6.jpg" />
396 <div class="section" id="qtreewidget-qtreewidgetitem">
397 <span id="index-7"></span><h2>QTreeWidget と QTreeWidgetItem の用法<a class="headerlink" href="#qtreewidget-qtreewidgetitem" title="このヘッドラインへのパーマリンク">¶</a></h2>
398 <p>この用例では、 QTreeWidget および QTreeWidgetItem クラスを学びます。</p>
399 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
401 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
403 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
405 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"TreeWidget"</span><span class="p">)</span>
406 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
408 <span class="n">layout1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvboxlayout</span><span class="p">()</span>
410 <span class="n">tree1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtreewidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
411 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">00</span><span class="p">,</span><span class="mi">00</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
412 <span class="n">setcolumncount</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
413 <span class="n">myitem</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtreewidgetitem</span><span class="p">()</span>
414 <span class="n">myitem</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="s">"The First Step"</span><span class="p">)</span>
415 <span class="n">addtoplevelitem</span><span class="p">(</span><span class="n">myitem</span><span class="p">)</span>
416 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">10</span>
417 <span class="n">myitem2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtreewidgetitem</span><span class="p">()</span>
418 <span class="n">myitem2</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="s">"hello"</span><span class="o">+</span><span class="n">x</span><span class="p">)</span>
419 <span class="n">myitem</span><span class="p">.</span><span class="n">addchild</span><span class="p">(</span><span class="n">myitem2</span><span class="p">)</span>
420 <span class="k">for</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">10</span>
421 <span class="n">myitem3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtreewidgetitem</span><span class="p">()</span>
422 <span class="n">myitem3</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="s">"hello"</span><span class="o">+</span><span class="n">x</span><span class="p">)</span>
423 <span class="n">myitem2</span><span class="p">.</span><span class="n">addchild</span><span class="p">(</span><span class="n">myitem3</span><span class="p">)</span>
424 <span class="k">next</span>
425 <span class="k">next</span>
426 <span class="n">setheaderlabel</span><span class="p">(</span><span class="s">"Steps Tree"</span><span class="p">)</span>
427 <span class="p">}</span>
429 <span class="n">layout1</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">tree1</span><span class="p">)</span>
430 <span class="n">setlayout</span><span class="p">(</span><span class="n">layout1</span><span class="p">)</span>
432 <span class="n">show</span><span class="p">()</span>
433 <span class="p">}</span>
435 <span class="n">exec</span><span class="p">()</span>
436 <span class="p">}</span>
440 <img alt="QTreeWidget と QTreeWidgetItem" src="_images/ringqt_shot7.jpg" />
442 <div class="section" id="qcombobox">
443 <span id="index-8"></span><h2>QComboBox クラスの用法<a class="headerlink" href="#qcombobox" title="このヘッドラインへのパーマリンク">¶</a></h2>
444 <p>この用例では、 QComboBox クラスを学びます。</p>
445 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
447 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
449 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
451 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QComboBox"</span><span class="p">)</span>
452 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
454 <span class="k">New</span> <span class="n">QComboBox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
455 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
456 <span class="n">alist</span> <span class="o">=</span> <span class="o">[</span><span class="s">"one"</span><span class="p">,</span><span class="s">"two"</span><span class="p">,</span><span class="s">"three"</span><span class="p">,</span><span class="s">"four"</span><span class="p">,</span><span class="s">"five"</span><span class="o">]</span>
457 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">aList</span> <span class="n">additem</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="k">next</span>
458 <span class="p">}</span>
460 <span class="n">show</span><span class="p">()</span>
461 <span class="p">}</span>
463 <span class="n">exec</span><span class="p">()</span>
464 <span class="p">}</span>
468 <img alt="QComboBox" src="_images/ringqt_shot8.jpg" />
470 <div class="section" id="index-9">
471 <span id="id3"></span><h2>メニューバーの作成方法<a class="headerlink" href="#index-9" title="このヘッドラインへのパーマリンク">¶</a></h2>
472 <p>この用例では、 QMenuBar クラスを学びます。</p>
473 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
475 <span class="n">MyApp</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
477 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
479 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QMenubar"</span><span class="p">)</span>
480 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
482 <span class="n">menu1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmenubar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
483 <span class="n">sub1</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"File"</span><span class="p">)</span>
484 <span class="n">sub2</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Edit"</span><span class="p">)</span>
485 <span class="n">sub3</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Help"</span><span class="p">)</span>
486 <span class="n">sub1</span> <span class="p">{</span>
487 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
488 <span class="n">settext</span><span class="p">(</span><span class="s">"New"</span><span class="p">)</span>
489 <span class="p">}</span>
490 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
491 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
492 <span class="n">settext</span><span class="p">(</span><span class="s">"Open"</span><span class="p">)</span>
493 <span class="p">}</span>
494 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
495 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
496 <span class="n">settext</span><span class="p">(</span><span class="s">"Save"</span><span class="p">)</span>
497 <span class="p">}</span>
498 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
499 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
500 <span class="n">settext</span><span class="p">(</span><span class="s">"Save As"</span><span class="p">)</span>
501 <span class="p">}</span>
502 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
503 <span class="n">addseparator</span><span class="p">()</span>
504 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qaction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
505 <span class="n">settext</span><span class="p">(</span><span class="s">"Exit"</span><span class="p">)</span>
506 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"myapp.quit()"</span><span class="p">)</span>
507 <span class="p">}</span>
508 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
509 <span class="p">}</span>
510 <span class="n">sub2</span> <span class="p">{</span>
511 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
512 <span class="n">settext</span><span class="p">(</span><span class="s">"Cut"</span><span class="p">)</span>
513 <span class="p">}</span>
514 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
515 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
516 <span class="n">settext</span><span class="p">(</span><span class="s">"Copy"</span><span class="p">)</span>
517 <span class="p">}</span>
518 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
519 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
520 <span class="n">settext</span><span class="p">(</span><span class="s">"Paste"</span><span class="p">)</span>
521 <span class="p">}</span>
522 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
523 <span class="n">addseparator</span><span class="p">()</span>
524 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
525 <span class="n">settext</span><span class="p">(</span><span class="s">"Select All"</span><span class="p">)</span>
526 <span class="p">}</span>
527 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
528 <span class="p">}</span>
529 <span class="n">sub3</span> <span class="p">{</span>
530 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
531 <span class="n">settext</span><span class="p">(</span><span class="s">"Reference"</span><span class="p">)</span>
532 <span class="p">}</span>
533 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
534 <span class="n">sub4</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Sub Menu"</span><span class="p">)</span>
535 <span class="n">sub4</span> <span class="p">{</span>
536 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
537 <span class="n">settext</span><span class="p">(</span><span class="s">"Website"</span><span class="p">)</span>
538 <span class="p">}</span>
539 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
540 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
541 <span class="n">settext</span><span class="p">(</span><span class="s">"Forum"</span><span class="p">)</span>
542 <span class="p">}</span>
543 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
544 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
545 <span class="n">settext</span><span class="p">(</span><span class="s">"Blog"</span><span class="p">)</span>
546 <span class="p">}</span>
547 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
548 <span class="p">}</span>
549 <span class="n">addseparator</span><span class="p">()</span>
550 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
551 <span class="n">settext</span><span class="p">(</span><span class="s">"About"</span><span class="p">)</span>
552 <span class="p">}</span>
553 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
554 <span class="p">}</span>
555 <span class="p">}</span>
556 <span class="n">show</span><span class="p">()</span>
557 <span class="p">}</span>
558 <span class="n">exec</span><span class="p">()</span>
559 <span class="p">}</span>
563 <img alt="QMenuBar" src="_images/ringqt_shot9.jpg" />
565 <div class="section" id="index-10">
566 <span id="id4"></span><h2>コンテキストメニュー<a class="headerlink" href="#index-10" title="このヘッドラインへのパーマリンク">¶</a></h2>
568 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
570 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
571 <span class="n">win</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
572 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Context Menu"</span><span class="p">)</span>
573 <span class="n">resize</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
574 <span class="n">myfilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAllEvents</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
575 <span class="n">setContextmenuEvent</span><span class="p">(</span><span class="s">"mymenu()"</span><span class="p">)</span>
576 <span class="p">}</span>
577 <span class="n">installeventfilter</span><span class="p">(</span><span class="n">myfilter</span><span class="p">)</span>
578 <span class="n">show</span><span class="p">()</span>
579 <span class="p">}</span>
580 <span class="n">exec</span><span class="p">()</span>
581 <span class="p">}</span>
584 <span class="k">func</span> <span class="n">mymenu</span>
586 <span class="k">new</span> <span class="n">qMenu</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
587 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
588 <span class="n">settext</span><span class="p">(</span><span class="s">"new"</span><span class="p">)</span>
589 <span class="n">SetCLickevent</span><span class="p">(</span><span class="s">"See :New"</span><span class="p">)</span>
590 <span class="p">}</span>
591 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
592 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
593 <span class="n">settext</span><span class="p">(</span><span class="s">"open"</span><span class="p">)</span>
594 <span class="n">SetCLickevent</span><span class="p">(</span><span class="s">"See :Open"</span><span class="p">)</span>
595 <span class="p">}</span>
596 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
597 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
598 <span class="n">settext</span><span class="p">(</span><span class="s">"save"</span><span class="p">)</span>
599 <span class="n">SetCLickevent</span><span class="p">(</span><span class="s">"See :Save"</span><span class="p">)</span>
600 <span class="p">}</span>
601 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
602 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
603 <span class="n">settext</span><span class="p">(</span><span class="s">"close"</span><span class="p">)</span>
604 <span class="n">SetCLickevent</span><span class="p">(</span><span class="s">"See :Close"</span><span class="p">)</span>
605 <span class="p">}</span>
606 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
607 <span class="n">oCursor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qCursor</span><span class="p">()</span>
608 <span class="n">exec</span><span class="p">(</span><span class="n">oCursor</span><span class="p">.</span><span class="n">pos</span><span class="p">())</span>
609 <span class="p">}</span>
613 <div class="section" id="index-11">
614 <span id="id5"></span><h2>ツールバーの作成方法<a class="headerlink" href="#index-11" title="このヘッドラインへのパーマリンク">¶</a></h2>
615 <p>この用例では、 QToolBar クラスを学びます。</p>
616 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
618 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
620 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
622 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QToolbar"</span><span class="p">)</span>
623 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
625 <span class="n">abtns</span> <span class="o">=</span> <span class="o">[</span>
626 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">settext</span><span class="p">(</span><span class="s">"Add"</span><span class="p">)</span> <span class="p">}</span> <span class="p">,</span>
627 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">settext</span><span class="p">(</span><span class="s">"Edit"</span><span class="p">)</span> <span class="p">}</span> <span class="p">,</span>
628 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">settext</span><span class="p">(</span><span class="s">"Find"</span><span class="p">)</span> <span class="p">}</span> <span class="p">,</span>
629 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">settext</span><span class="p">(</span><span class="s">"Delete"</span><span class="p">)</span> <span class="p">}</span> <span class="p">,</span>
630 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">settext</span><span class="p">(</span><span class="s">"Exit"</span><span class="p">)</span>
631 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"win1.close()"</span><span class="p">)</span> <span class="p">}</span>
632 <span class="o">]</span>
634 <span class="n">tool1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtoolbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
635 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">abtns</span> <span class="n">addwidget</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="n">addseparator</span><span class="p">()</span> <span class="k">next</span>
636 <span class="n">setmovable</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
637 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
638 <span class="n">setFloatable</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
639 <span class="p">}</span>
641 <span class="n">show</span><span class="p">()</span>
642 <span class="p">}</span>
644 <span class="n">exec</span><span class="p">()</span>
645 <span class="p">}</span>
649 <img alt="QToolBar" src="_images/ringqt_shot10.jpg" />
651 <div class="section" id="index-12">
652 <span id="id6"></span><h2>ステータスバーの作成方法<a class="headerlink" href="#index-12" title="このヘッドラインへのパーマリンク">¶</a></h2>
653 <p>この用例では、 QStatusBar クラスを学びます。</p>
654 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
656 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
658 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
660 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QStatusbar"</span><span class="p">)</span>
661 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
663 <span class="n">status1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qstatusbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
664 <span class="n">showmessage</span><span class="p">(</span><span class="s">"Ready!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
665 <span class="p">}</span>
667 <span class="n">setstatusbar</span><span class="p">(</span><span class="n">status1</span><span class="p">)</span>
668 <span class="n">show</span><span class="p">()</span>
669 <span class="p">}</span>
671 <span class="n">exec</span><span class="p">()</span>
672 <span class="p">}</span>
676 <img alt="QStatusBar" src="_images/ringqt_shot11.jpg" />
678 <div class="section" id="qdockwidget">
679 <span id="index-13"></span><h2>QDockWidget の用法<a class="headerlink" href="#qdockwidget" title="このヘッドラインへのパーマリンク">¶</a></h2>
680 <p>この用例では、 QDockWidget クラスを学びます。</p>
681 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
683 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
685 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
687 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QDockWidget"</span><span class="p">)</span>
688 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
690 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
691 <span class="n">settext</span><span class="p">(</span><span class="s">"Hello"</span><span class="p">)</span>
692 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span><span class="mi">300</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
693 <span class="p">}</span>
695 <span class="n">label2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
696 <span class="n">settext</span><span class="p">(</span><span class="s">"How are you ?"</span><span class="p">)</span>
697 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
698 <span class="p">}</span>
700 <span class="n">dock1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdockwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
701 <span class="n">setwidget</span><span class="p">(</span><span class="n">label1</span><span class="p">)</span>
702 <span class="n">SetAllowedAreas</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
703 <span class="p">}</span>
705 <span class="n">dock2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdockwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
706 <span class="n">setwidget</span><span class="p">(</span><span class="n">label2</span><span class="p">)</span>
707 <span class="n">SetAllowedAreas</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
708 <span class="p">}</span>
710 <span class="n">adddockwidget</span><span class="p">(</span><span class="n">Qt_LeftDockWidgetArea</span><span class="p">,</span><span class="n">dock1</span><span class="p">,</span><span class="n">Qt_Horizontal</span><span class="p">)</span>
711 <span class="n">adddockwidget</span><span class="p">(</span><span class="n">Qt_LeftDockWidgetArea</span><span class="p">,</span><span class="n">dock2</span><span class="p">,</span><span class="n">Qt_Vertical</span><span class="p">)</span>
713 <span class="n">show</span><span class="p">()</span>
714 <span class="p">}</span>
715 <span class="n">exec</span><span class="p">()</span>
716 <span class="p">}</span>
720 <img alt="QDockWidget" src="_images/ringqt_shot12.jpg" />
722 <div class="section" id="qtabwidget">
723 <span id="index-14"></span><h2>QTabWidget の用法<a class="headerlink" href="#qtabwidget" title="このヘッドラインへのパーマリンク">¶</a></h2>
724 <p>この用例では、 QTabWidget クラスを学びます。</p>
725 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
727 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
729 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
731 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QTabWidget"</span><span class="p">)</span>
732 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
734 <span class="n">page1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
735 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">page1</span><span class="p">)</span> <span class="p">{</span>
736 <span class="n">settext</span><span class="p">(</span><span class="s">"The First Page"</span><span class="p">)</span>
737 <span class="p">}</span>
738 <span class="p">}</span>
740 <span class="n">page2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
741 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">page2</span><span class="p">)</span> <span class="p">{</span>
742 <span class="n">settext</span><span class="p">(</span><span class="s">"The Second Page"</span><span class="p">)</span>
743 <span class="p">}</span>
744 <span class="p">}</span>
746 <span class="n">page3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
747 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">page3</span><span class="p">)</span> <span class="p">{</span>
748 <span class="n">settext</span><span class="p">(</span><span class="s">"The Third Page"</span><span class="p">)</span>
749 <span class="p">}</span>
750 <span class="p">}</span>
752 <span class="n">tab1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtabwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
753 <span class="n">inserttab</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">page1</span><span class="p">,</span><span class="s">"Page 1"</span><span class="p">)</span>
754 <span class="n">inserttab</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">page2</span><span class="p">,</span><span class="s">"Page 2"</span><span class="p">)</span>
755 <span class="n">inserttab</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">page3</span><span class="p">,</span><span class="s">"Page 3"</span><span class="p">)</span>
756 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
757 <span class="p">}</span>
759 <span class="n">status1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qstatusbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
760 <span class="n">showmessage</span><span class="p">(</span><span class="s">"Ready!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
761 <span class="p">}</span>
763 <span class="n">setstatusbar</span><span class="p">(</span><span class="n">status1</span><span class="p">)</span>
764 <span class="n">showMaximized</span><span class="p">()</span>
765 <span class="p">}</span>
767 <span class="n">exec</span><span class="p">()</span>
768 <span class="p">}</span>
772 <img alt="QTabWidget" src="_images/ringqt_shot13.jpg" />
774 <div class="section" id="qtablewidget">
775 <span id="index-15"></span><h2>QTableWidget の用法<a class="headerlink" href="#qtablewidget" title="このヘッドラインへのパーマリンク">¶</a></h2>
776 <p>この用例では、 QTableWidget クラスを学びます。</p>
777 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
779 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
781 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
783 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1100</span><span class="p">,</span><span class="mi">370</span><span class="p">)</span>
784 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QTableWidget"</span><span class="p">)</span>
786 <span class="n">Table1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTableWidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
788 <span class="n">setrowcount</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="n">setcolumncount</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
789 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">800</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
790 <span class="n">setselectionbehavior</span><span class="p">(</span><span class="n">QAbstractItemView_SelectRows</span><span class="p">)</span>
792 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">10</span>
793 <span class="k">for</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">10</span>
794 <span class="n">item1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtablewidgetitem</span><span class="p">(</span><span class="s">"R"</span><span class="o">+</span><span class="n">X</span><span class="o">+</span><span class="s">"C"</span><span class="o">+</span><span class="n">Y</span><span class="p">)</span>
795 <span class="n">setitem</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">y</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">item1</span><span class="p">)</span>
796 <span class="k">next</span>
797 <span class="k">next</span>
799 <span class="p">}</span>
801 <span class="n">setcentralwidget</span><span class="p">(</span><span class="n">table1</span><span class="p">)</span>
802 <span class="n">show</span><span class="p">()</span>
804 <span class="p">}</span>
806 <span class="n">exec</span><span class="p">()</span>
807 <span class="p">}</span>
811 <img alt="QTableWidget" src="_images/ringqt_shot14.jpg" />
813 <div class="section" id="qprogressbar">
814 <span id="index-16"></span><h2>QProgressBar の用法<a class="headerlink" href="#qprogressbar" title="このヘッドラインへのパーマリンク">¶</a></h2>
815 <p>この用例では、 QProgressBar クラスを学びます。</p>
816 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
818 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
819 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
821 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
822 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QProgressBar"</span><span class="p">)</span>
824 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">10</span> <span class="k">to</span> <span class="mi">100</span> <span class="k">step</span> <span class="mi">10</span>
825 <span class="k">new</span> <span class="n">qprogressbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
826 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
827 <span class="n">setvalue</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
828 <span class="p">}</span>
829 <span class="k">next</span>
831 <span class="n">show</span><span class="p">()</span>
832 <span class="p">}</span>
833 <span class="n">exec</span><span class="p">()</span>
834 <span class="p">}</span>
838 <img alt="QProgressBar" src="_images/ringqt_shot15.jpg" />
840 <div class="section" id="qspinbox">
841 <span id="index-17"></span><h2>QSpinBox の用法<a class="headerlink" href="#qspinbox" title="このヘッドラインへのパーマリンク">¶</a></h2>
842 <p>この用例では、 QSpinBox クラスを学びます。</p>
843 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
845 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
846 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
847 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">450</span><span class="p">,</span><span class="mi">260</span><span class="p">)</span>
848 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QSpinBox"</span><span class="p">)</span>
849 <span class="k">new</span> <span class="n">qspinbox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
850 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
851 <span class="n">setvalue</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
852 <span class="p">}</span>
853 <span class="n">show</span><span class="p">()</span>
854 <span class="p">}</span>
855 <span class="n">exec</span><span class="p">()</span>
856 <span class="p">}</span>
860 <img alt="QSpinBox" src="_images/ringqt_shot16.jpg" />
862 <div class="section" id="qslider">
863 <span id="index-18"></span><h2>QSlider の用法<a class="headerlink" href="#qslider" title="このヘッドラインへのパーマリンク">¶</a></h2>
864 <p>この用例では、 QSlider クラスを学びます。</p>
865 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
867 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
869 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
871 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
872 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QSlider"</span><span class="p">)</span>
874 <span class="k">new</span> <span class="n">qslider</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
875 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">130</span><span class="p">)</span>
876 <span class="n">settickinterval</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
877 <span class="p">}</span>
879 <span class="k">new</span> <span class="n">qslider</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
880 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
881 <span class="n">settickinterval</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
882 <span class="n">setorientation</span><span class="p">(</span><span class="n">Qt_Horizontal</span><span class="p">)</span>
883 <span class="p">}</span>
885 <span class="n">show</span><span class="p">()</span>
887 <span class="p">}</span>
889 <span class="n">exec</span><span class="p">()</span>
890 <span class="p">}</span>
894 <img alt="QSlider" src="_images/ringqt_shot17.jpg" />
896 <div class="section" id="qdateedit">
897 <span id="index-19"></span><h2>QDateEdit の用法<a class="headerlink" href="#qdateedit" title="このヘッドラインへのパーマリンク">¶</a></h2>
898 <p>この用例では、 QDateEdit クラスを学びます。</p>
899 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
901 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
902 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
903 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QDateEdit"</span><span class="p">)</span>
904 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
905 <span class="k">new</span> <span class="n">qdateedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
906 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span><span class="mi">40</span><span class="p">,</span><span class="mi">220</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
907 <span class="p">}</span>
908 <span class="n">show</span><span class="p">()</span>
909 <span class="p">}</span>
910 <span class="n">exec</span><span class="p">()</span>
911 <span class="p">}</span>
915 <img alt="QDateEdit" src="_images/ringqt_shot18.jpg" />
917 <div class="section" id="qdial">
918 <span id="index-20"></span><h2>QDial の用法<a class="headerlink" href="#qdial" title="このヘッドラインへのパーマリンク">¶</a></h2>
919 <p>この用例では、 QDial クラスを学びます。</p>
920 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
922 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
923 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
924 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">450</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
925 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QDial"</span><span class="p">)</span>
926 <span class="k">new</span> <span class="n">qdial</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
927 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
928 <span class="p">}</span>
929 <span class="n">show</span><span class="p">()</span>
930 <span class="p">}</span>
931 <span class="n">exec</span><span class="p">()</span>
932 <span class="p">}</span>
936 <img alt="QDial" src="_images/ringqt_shot19.jpg" />
938 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
940 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
941 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span>
942 <span class="p">{</span>
943 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">450</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
944 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QDial"</span><span class="p">)</span>
945 <span class="n">button1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPushButton</span><span class="p">(</span><span class="n">win1</span><span class="p">){</span>
946 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
947 <span class="n">settext</span><span class="p">(</span><span class="s">"Increment"</span><span class="p">)</span>
948 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"pIncrement()"</span><span class="p">)</span>
949 <span class="p">}</span>
951 <span class="n">button2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QPushButton</span><span class="p">(</span><span class="n">win1</span><span class="p">){</span>
952 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
953 <span class="n">settext</span><span class="p">(</span><span class="s">"Decrement"</span><span class="p">)</span>
954 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"pDecrement()"</span><span class="p">)</span>
955 <span class="p">}</span>
956 <span class="n">pdial</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdial</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
957 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
958 <span class="n">setNotchesVisible</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
959 <span class="n">setValue</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
960 <span class="n">SetValueChangedEvent</span><span class="p">(</span><span class="s">"pDialMove()"</span><span class="p">)</span>
961 <span class="p">}</span>
962 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
963 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
964 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span><span class="p">)</span>
965 <span class="n">settext</span><span class="p">(</span><span class="kt">string</span><span class="p">(</span><span class="n">pdial</span><span class="p">.</span><span class="n">value</span><span class="p">()))</span>
966 <span class="n">setreturnPressedEvent</span><span class="p">(</span><span class="s">"pPress()"</span><span class="p">)</span>
967 <span class="p">}</span>
968 <span class="n">show</span><span class="p">()</span>
969 <span class="p">}</span>
970 <span class="n">exec</span><span class="p">()</span>
971 <span class="p">}</span>
973 <span class="k">func</span> <span class="n">pIncrement</span>
974 <span class="n">pdial</span><span class="p">{</span><span class="n">val</span><span class="o">=</span><span class="n">value</span><span class="p">()}</span>
975 <span class="n">pdial</span><span class="p">.</span><span class="n">setvalue</span><span class="p">(</span><span class="n">val</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
976 <span class="n">lineedit1</span><span class="p">{</span><span class="n">settext</span><span class="p">(</span><span class="kt">string</span><span class="p">(</span><span class="n">val</span><span class="o">+</span><span class="mi">1</span><span class="p">))}</span>
978 <span class="k">func</span> <span class="n">pDecrement</span>
979 <span class="n">pdial</span><span class="p">{</span><span class="n">val</span><span class="o">=</span><span class="n">value</span><span class="p">()}</span>
980 <span class="n">pdial</span><span class="p">.</span><span class="n">setvalue</span><span class="p">(</span><span class="n">val</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
981 <span class="n">lineedit1</span><span class="p">{</span><span class="n">settext</span><span class="p">(</span><span class="kt">string</span><span class="p">(</span><span class="n">val</span><span class="o">-</span><span class="mi">1</span><span class="p">))}</span>
983 <span class="k">func</span> <span class="n">pPress</span>
984 <span class="n">lineedit1</span><span class="p">{</span><span class="n">val</span><span class="o">=</span><span class="n">text</span><span class="p">()}</span>
985 <span class="n">pdial</span><span class="p">.</span><span class="n">setvalue</span><span class="p">(</span><span class="n">number</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
987 <span class="k">func</span> <span class="n">pDialMove</span>
988 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">""</span><span class="o">+</span><span class="n">pdial</span><span class="p">.</span><span class="n">value</span><span class="p">())</span>
991 <img alt="QDial - 第二用例" src="_images/usingqdial.png" />
993 <div class="section" id="qwebview">
994 <span id="index-21"></span><h2>QWebView の用法<a class="headerlink" href="#qwebview" title="このヘッドラインへのパーマリンク">¶</a></h2>
995 <p>この用例では、 QWebView クラスを学びます。</p>
996 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
998 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
999 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1000 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QWebView"</span><span class="p">)</span>
1001 <span class="n">myweb</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwebview</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1002 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
1003 <span class="n">loadpage</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"http://google.com"</span><span class="p">))</span>
1004 <span class="p">}</span>
1005 <span class="n">setcentralwidget</span><span class="p">(</span><span class="n">myweb</span><span class="p">)</span>
1006 <span class="n">showMaximized</span><span class="p">()</span>
1007 <span class="p">}</span>
1008 <span class="n">exec</span><span class="p">()</span>
1009 <span class="p">}</span>
1013 <img alt="QWebView" src="_images/ringqt_shot20.jpg" />
1015 <div class="section" id="qcheckbox">
1016 <span id="index-22"></span><h2>QCheckBox の用法<a class="headerlink" href="#qcheckbox" title="このヘッドラインへのパーマリンク">¶</a></h2>
1017 <p>この用例では、 QCheckBox クラスを学びます。</p>
1018 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1020 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1021 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1022 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QCheckBox"</span><span class="p">)</span>
1023 <span class="k">new</span> <span class="n">qcheckbox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1024 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1025 <span class="n">settext</span><span class="p">(</span><span class="s">"New Customer!"</span><span class="p">)</span>
1026 <span class="p">}</span>
1027 <span class="n">showMaximized</span><span class="p">()</span>
1028 <span class="p">}</span>
1029 <span class="n">exec</span><span class="p">()</span>
1030 <span class="p">}</span>
1034 <img alt="QCheckBox" src="_images/ringqt_shot21.jpg" />
1036 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1038 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1039 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1040 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1041 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QCheckBox"</span><span class="p">)</span>
1043 <span class="sd">### 0: チェックされていない。 1: チェックされた。</span>
1045 <span class="n">CheckBox</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qcheckbox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1046 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">160</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1047 <span class="n">settext</span><span class="p">(</span><span class="s">"New Customer!"</span><span class="p">)</span>
1048 <span class="n">setclickedEvent</span><span class="p">(</span><span class="s">"HandleClickEvent()"</span><span class="p">)</span>
1049 <span class="p">}</span>
1051 <span class="n">show</span><span class="p">()</span>
1052 <span class="p">}</span>
1053 <span class="n">exec</span><span class="p">()</span>
1054 <span class="p">}</span>
1056 <span class="k">Func</span> <span class="n">HandleClickEvent</span>
1058 <span class="k">if</span> <span class="n">CheckBox</span><span class="p">.</span><span class="n">isChecked</span><span class="p">()</span> <span class="o">=</span> <span class="mi">1</span>
1059 <span class="n">CheckBox</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"New Customer. Check 1-ON"</span><span class="p">)</span>
1060 <span class="k">else</span>
1061 <span class="n">CheckBox</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"New Customer. Check 0-OFF"</span><span class="p">)</span>
1062 <span class="k">ok</span>
1066 <div class="section" id="qradiobutton-qbuttongroup">
1067 <span id="index-23"></span><h2>QRadioButton と QButtonGroup の用法<a class="headerlink" href="#qradiobutton-qbuttongroup" title="このヘッドラインへのパーマリンク">¶</a></h2>
1068 <p>この用例では、 QRadioButton および QButtonGroup クラスを学びます。</p>
1069 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1071 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1073 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1075 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QRadioButton"</span><span class="p">)</span>
1077 <span class="k">new</span> <span class="n">qradiobutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1078 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1079 <span class="n">settext</span><span class="p">(</span><span class="s">"One"</span><span class="p">)</span>
1080 <span class="p">}</span>
1081 <span class="k">new</span> <span class="n">qradiobutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1082 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1083 <span class="n">settext</span><span class="p">(</span><span class="s">"Two"</span><span class="p">)</span>
1084 <span class="p">}</span>
1085 <span class="k">new</span> <span class="n">qradiobutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1086 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1087 <span class="n">settext</span><span class="p">(</span><span class="s">"Three"</span><span class="p">)</span>
1088 <span class="p">}</span>
1091 <span class="n">group2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qbuttongroup</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1092 <span class="n">btn4</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qradiobutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1093 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">150</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1094 <span class="n">settext</span><span class="p">(</span><span class="s">"Four"</span><span class="p">)</span>
1095 <span class="p">}</span>
1096 <span class="n">btn5</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qradiobutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1097 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1098 <span class="n">settext</span><span class="p">(</span><span class="s">"Five"</span><span class="p">)</span>
1099 <span class="p">}</span>
1100 <span class="n">addbutton</span><span class="p">(</span><span class="n">btn4</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1101 <span class="n">addbutton</span><span class="p">(</span><span class="n">btn5</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1103 <span class="p">}</span>
1105 <span class="n">showMaximized</span><span class="p">()</span>
1107 <span class="p">}</span>
1108 <span class="n">exec</span><span class="p">()</span>
1109 <span class="p">}</span>
1113 <img alt="QRadioButton と QButtonGroup の用法" src="_images/ringqt_shot22.jpg" />
1115 <div class="section" id="qlabel">
1116 <span id="index-24"></span><h2>QLabel へハイパーリンクを追加するには<a class="headerlink" href="#qlabel" title="このヘッドラインへのパーマリンク">¶</a></h2>
1117 <p>この用例では、 QLabel クラスでハイパーリンクを作成する方法を学びます。</p>
1118 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1120 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1121 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1122 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QLabel - Hyperlink"</span><span class="p">)</span>
1123 <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1124 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1125 <span class="n">setopenexternallinks</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
1126 <span class="n">settext</span><span class="p">(</span><span class="sc">'<a href="http://google.com">Google</a>'</span><span class="p">)</span>
1127 <span class="p">}</span>
1128 <span class="n">showMaximized</span><span class="p">()</span>
1129 <span class="p">}</span>
1130 <span class="n">exec</span><span class="p">()</span>
1131 <span class="p">}</span>
1135 <img alt="ハイパーリンク" src="_images/ringqt_shot23.jpg" />
1137 <div class="section" id="qvideowidget-qmediaplayer">
1138 <span id="index-25"></span><h2>QVideoWidget と QMediaPlayer<a class="headerlink" href="#qvideowidget-qmediaplayer" title="このヘッドラインへのパーマリンク">¶</a></h2>
1139 <p>この用例では、 QVideoWidget および QMediaPlayer クラスで動画のグループを
1140 異なる位置から同時再生する方法を学びます。</p>
1141 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1143 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1145 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1147 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QVideoWidget"</span><span class="p">)</span>
1149 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1150 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1151 <span class="n">settext</span><span class="p">(</span><span class="s">"play"</span><span class="p">)</span>
1152 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"player.play() player2.play()</span>
1153 <span class="n">player3</span><span class="p">.</span><span class="n">play</span><span class="p">()</span> <span class="n">player4</span><span class="p">.</span><span class="n">play</span><span class="p">()</span><span class="s">")</span>
1154 <span class="p">}</span>
1156 <span class="n">videowidget</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvideowidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1157 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1158 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: black"</span><span class="p">)</span>
1159 <span class="p">}</span>
1161 <span class="n">videowidget2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvideowidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1162 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">700</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1163 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: black"</span><span class="p">)</span>
1164 <span class="p">}</span>
1167 <span class="n">videowidget3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvideowidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1168 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">370</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1169 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: black"</span><span class="p">)</span>
1170 <span class="p">}</span>
1172 <span class="n">videowidget4</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvideowidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1173 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">700</span><span class="p">,</span><span class="mi">370</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1174 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: black"</span><span class="p">)</span>
1175 <span class="p">}</span>
1177 <span class="n">player</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmediaplayer</span><span class="p">()</span> <span class="p">{</span>
1178 <span class="n">setmedia</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"1.mp4"</span><span class="p">))</span>
1179 <span class="n">setvideooutput</span><span class="p">(</span><span class="n">videowidget</span><span class="p">)</span>
1180 <span class="n">setposition</span><span class="p">(</span><span class="mi">35</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">1000</span><span class="p">)</span>
1182 <span class="p">}</span>
1184 <span class="n">player2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmediaplayer</span><span class="p">()</span> <span class="p">{</span>
1185 <span class="n">setmedia</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"2.mp4"</span><span class="p">))</span>
1186 <span class="n">setvideooutput</span><span class="p">(</span><span class="n">videowidget2</span><span class="p">)</span>
1187 <span class="n">setposition</span><span class="p">(</span><span class="mi">23</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">1000</span><span class="p">)</span>
1188 <span class="p">}</span>
1190 <span class="n">player3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmediaplayer</span><span class="p">()</span> <span class="p">{</span>
1191 <span class="n">setmedia</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"3.mp4"</span><span class="p">))</span>
1192 <span class="n">setvideooutput</span><span class="p">(</span><span class="n">videowidget3</span><span class="p">)</span>
1193 <span class="n">setposition</span><span class="p">(</span><span class="mf">14.22</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">1000</span><span class="p">)</span>
1194 <span class="p">}</span>
1196 <span class="n">player4</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmediaplayer</span><span class="p">()</span> <span class="p">{</span>
1197 <span class="n">setmedia</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"4.avi"</span><span class="p">))</span>
1198 <span class="n">setvideooutput</span><span class="p">(</span><span class="n">videowidget4</span><span class="p">)</span>
1199 <span class="n">setposition</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">1000</span><span class="p">)</span>
1200 <span class="p">}</span>
1202 <span class="n">showfullscreen</span><span class="p">()</span>
1204 <span class="p">}</span>
1206 <span class="n">exec</span><span class="p">()</span>
1208 <span class="p">}</span>
1212 <img alt="QVideoWidget" src="_images/ringqt_shot24.jpg" />
1214 <div class="section" id="qframe">
1215 <span id="index-26"></span><h2>QFrame の用法<a class="headerlink" href="#qframe" title="このヘッドラインへのパーマリンク">¶</a></h2>
1216 <p>この用例では、 QFrame クラスを学びます。</p>
1217 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1219 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1220 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1221 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Using QFrame"</span><span class="p">)</span>
1222 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">to</span> <span class="mi">10</span>
1223 <span class="n">frame1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qframe</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
1224 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">20</span><span class="o">+</span><span class="mi">50</span><span class="o">*</span><span class="n">x</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1225 <span class="n">setframestyle</span><span class="p">(</span><span class="n">QFrame_Raised</span> <span class="o">|</span> <span class="n">QFrame_WinPanel</span><span class="p">)</span>
1226 <span class="p">}</span>
1227 <span class="k">next</span>
1228 <span class="n">showMaximized</span><span class="p">()</span>
1229 <span class="p">}</span>
1230 <span class="n">exec</span><span class="p">()</span>
1231 <span class="p">}</span>
1235 <img alt="QFrame" src="_images/ringqt_shot25.jpg" />
1237 <div class="section" id="index-27">
1238 <span id="id7"></span><h2>QLabel による画像の表示方法<a class="headerlink" href="#index-27" title="このヘッドラインへのパーマリンク">¶</a></h2>
1239 <p>QLabel ウイジェットによる画像の表示方法を学びます。</p>
1240 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1242 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1243 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1244 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QLabel - Display image"</span><span class="p">)</span>
1245 <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1246 <span class="n">image</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpixmap</span><span class="p">(</span><span class="s">"b:/mahmoud/photo/advice.jpg"</span><span class="p">)</span>
1247 <span class="n">setpixmap</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
1248 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">image</span><span class="p">.</span><span class="n">width</span><span class="p">(),</span><span class="n">image</span><span class="p">.</span><span class="n">height</span><span class="p">())</span>
1249 <span class="p">}</span>
1250 <span class="n">showMaximized</span><span class="p">()</span>
1251 <span class="p">}</span>
1252 <span class="n">exec</span><span class="p">()</span>
1253 <span class="p">}</span>
1257 <img alt="画像の表示" src="_images/ringqt_shot26.jpg" />
1259 <div class="section" id="index-28">
1260 <span id="id8"></span><h2>メニューバーとスタイルシートの用例<a class="headerlink" href="#index-28" title="このヘッドラインへのパーマリンク">¶</a></h2>
1261 <p>メニューバーの作成、およびウィンドウのスタイルシートの設定方法を学びます。</p>
1262 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1264 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1266 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1268 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Menubar"</span><span class="p">)</span>
1270 <span class="n">menu1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmenubar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1271 <span class="n">sub1</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"File"</span><span class="p">)</span>
1272 <span class="n">sub1</span> <span class="p">{</span>
1273 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1274 <span class="n">settext</span><span class="p">(</span><span class="s">"New"</span><span class="p">)</span>
1275 <span class="n">setenabled</span><span class="p">(</span><span class="kp">false</span><span class="p">)</span>
1276 <span class="p">}</span>
1277 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
1278 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1279 <span class="n">settext</span><span class="p">(</span><span class="s">"Open"</span><span class="p">)</span>
1280 <span class="n">setcheckable</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
1281 <span class="n">setchecked</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
1282 <span class="n">setstatustip</span><span class="p">(</span><span class="s">"open new file"</span><span class="p">)</span>
1283 <span class="p">}</span>
1284 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
1285 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1286 <span class="n">settext</span><span class="p">(</span><span class="s">"Save"</span><span class="p">)</span>
1287 <span class="p">}</span>
1288 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
1289 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1290 <span class="n">settext</span><span class="p">(</span><span class="s">"Save As"</span><span class="p">)</span>
1291 <span class="p">}</span>
1292 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
1294 <span class="n">addseparator</span><span class="p">()</span>
1295 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qaction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1296 <span class="n">oAction</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"Exit"</span><span class="p">)</span>
1297 <span class="n">oAction</span><span class="p">.</span><span class="n">setclickevent</span><span class="p">(</span><span class="s">"myapp.quit()"</span><span class="p">)</span>
1298 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
1299 <span class="p">}</span>
1301 <span class="p">}</span>
1302 <span class="n">status1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qstatusbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1303 <span class="n">showmessage</span><span class="p">(</span><span class="s">"Ready!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1304 <span class="p">}</span>
1305 <span class="n">setmenubar</span><span class="p">(</span><span class="n">menu1</span><span class="p">)</span>
1306 <span class="n">setmousetracking</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
1307 <span class="n">setstatusbar</span><span class="p">(</span><span class="n">status1</span><span class="p">)</span>
1308 <span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"color: black; selection-color: black;</span>
1309 <span class="n">selection</span><span class="o">-</span><span class="n">background</span><span class="o">-</span><span class="n">color</span><span class="p">:</span><span class="n">white</span> <span class="p">;</span>
1310 <span class="n">background</span><span class="p">:</span> <span class="n">QLinearGradient</span><span class="p">(</span><span class="n">x1</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="n">y1</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="n">x2</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="n">y2</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
1311 <span class="n">stop</span><span class="p">:</span> <span class="mi">0</span> <span class="c">#eef, stop: 1 #ccf);")</span>
1312 <span class="n">showmaximized</span><span class="p">()</span>
1313 <span class="p">}</span>
1314 <span class="n">exec</span><span class="p">()</span>
1315 <span class="p">}</span>
1319 <img alt="メニューバー" src="_images/ringqt_shot27.jpg" />
1321 <div class="section" id="qlineedit-qmessagebox">
1322 <span id="index-29"></span><h2>QLineEdit イベントと QMessageBox<a class="headerlink" href="#qlineedit-qmessagebox" title="このヘッドラインへのパーマリンク">¶</a></h2>
1323 <p>QLineEdit イベントの用法、およびメッセージボックスの表示方法を学びます。</p>
1324 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1326 <span class="n">MyApp</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1328 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
1330 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Welcome"</span><span class="p">)</span>
1331 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
1334 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1335 <span class="n">settext</span><span class="p">(</span><span class="s">"What is your name ?"</span><span class="p">)</span>
1336 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1337 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span><span class="p">)</span>
1338 <span class="p">}</span>
1340 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1341 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1342 <span class="n">settext</span><span class="p">(</span><span class="s">"Say Hello"</span><span class="p">)</span>
1343 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pHello()"</span><span class="p">)</span>
1344 <span class="p">}</span>
1346 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1347 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1348 <span class="n">settext</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
1349 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pClose()"</span><span class="p">)</span>
1350 <span class="p">}</span>
1352 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1353 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1354 <span class="n">settextchangedevent</span><span class="p">(</span><span class="s">"pChange()"</span><span class="p">)</span>
1355 <span class="n">setreturnpressedevent</span><span class="p">(</span><span class="s">"penter()"</span><span class="p">)</span>
1356 <span class="p">}</span>
1358 <span class="n">show</span><span class="p">()</span>
1359 <span class="p">}</span>
1361 <span class="n">exec</span><span class="p">()</span>
1362 <span class="p">}</span>
1364 <span class="k">Func</span> <span class="n">pHello</span>
1365 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span> <span class="s">"Hello "</span> <span class="o">+</span> <span class="n">lineedit1</span><span class="p">.</span><span class="n">text</span><span class="p">())</span>
1367 <span class="k">Func</span> <span class="n">pClose</span>
1368 <span class="n">MyApp</span><span class="p">.</span><span class="n">quit</span><span class="p">()</span>
1370 <span class="k">Func</span> <span class="n">pChange</span>
1371 <span class="n">win1</span> <span class="p">{</span> <span class="n">setwindowtitle</span><span class="p">(</span> <span class="n">lineedit1</span><span class="p">.</span><span class="n">text</span><span class="p">()</span> <span class="p">)</span> <span class="p">}</span>
1373 <span class="k">Func</span> <span class="n">pEnter</span>
1374 <span class="k">new</span> <span class="n">qmessagebox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1375 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Thanks"</span><span class="p">)</span>
1376 <span class="n">settext</span><span class="p">(</span><span class="s">"Hi "</span> <span class="o">+</span> <span class="n">lineedit1</span><span class="p">.</span><span class="n">text</span><span class="p">()</span> <span class="p">)</span>
1377 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color : white"</span><span class="p">)</span>
1378 <span class="n">show</span><span class="p">()</span>
1379 <span class="p">}</span>
1383 <img alt="QLineEdit イベントと QMessageBox" src="_images/ringqt_shot28.jpg" />
1384 <img alt="QLineEdit イベントと QMessageBox" src="_images/ringqt_shot29.jpg" />
1386 <div class="section" id="index-30">
1387 <span id="id9"></span><h2>そのほかのウイジェットイベント<a class="headerlink" href="#index-30" title="このヘッドラインへのパーマリンク">¶</a></h2>
1388 <p>各 Qt シグナルは RingQt で使えます。シグナル名の前に設定を行うことで追加、
1389 およびイベントのコードを決定するために使用できるメソッドを取得するためにシグナル名の後にイベントを追加します。</p>
1390 <p>例えば QProgressBar クラスにはシグナル名である valueChanged() があります。
1391 使用するには setValueChangedEvent() 関数を使用します。</p>
1393 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1395 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1396 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1398 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QProgressBar valueChanged Event"</span><span class="p">)</span>
1400 <span class="n">progress1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qprogressbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1401 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">350</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1402 <span class="n">setvalue</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
1403 <span class="n">setvaluechangedevent</span><span class="p">(</span><span class="s">"pChange()"</span><span class="p">)</span>
1404 <span class="p">}</span>
1406 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1407 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1408 <span class="n">settext</span><span class="p">(</span><span class="s">"increase"</span><span class="p">)</span>
1409 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pIncrease()"</span><span class="p">)</span>
1410 <span class="p">}</span>
1412 <span class="n">showMaximized</span><span class="p">()</span>
1414 <span class="p">}</span>
1416 <span class="n">exec</span><span class="p">()</span>
1417 <span class="p">}</span>
1419 <span class="k">func</span> <span class="n">pIncrease</span>
1420 <span class="n">progress1</span> <span class="p">{</span> <span class="n">setvalue</span><span class="p">(</span><span class="n">value</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="p">}</span>
1422 <span class="k">func</span> <span class="n">pchange</span>
1423 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"value : "</span> <span class="o">+</span> <span class="n">progress1</span><span class="p">.</span><span class="n">value</span><span class="p">()</span> <span class="p">)</span>
1427 <img alt="qProgressBar クラスの valueChanged イベント" src="_images/ringqt_shot30.jpg" />
1428 <p>別の用例は QCheckBox クラスの stateChanged イベントです。</p>
1429 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1431 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
1432 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1433 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"QCheckBox"</span><span class="p">)</span>
1434 <span class="k">new</span> <span class="n">qcheckbox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1435 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1436 <span class="n">settext</span><span class="p">(</span><span class="s">"New Customer!"</span><span class="p">)</span>
1437 <span class="n">setstatechangedevent</span><span class="p">(</span><span class="s">"pchange()"</span><span class="p">)</span>
1438 <span class="p">}</span>
1439 <span class="n">showMaximized</span><span class="p">()</span>
1440 <span class="p">}</span>
1441 <span class="n">exec</span><span class="p">()</span>
1442 <span class="p">}</span>
1444 <span class="k">Func</span> <span class="n">pChange</span>
1446 <span class="k">new</span> <span class="n">qMessageBox</span><span class="p">(</span><span class="n">Win1</span><span class="p">)</span> <span class="p">{</span>
1447 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Checkbox"</span><span class="p">)</span>
1448 <span class="n">settext</span><span class="p">(</span><span class="s">"State Changed!"</span><span class="p">)</span>
1449 <span class="n">show</span><span class="p">()</span>
1450 <span class="p">}</span>
1454 <img alt="qProgressBar クラスの valueChanged イベント" src="_images/ringqt_shot31.jpg" />
1456 <div class="section" id="qtimer">
1457 <span id="index-31"></span><h2>QTimer クラスの用法<a class="headerlink" href="#qtimer" title="このヘッドラインへのパーマリンク">¶</a></h2>
1458 <p>この用例では、 QTimer クラスを学びます。</p>
1459 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1461 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
1462 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1463 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">70</span><span class="p">)</span>
1464 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Timer"</span><span class="p">)</span>
1465 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1466 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1467 <span class="n">settext</span><span class="p">(</span><span class="n">thetime</span><span class="p">())</span>
1468 <span class="p">}</span>
1469 <span class="k">new</span> <span class="n">qtimer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1470 <span class="n">setinterval</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span>
1471 <span class="n">settimeoutevent</span><span class="p">(</span><span class="s">"pTime()"</span><span class="p">)</span>
1472 <span class="n">start</span><span class="p">()</span>
1473 <span class="p">}</span>
1474 <span class="n">show</span><span class="p">()</span>
1475 <span class="p">}</span>
1476 <span class="n">exec</span><span class="p">()</span>
1477 <span class="p">}</span>
1479 <span class="k">func</span> <span class="n">ptime</span>
1480 <span class="n">label1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">thetime</span><span class="p">())</span>
1482 <span class="k">Func</span> <span class="n">thetime</span>
1483 <span class="k">return</span> <span class="s">"Time : "</span> <span class="o">+</span> <span class="n">Time</span><span class="p">()</span>
1487 <img alt="QTimer クラス" src="_images/ringqt_shot32.jpg" />
1489 <div class="section" id="index-32">
1490 <span id="id10"></span><h2>QProgressBar およびタイマーの用法<a class="headerlink" href="#index-32" title="このヘッドラインへのパーマリンク">¶</a></h2>
1491 <p>この用例では、“アニメーション”つきの QProgressBar クラスとタイマーを学びます。</p>
1492 <div class="highlight-ring"><div class="highlight"><pre><span class="sd">###------------------------------------</span>
1493 <span class="sd">### プログレスバーとタイマーの用例</span>
1495 <span class="k">Load</span> <span class="s">"guilib.ring"</span>
1497 <span class="k">new</span> <span class="n">qApp</span>
1498 <span class="p">{</span>
1499 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span>
1500 <span class="p">{</span>
1501 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
1502 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Timer and ProgressBar"</span><span class="p">)</span>
1504 <span class="n">LabelMan</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1505 <span class="p">{</span>
1506 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1507 <span class="n">settext</span><span class="p">(</span><span class="n">theTime</span><span class="p">())</span> <span class="sd">### ==>> 関数</span>
1508 <span class="p">}</span>
1510 <span class="n">TimerMan</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtimer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1511 <span class="p">{</span>
1512 <span class="n">setinterval</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span>
1513 <span class="n">settimeoutevent</span><span class="p">(</span><span class="s">"pTime()"</span><span class="p">)</span> <span class="sd">### ==>> 関数</span>
1514 <span class="n">start</span><span class="p">()</span>
1515 <span class="p">}</span>
1517 <span class="n">BarMan</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qprogressbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1518 <span class="p">{</span>
1519 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">300</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span> <span class="sd">### X, Y 位置、長さ、チックネス</span>
1520 <span class="n">setvalue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="sd">### パーセントが塗りつぶされた</span>
1521 <span class="p">}</span>
1523 <span class="n">show</span><span class="p">()</span>
1524 <span class="p">}</span>
1525 <span class="n">exec</span><span class="p">()</span>
1526 <span class="p">}</span>
1528 <span class="k">func</span> <span class="n">pTime</span>
1529 <span class="n">LabelMan</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">theTime</span><span class="p">())</span> <span class="sd">### ==>> 関数</span>
1531 <span class="n">Increment</span> <span class="o">=</span> <span class="mi">10</span>
1532 <span class="k">if</span> <span class="n">BarMan</span><span class="p">.</span><span class="n">value</span><span class="p">()</span> <span class="o">>=</span> <span class="mi">100</span> <span class="sd">### プログレスバーの開始後.</span>
1533 <span class="n">BarMan</span><span class="p">.</span><span class="n">setvalue</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
1534 <span class="k">ok</span>
1535 <span class="n">BarMan</span><span class="p">{</span> <span class="n">setvalue</span><span class="p">(</span><span class="n">value</span><span class="p">()</span> <span class="o">+</span> <span class="n">Increment</span><span class="p">)</span> <span class="p">}</span>
1537 <span class="k">Func</span> <span class="n">theTime</span>
1538 <span class="k">return</span> <span class="s">"Time : "</span> <span class="o">+</span> <span class="n">Time</span><span class="p">()</span>
1541 <img alt="QProgressBar" src="_images/ringqt_shot15-B.jpg" />
1543 <div class="section" id="index-33">
1544 <span id="id11"></span><h2>QLabel による寸法変更画像の表示方法<a class="headerlink" href="#index-33" title="このヘッドラインへのパーマリンク">¶</a></h2>
1545 <p>この例では QLabel ウィジェットで“アニメーションつき”の画像を表示して寸法を変更する方法を学びます。</p>
1546 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1548 <span class="c">#----------------------------------------------------</span>
1549 <span class="c"># 必携: image = "C:\RING\bin\stock.jpg"</span>
1551 <span class="c"># imageStock: 伸張する画像の開始寸法</span>
1553 <span class="n">imageW</span> <span class="o">=</span> <span class="mi">200</span> <span class="p">;</span> <span class="n">imageH</span> <span class="o">=</span> <span class="mi">200</span> <span class="p">;</span> <span class="n">GrowBy</span> <span class="o">=</span> <span class="mi">4</span>
1555 <span class="sd">###----------------------------------------------------</span>
1556 <span class="sd">### ウィンドウと箱の大きさの寸法</span>
1558 <span class="n">WinWidth</span> <span class="o">=</span> <span class="mi">1280</span> <span class="p">;</span> <span class="n">WinHeight</span> <span class="o">=</span> <span class="mi">960</span>
1559 <span class="n">BoxWidth</span> <span class="o">=</span> <span class="n">WinWidth</span> <span class="o">-</span><span class="mi">80</span> <span class="p">;</span> <span class="n">BoxHeight</span> <span class="o">=</span> <span class="n">WinHeight</span> <span class="o">-</span><span class="mi">80</span>
1561 <span class="sd">###----------------------------------------------------</span>
1563 <span class="k">New</span> <span class="n">qapp</span> <span class="p">{</span>
1565 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1567 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span> <span class="n">WinWidth</span><span class="p">,</span><span class="n">WinHeight</span><span class="p">)</span>
1568 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Animated Image - Display Image Scaled and Resized"</span><span class="p">)</span>
1570 <span class="n">imageStock</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1572 <span class="n">image</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpixmap</span><span class="p">(</span><span class="s">"C:</span><span class="se">\R</span><span class="s">ING</span><span class="se">\b</span><span class="s">in\stock.jpg"</span><span class="p">)</span>
1573 <span class="n">AspectRatio</span> <span class="o">=</span> <span class="n">image</span><span class="p">.</span><span class="n">width</span><span class="p">()</span> <span class="o">/</span> <span class="n">image</span><span class="p">.</span><span class="n">height</span><span class="p">()</span>
1575 <span class="n">imageW</span> <span class="o">=</span> <span class="mi">200</span>
1576 <span class="n">imageH</span> <span class="o">=</span> <span class="n">imageH</span> <span class="o">/</span> <span class="n">AspectRatio</span>
1578 <span class="sd">### 水平寸法、垂直寸法、アスペクト比、変形</span>
1579 <span class="n">setpixmap</span><span class="p">(</span><span class="n">image</span><span class="p">.</span><span class="n">scaled</span><span class="p">(</span><span class="n">imageW</span> <span class="p">,</span> <span class="n">imageH</span> <span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span>
1581 <span class="n">PosLeft</span> <span class="o">=</span> <span class="p">(</span><span class="n">BoxWidth</span> <span class="o">-</span> <span class="n">imageW</span> <span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
1582 <span class="n">PosTop</span> <span class="o">=</span> <span class="p">(</span><span class="n">BoxHeight</span> <span class="o">-</span> <span class="n">imageH</span> <span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
1583 <span class="n">setGeometry</span><span class="p">(</span><span class="n">PosLeft</span><span class="p">,</span><span class="n">PosTop</span><span class="p">,</span><span class="n">imageW</span><span class="p">,</span><span class="n">imageH</span><span class="p">)</span>
1585 <span class="p">}</span>
1587 <span class="n">TimerMan</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtimer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1588 <span class="n">setinterval</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="sd">### 100 ミリ秒間隔です。</span>
1589 <span class="n">settimeoutevent</span><span class="p">(</span><span class="s">"pTime()"</span><span class="p">)</span> <span class="sd">### ==>> 関数</span>
1590 <span class="n">start</span><span class="p">()</span>
1591 <span class="p">}</span>
1593 <span class="n">show</span><span class="p">()</span>
1594 <span class="p">}</span>
1595 <span class="n">exec</span><span class="p">()</span>
1596 <span class="p">}</span>
1599 <span class="sd">###------------------------------------------------------</span>
1600 <span class="sd">### TimerMan 関数: 100 ミリ秒間隔で呼び出します。</span>
1602 <span class="k">func</span> <span class="n">pTime</span>
1604 <span class="sd">### 画像の大きさがウィンドウ領域に達したときにタイマーを停止します。</span>
1605 <span class="k">if</span> <span class="n">imageW</span> <span class="o">></span> <span class="n">BoxWidth</span>
1606 <span class="n">TimerMan</span><span class="p">.</span><span class="n">stop</span><span class="p">()</span>
1607 <span class="n">imageStock</span><span class="p">.</span><span class="n">clear</span><span class="p">()</span> <span class="sd">### 画像の消去</span>
1608 <span class="k">ok</span>
1610 <span class="sd">## 画像の伸張</span>
1611 <span class="n">imageW</span> <span class="o">+=</span> <span class="n">GrowBy</span>
1612 <span class="n">imageH</span> <span class="o">=</span> <span class="n">imageW</span> <span class="o">/</span> <span class="n">AspectRatio</span>
1614 <span class="sd">### 画像の寸法変更: 水平寸法、垂直寸法、アスペクト比、変形</span>
1615 <span class="n">imageStock</span><span class="p">.</span><span class="n">setpixmap</span><span class="p">(</span><span class="n">image</span><span class="p">.</span><span class="n">scaled</span><span class="p">(</span><span class="n">imageW</span> <span class="p">,</span> <span class="n">imageH</span> <span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span>
1617 <span class="sd">### 画像を中央へ</span>
1618 <span class="n">PosLeft</span> <span class="o">=</span> <span class="p">(</span><span class="n">WinWidth</span> <span class="o">-</span> <span class="n">imageW</span> <span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
1619 <span class="n">PosTop</span> <span class="o">=</span> <span class="p">(</span><span class="n">WinHeight</span> <span class="o">-</span> <span class="n">imageH</span> <span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
1620 <span class="n">imageStock</span><span class="p">.</span><span class="n">setGeometry</span><span class="p">(</span><span class="n">PosLeft</span><span class="p">,</span><span class="n">PosTop</span><span class="p">,</span><span class="n">imageW</span><span class="p">,</span><span class="n">imageH</span><span class="p">)</span>
1624 <div class="section" id="qfiledialog">
1625 <span id="index-34"></span><h2>QFileDialog クラスの用法<a class="headerlink" href="#qfiledialog" title="このヘッドラインへのパーマリンク">¶</a></h2>
1627 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1629 <span class="k">New</span> <span class="n">qapp</span> <span class="p">{</span>
1630 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1631 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"open file"</span><span class="p">)</span>
1632 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
1633 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1634 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1635 <span class="n">settext</span><span class="p">(</span><span class="s">"open file"</span><span class="p">)</span>
1636 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pOpen()"</span><span class="p">)</span>
1637 <span class="p">}</span>
1638 <span class="n">show</span><span class="p">()</span>
1639 <span class="p">}</span>
1640 <span class="n">exec</span><span class="p">()</span>
1641 <span class="p">}</span>
1643 <span class="k">Func</span> <span class="n">pOpen</span>
1644 <span class="k">new</span> <span class="n">qfiledialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1645 <span class="n">cName</span> <span class="o">=</span> <span class="n">getopenfilename</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="s">"open file"</span><span class="p">,</span><span class="s">"c:</span><span class="se">\"</span><span class="s">,"</span><span class="n">source</span> <span class="n">files</span><span class="p">(</span><span class="o">*</span><span class="p">.</span><span class="n">ring</span><span class="p">)</span><span class="s">")</span>
1646 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="n">cName</span><span class="p">)</span>
1647 <span class="p">}</span>
1651 <img alt="QFileDialog クラス" src="_images/ringqt_shot33.jpg" />
1653 <div class="section" id="qpainter">
1654 <span id="index-35"></span><h2>QPainter による描画方法<a class="headerlink" href="#qpainter" title="このヘッドラインへのパーマリンク">¶</a></h2>
1655 <p>この用例では、 QPainter クラスによる描画方法を学びます。</p>
1656 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1657 <span class="k">New</span> <span class="n">qapp</span> <span class="p">{</span>
1658 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1659 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Drawing using QPainter"</span><span class="p">)</span>
1660 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
1661 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1662 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
1663 <span class="n">settext</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
1664 <span class="p">}</span>
1665 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1666 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1667 <span class="n">settext</span><span class="p">(</span><span class="s">"draw"</span><span class="p">)</span>
1668 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"draw()"</span><span class="p">)</span>
1669 <span class="p">}</span>
1671 <span class="n">show</span><span class="p">()</span>
1672 <span class="p">}</span>
1673 <span class="n">exec</span><span class="p">()</span>
1674 <span class="p">}</span>
1676 <span class="k">Func</span> <span class="n">draw</span>
1677 <span class="n">p1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpicture</span><span class="p">()</span>
1678 <span class="n">color</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qcolor</span><span class="p">()</span> <span class="p">{</span>
1679 <span class="n">setrgb</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">)</span>
1680 <span class="p">}</span>
1681 <span class="n">pen</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpen</span><span class="p">()</span> <span class="p">{</span>
1682 <span class="n">setcolor</span><span class="p">(</span><span class="n">color</span><span class="p">)</span>
1683 <span class="n">setwidth</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
1684 <span class="p">}</span>
1685 <span class="k">new</span> <span class="n">qpainter</span><span class="p">()</span> <span class="p">{</span>
1686 <span class="n">begin</span><span class="p">(</span><span class="n">p1</span><span class="p">)</span>
1687 <span class="n">setpen</span><span class="p">(</span><span class="n">pen</span><span class="p">)</span>
1688 <span class="n">drawline</span><span class="p">(</span><span class="mi">500</span><span class="p">,</span><span class="mi">150</span><span class="p">,</span><span class="mi">950</span><span class="p">,</span><span class="mi">450</span><span class="p">)</span>
1689 <span class="n">drawline</span><span class="p">(</span><span class="mi">950</span><span class="p">,</span><span class="mi">550</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
1690 <span class="n">endpaint</span><span class="p">()</span>
1691 <span class="p">}</span>
1692 <span class="n">label1</span> <span class="p">{</span> <span class="n">setpicture</span><span class="p">(</span><span class="n">p1</span><span class="p">)</span> <span class="n">show</span><span class="p">()</span> <span class="p">}</span>
1696 <img alt="QPainter クラス" src="_images/ringqt_shot34.jpg" />
1698 <div class="section" id="qprinter">
1699 <span id="index-36"></span><h2>QPrinter による印刷方法<a class="headerlink" href="#qprinter" title="このヘッドラインへのパーマリンク">¶</a></h2>
1700 <p>この用例では、 QPrinter で PDF ファイルを印刷する方法を学びます。</p>
1701 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1702 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
1703 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1704 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Printer"</span><span class="p">)</span>
1705 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
1706 <span class="n">myweb</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwebview</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1707 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1000</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
1708 <span class="n">loadpage</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"http://google.com"</span><span class="p">))</span>
1709 <span class="p">}</span>
1710 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1711 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span><span class="mi">20</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1712 <span class="n">settext</span><span class="p">(</span><span class="s">"Print"</span><span class="p">)</span>
1713 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"print()"</span><span class="p">)</span>
1714 <span class="p">}</span>
1715 <span class="n">showmaximized</span><span class="p">()</span>
1716 <span class="p">}</span>
1717 <span class="n">exec</span><span class="p">()</span>
1718 <span class="p">}</span>
1720 <span class="k">func</span> <span class="n">print</span>
1721 <span class="n">printer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrinter</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
1722 <span class="n">setoutputformat</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="c"># 1 = pdf</span>
1723 <span class="n">setoutputfilename</span><span class="p">(</span><span class="s">"test.pdf"</span><span class="p">)</span>
1724 <span class="n">painter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpainter</span><span class="p">()</span> <span class="p">{</span>
1725 <span class="n">begin</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span>
1726 <span class="n">myfont</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qfont</span><span class="p">(</span><span class="s">"Times"</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1727 <span class="n">setfont</span><span class="p">(</span><span class="n">myfont</span><span class="p">)</span>
1728 <span class="n">drawtext</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="s">"test"</span><span class="p">)</span>
1729 <span class="n">printer1</span><span class="p">.</span><span class="n">newpage</span><span class="p">()</span>
1730 <span class="n">drawtext</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="s">"test2"</span><span class="p">)</span>
1731 <span class="n">endpaint</span><span class="p">()</span>
1732 <span class="p">}</span>
1733 <span class="p">}</span>
1735 <span class="n">printer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrinter</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
1736 <span class="n">setoutputformat</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
1737 <span class="n">setoutputfilename</span><span class="p">(</span><span class="s">"test2.pdf"</span><span class="p">)</span>
1738 <span class="n">myweb</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span>
1739 <span class="n">myweb</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
1740 <span class="p">}</span>
1742 <span class="n">system</span> <span class="p">(</span><span class="s">"test.pdf"</span><span class="p">)</span>
1743 <span class="n">system</span> <span class="p">(</span><span class="s">"test2.pdf"</span><span class="p">)</span>
1747 <div class="section" id="qprintpreviewdialog">
1748 <span id="index-37"></span><h2>QPrintPreviewDialog の用法<a class="headerlink" href="#qprintpreviewdialog" title="このヘッドラインへのパーマリンク">¶</a></h2>
1749 <p>この用例では、 QPrintPreviewDialog クラスの用法を学びます。</p>
1751 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
1753 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
1754 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1755 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Printer Preview Dialog"</span><span class="p">)</span>
1756 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">800</span><span class="p">,</span><span class="mi">880</span><span class="p">)</span>
1757 <span class="n">printer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrinter</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
1758 <span class="n">show</span><span class="p">()</span>
1759 <span class="n">oPreview</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrintPreviewDialog</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span> <span class="p">{</span>
1760 <span class="n">setParent</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1761 <span class="n">move</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>
1762 <span class="n">setPaintrequestedevent</span><span class="p">(</span><span class="s">"printPreview()"</span><span class="p">)</span>
1763 <span class="n">exec</span><span class="p">()</span>
1764 <span class="p">}</span>
1765 <span class="p">}</span>
1766 <span class="n">exec</span><span class="p">()</span>
1767 <span class="p">}</span>
1769 <span class="k">func</span> <span class="n">printPreview</span>
1770 <span class="n">printer1</span> <span class="p">{</span>
1771 <span class="n">painter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpainter</span><span class="p">()</span> <span class="p">{</span>
1772 <span class="n">begin</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span>
1773 <span class="n">myfont</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qfont</span><span class="p">(</span><span class="s">"Times"</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1774 <span class="n">setfont</span><span class="p">(</span><span class="n">myfont</span><span class="p">)</span>
1775 <span class="n">drawtext</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="s">"Test - Page (1)"</span><span class="p">)</span>
1776 <span class="n">printer1</span><span class="p">.</span><span class="n">newpage</span><span class="p">()</span>
1777 <span class="n">drawtext</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="s">"Test - Page (2)"</span><span class="p">)</span>
1778 <span class="n">printer1</span><span class="p">.</span><span class="n">newpage</span><span class="p">()</span>
1779 <span class="n">myfont2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qfont</span><span class="p">(</span><span class="s">"Times"</span><span class="p">,</span><span class="mi">14</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
1780 <span class="n">setfont</span><span class="p">(</span><span class="n">myfont2</span><span class="p">)</span>
1781 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">30</span>
1782 <span class="n">drawtext</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="o">+</span><span class="p">(</span><span class="mi">20</span><span class="o">*</span><span class="n">x</span><span class="p">),</span><span class="s">"Number : "</span> <span class="o">+</span> <span class="n">x</span><span class="p">)</span>
1783 <span class="k">next</span>
1784 <span class="n">endpaint</span><span class="p">()</span>
1785 <span class="p">}</span>
1786 <span class="p">}</span>
1790 <img alt="印刷プレビューのダイアログ" src="_images/printpreviewdialog.png" />
1792 <div class="section" id="index-38">
1793 <span id="id12"></span><h2>複数ウィンドウの作成方法<a class="headerlink" href="#index-38" title="このヘッドラインへのパーマリンク">¶</a></h2>
1794 <p>この用例は、複数ウィンドウの作成をするためのデモです。</p>
1795 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1796 <span class="n">app1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qapp</span> <span class="p">{</span>
1797 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1798 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"First"</span><span class="p">)</span>
1799 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
1801 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1802 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1803 <span class="n">settext</span><span class="p">(</span><span class="s">"close"</span><span class="p">)</span>
1804 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"app1.quit()"</span><span class="p">)</span>
1805 <span class="p">}</span>
1807 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1808 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1809 <span class="n">settext</span><span class="p">(</span><span class="s">"Second"</span><span class="p">)</span>
1810 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"second()"</span><span class="p">)</span>
1811 <span class="p">}</span>
1813 <span class="n">showmaximized</span><span class="p">()</span>
1814 <span class="p">}</span>
1815 <span class="n">exec</span><span class="p">()</span>
1816 <span class="p">}</span>
1818 <span class="k">func</span> <span class="n">second</span>
1819 <span class="n">win2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1820 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Second"</span><span class="p">)</span>
1821 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
1822 <span class="n">setwindowflags</span><span class="p">(</span><span class="n">Qt_dialog</span><span class="p">)</span>
1823 <span class="n">show</span><span class="p">()</span>
1824 <span class="p">}</span>
1828 <img alt="複数ウィンドウの作成方法" src="_images/ringqt_shot35.jpg" />
1830 <div class="section" id="index-39">
1831 <span id="id13"></span><h2>音声の再生<a class="headerlink" href="#index-39" title="このヘッドラインへのパーマリンク">¶</a></h2>
1833 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1834 <span class="k">new</span> <span class="n">qapp</span> <span class="p">{</span>
1835 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
1836 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"play sound!"</span><span class="p">)</span> <span class="n">show</span><span class="p">()</span>
1837 <span class="p">}</span>
1838 <span class="k">new</span> <span class="n">qmediaplayer</span><span class="p">()</span> <span class="p">{</span>
1839 <span class="n">setmedia</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"footstep.wav"</span><span class="p">))</span>
1840 <span class="n">setvolume</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span> <span class="n">play</span><span class="p">()</span>
1841 <span class="p">}</span>
1842 <span class="n">exec</span><span class="p">()</span>
1843 <span class="p">}</span>
1847 <div class="section" id="qcolordialog">
1848 <span id="index-40"></span><h2>QColorDialog クラスの用法<a class="headerlink" href="#qcolordialog" title="このヘッドラインへのパーマリンク">¶</a></h2>
1850 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1852 <span class="n">oApp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">myapp</span> <span class="p">{</span> <span class="n">start</span><span class="p">()</span> <span class="p">}</span>
1854 <span class="k">Class</span> <span class="n">MyApp</span>
1856 <span class="n">oColor</span> <span class="n">win1</span>
1858 <span class="k">Func</span> <span class="n">start</span>
1860 <span class="n">myapp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qapp</span>
1862 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
1863 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Color Dialog"</span><span class="p">)</span>
1864 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
1865 <span class="p">}</span>
1867 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
1868 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
1869 <span class="n">settext</span><span class="p">(</span><span class="s">"Get Color"</span><span class="p">)</span>
1870 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"oApp.pColor()"</span><span class="p">)</span>
1871 <span class="p">}</span>
1873 <span class="n">win1</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
1874 <span class="n">myapp</span><span class="p">.</span><span class="n">exec</span><span class="p">()</span>
1877 <span class="k">Func</span> <span class="n">pColor</span>
1878 <span class="n">myobj</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qcolordialog</span><span class="p">()</span>
1879 <span class="n">aColor</span> <span class="o">=</span> <span class="n">myobj</span><span class="p">.</span><span class="n">GetColor</span><span class="p">()</span>
1880 <span class="n">r</span><span class="o">=</span><span class="n">acolor</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="n">g</span><span class="o">=</span><span class="n">acolor</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="n">b</span><span class="o">=</span><span class="n">acolor</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span>
1881 <span class="n">win1</span><span class="p">.</span><span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: rgb("</span><span class="o">+</span><span class="n">r</span><span class="o">+</span><span class="s">", "</span> <span class="o">+</span> <span class="n">g</span><span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">b</span> <span class="o">+</span> <span class="s">")"</span><span class="p">)</span>
1885 <img alt="QColorDialog クラス" src="_images/ringqt_shot37.jpg" />
1887 <div class="section" id="qlcdnumber">
1888 <span id="index-41"></span><h2>qLCDNumber クラスの用法<a class="headerlink" href="#qlcdnumber" title="このヘッドラインへのパーマリンク">¶</a></h2>
1889 <p>この用例では、 qLCDNumber クラスを学びます。</p>
1890 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1892 <span class="k">New</span> <span class="n">qApp</span>
1893 <span class="p">{</span>
1894 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
1895 <span class="p">{</span>
1896 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"LCD Number"</span><span class="p">)</span>
1897 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">250</span><span class="p">,</span><span class="mi">120</span><span class="p">)</span>
1899 <span class="k">new</span> <span class="n">qLCDNumber</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1900 <span class="p">{</span>
1901 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">40</span><span class="p">)</span>
1902 <span class="n">display</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
1904 <span class="p">}</span>
1906 <span class="k">new</span> <span class="n">qLCDNumber</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1907 <span class="p">{</span>
1908 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">60</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">40</span><span class="p">)</span>
1909 <span class="n">display</span><span class="p">(</span><span class="mi">80</span><span class="p">)</span>
1911 <span class="p">}</span>
1913 <span class="n">show</span><span class="p">()</span>
1914 <span class="p">}</span>
1916 <span class="n">exec</span><span class="p">()</span>
1917 <span class="p">}</span>
1921 <img alt="QLCDNumber クラス" src="_images/ringqt_shot38.jpg" />
1923 <div class="section" id="index-42">
1924 <span id="id14"></span><h2>移動可能ラベルの用例<a class="headerlink" href="#index-42" title="このヘッドラインへのパーマリンク">¶</a></h2>
1925 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1927 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
1929 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
1930 <span class="p">{</span>
1932 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1933 <span class="p">{</span>
1934 <span class="n">setText</span><span class="p">(</span><span class="s">"Welcome"</span><span class="p">)</span>
1935 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>
1936 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"color: purple ; font-size: 30pt;"</span><span class="p">)</span>
1937 <span class="p">}</span>
1939 <span class="k">new</span> <span class="n">qTimer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1940 <span class="p">{</span>
1941 <span class="n">setInterVal</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
1942 <span class="n">setTimeOutEvent</span><span class="p">(</span><span class="s">"pMove()"</span><span class="p">)</span>
1943 <span class="n">start</span><span class="p">()</span>
1944 <span class="p">}</span>
1946 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Movable Label"</span><span class="p">)</span>
1947 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">80</span><span class="p">)</span>
1948 <span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"background-color: white;"</span><span class="p">)</span>
1949 <span class="n">show</span><span class="p">()</span>
1951 <span class="p">}</span>
1953 <span class="n">exec</span><span class="p">()</span>
1954 <span class="p">}</span>
1956 <span class="k">Func</span> <span class="n">pMove</span>
1957 <span class="n">label1</span>
1958 <span class="p">{</span>
1959 <span class="n">move</span><span class="p">(</span><span class="n">x</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">y</span><span class="p">())</span>
1960 <span class="k">if</span> <span class="n">x</span><span class="p">()</span> <span class="o">></span> <span class="mi">600</span>
1961 <span class="n">move</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">y</span><span class="p">())</span>
1962 <span class="k">ok</span>
1963 <span class="p">}</span>
1967 <img alt="移動可能ラベル" src="_images/ringqt_shot39.jpg" />
1969 <div class="section" id="qmessagebox">
1970 <span id="index-43"></span><h2>QMessagebox の用例<a class="headerlink" href="#qmessagebox" title="このヘッドラインへのパーマリンク">¶</a></h2>
1971 <p>メッセージ・ボックスの出力を確認する方法を学びます。</p>
1972 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
1974 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
1975 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
1976 <span class="p">{</span>
1977 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1978 <span class="p">{</span>
1979 <span class="n">setText</span><span class="p">(</span><span class="s">"Test"</span><span class="p">)</span>
1980 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>
1981 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"color: purple ; font-size: 30pt;"</span><span class="p">)</span>
1982 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
1983 <span class="p">}</span>
1984 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Messagebox"</span><span class="p">)</span>
1985 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">600</span><span class="p">,</span><span class="mi">80</span><span class="p">)</span>
1986 <span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"background-color: white;"</span><span class="p">)</span>
1987 <span class="n">show</span><span class="p">()</span>
1988 <span class="p">}</span>
1989 <span class="n">exec</span><span class="p">()</span>
1990 <span class="p">}</span>
1992 <span class="k">func</span> <span class="n">pWork</span>
1993 <span class="k">new</span> <span class="n">qmessagebox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
1994 <span class="p">{</span>
1995 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"messagebox title"</span><span class="p">)</span>
1996 <span class="n">settext</span><span class="p">(</span><span class="s">"messagebox text"</span><span class="p">)</span>
1997 <span class="n">setInformativeText</span><span class="p">(</span><span class="s">"Do you want to save your changes?"</span><span class="p">)</span>
1998 <span class="n">setstandardbuttons</span><span class="p">(</span><span class="n">QMessageBox_Yes</span> <span class="o">|</span> <span class="n">QMessageBox_No</span> <span class="o">|</span> <span class="n">QMessageBox_Close</span><span class="p">)</span>
1999 <span class="n">result</span> <span class="o">=</span> <span class="n">exec</span><span class="p">()</span>
2000 <span class="n">win1</span> <span class="p">{</span>
2001 <span class="k">if</span> <span class="n">result</span> <span class="o">=</span> <span class="n">QMessageBox_Yes</span>
2002 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Yes"</span><span class="p">)</span>
2003 <span class="k">but</span> <span class="n">result</span> <span class="o">=</span> <span class="n">QMessageBox_No</span>
2004 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"No"</span><span class="p">)</span>
2005 <span class="k">but</span> <span class="n">result</span> <span class="o">=</span> <span class="n">QMessageBox_Close</span>
2006 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
2007 <span class="k">ok</span>
2008 <span class="p">}</span>
2009 <span class="p">}</span>
2013 <img alt="QMessageBox の実行結果" src="_images/ringqt_shot40.jpg" />
2015 <div class="section" id="qinputdialog">
2016 <span id="index-44"></span><h2>QInputDialog クラスの用法<a class="headerlink" href="#qinputdialog" title="このヘッドラインへのパーマリンク">¶</a></h2>
2017 <p>この用例では、 QInputDialog クラスの用法を学びます。</p>
2018 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2020 <span class="k">New</span> <span class="n">QApp</span> <span class="p">{</span>
2022 <span class="n">Win1</span> <span class="o">=</span> <span class="k">New</span> <span class="n">QWidget</span> <span class="p">()</span> <span class="p">{</span>
2024 <span class="n">SetGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2025 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Input Dialog"</span><span class="p">)</span>
2027 <span class="k">New</span> <span class="n">QPushButton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2028 <span class="p">{</span>
2030 <span class="n">SetText</span> <span class="p">(</span><span class="s">"Input Dialog"</span><span class="p">)</span>
2031 <span class="n">SetGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
2032 <span class="n">SetClickEvent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
2033 <span class="p">}</span>
2035 <span class="n">Show</span><span class="p">()</span>
2036 <span class="p">}</span>
2038 <span class="n">exec</span><span class="p">()</span>
2039 <span class="p">}</span>
2041 <span class="k">Func</span> <span class="n">pWork</span>
2042 <span class="n">oInput</span> <span class="o">=</span> <span class="k">New</span> <span class="n">QInputDialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2043 <span class="p">{</span>
2044 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"What is your name?"</span><span class="p">)</span>
2045 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>
2046 <span class="n">setlabeltext</span><span class="p">(</span><span class="s">"User Name"</span><span class="p">)</span>
2047 <span class="n">settextvalue</span><span class="p">(</span><span class="s">"Mahmoud"</span><span class="p">)</span>
2048 <span class="n">lcheck</span> <span class="o">=</span> <span class="n">exec</span><span class="p">()</span>
2049 <span class="k">if</span> <span class="n">lCheck</span> <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="n">oInput</span><span class="p">.</span><span class="n">textvalue</span><span class="p">())</span> <span class="k">ok</span>
2050 <span class="p">}</span>
2054 <img alt="QInputDialog" src="_images/ringqt_shot41.jpg" />
2056 <div class="section" id="index-45">
2057 <span id="id15"></span><h2>ダイアログ関数<a class="headerlink" href="#index-45" title="このヘッドラインへのパーマリンク">¶</a></h2>
2059 <div class="highlight-none"><div class="highlight"><pre>SetDialogIcon(cIconFile)
2060 MsgInfo(cTitle,cMessage)
2061 ConfirmMsg(cTitle,cMessage) --> lResult
2062 InputBox(cTitle,cMessage) --> cValue
2063 InputBoxInt(cTitle,cMessage) --> nValue
2064 InputBoxNum(cTitle,cMessage) --> nValue
2065 InputBoxPass(cTitle,cMessage) --> cValue
2069 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
2071 <span class="k">new</span> <span class="n">qApp</span>
2072 <span class="p">{</span>
2073 <span class="n">SetDialogIcon</span><span class="p">(</span><span class="s">"notepad.png"</span><span class="p">)</span>
2074 <span class="n">msginfo</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,:</span><span class="n">Welcome</span><span class="p">)</span>
2075 <span class="k">see</span> <span class="n">confirmMsg</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,</span><span class="s">"Are you sure?"</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
2076 <span class="k">see</span> <span class="n">InputBoxNum</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,</span><span class="s">"Enter Number(double) :"</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
2077 <span class="k">see</span> <span class="n">InputBox</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,</span><span class="s">"Enter Value :"</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
2078 <span class="k">see</span> <span class="n">InputBoxInt</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,</span><span class="s">"Enter Number(int)"</span><span class="p">)</span> <span class="o">+</span> <span class="n">nl</span>
2079 <span class="k">see</span> <span class="n">InputBoxPass</span><span class="p">(:</span><span class="n">Ring</span><span class="p">,</span><span class="s">"Enter Password"</span><span class="p">)</span> <span class="o">+</span><span class="n">nl</span>
2080 <span class="p">}</span>
2084 <div class="section" id="index-46">
2085 <span id="id16"></span><h2>キー入力とマウス移動イベント<a class="headerlink" href="#index-46" title="このヘッドラインへのパーマリンク">¶</a></h2>
2086 <p>この用例では、イベントフィルタによりキー入力と
2087 マウスの移動イベントを検知するための方法を学びます。</p>
2088 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2090 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
2092 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
2093 <span class="p">{</span>
2094 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Test using Event Filter!"</span><span class="p">)</span>
2095 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2096 <span class="n">setmousetracking</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
2097 <span class="n">myfilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qallevents</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2098 <span class="n">myfilter</span><span class="p">.</span><span class="n">setKeyPressEvent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
2099 <span class="n">myfilter</span><span class="p">.</span><span class="n">setMouseButtonPressevent</span><span class="p">(</span><span class="s">"pClick()"</span><span class="p">)</span>
2100 <span class="n">myfilter</span><span class="p">.</span><span class="n">setmousemoveevent</span><span class="p">(</span><span class="s">"pMove()"</span><span class="p">)</span>
2102 <span class="n">installeventfilter</span><span class="p">(</span><span class="n">myfilter</span><span class="p">)</span>
2104 <span class="n">show</span><span class="p">()</span>
2105 <span class="p">}</span>
2107 <span class="n">exec</span><span class="p">()</span>
2108 <span class="p">}</span>
2110 <span class="k">func</span> <span class="n">pWork</span>
2111 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="sc">'KeyPress! : '</span> <span class="o">+</span> <span class="n">myfilter</span><span class="p">.</span><span class="n">getkeycode</span><span class="p">())</span>
2113 <span class="k">func</span> <span class="n">pClick</span>
2114 <span class="k">new</span> <span class="n">qmessagebox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2115 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
2116 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"click event!"</span><span class="p">)</span>
2117 <span class="n">settext</span><span class="p">(</span><span class="s">"x : "</span> <span class="o">+</span> <span class="n">myfilter</span><span class="p">.</span><span class="n">getx</span><span class="p">()</span> <span class="o">+</span>
2118 <span class="s">" y : "</span> <span class="o">+</span> <span class="n">myfilter</span><span class="p">.</span><span class="n">gety</span><span class="p">()</span> <span class="o">+</span> <span class="s">" button : "</span> <span class="o">+</span>
2119 <span class="n">myfilter</span><span class="p">.</span><span class="n">getbutton</span><span class="p">()</span> <span class="p">)</span>
2120 <span class="n">show</span><span class="p">()</span>
2121 <span class="p">}</span>
2123 <span class="k">func</span> <span class="n">pMove</span>
2124 <span class="n">win1</span><span class="p">.</span><span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Mouse Move , X : "</span> <span class="o">+</span> <span class="n">myfilter</span><span class="p">.</span><span class="n">getx</span><span class="p">()</span> <span class="o">+</span>
2125 <span class="s">" Y : "</span> <span class="o">+</span> <span class="n">myfilter</span><span class="p">.</span><span class="n">gety</span><span class="p">()</span> <span class="p">)</span>
2129 <img alt="キー入力とマウス移動イベント" src="_images/ringqt_shot42.jpg" />
2131 <div class="section" id="index-47">
2132 <span id="id17"></span><h2>マウスによるオブジェクトの移動方法<a class="headerlink" href="#index-47" title="このヘッドラインへのパーマリンク">¶</a></h2>
2133 <p>ユーザがラベルを移動できる移動可能なオブジェクトをプログラムする方法を学びます。</p>
2134 <div class="highlight-ring"><div class="highlight"><pre>Load "guilib.ring"
2142 win1 = new qWidget()
2145 setWindowTitle("Move this label!")
2146 setGeometry(100,100,400,400)
2147 setstylesheet("background-color:white;")
2149 Label1 = new qLabel(Win1){
2150 setGeometry(100,100,200,50)
2151 setText("Welcome")
2152 setstylesheet("font-size: 30pt")
2153 myfilter = new qallevents(label1)
2154 myfilter.setEnterevent("pEnter()")
2155 myfilter.setLeaveevent("pLeave()")
2156 myfilter.setMouseButtonPressEvent("pPress()")
2157 myfilter.setMouseButtonReleaseEvent("pRelease()")
2158 myfilter.setMouseMoveEvent("pMove()")
2159 installeventfilter(myfilter)
2169 Label1.setStyleSheet("background-color: purple; color:white;font-size: 30pt;")
2172 Label1.setStyleSheet("background-color: white; color:black;font-size: 30pt;")
2176 nX = myfilter.getglobalx()
2177 ny = myfilter.getglobaly()
2184 nX2 = myfilter.getglobalx()
2185 ny2 = myfilter.getglobaly()
2190 move(x()+ndiffx,y()+ndiffy)
2191 setStyleSheet("background-color: Green;
2192 color:white;font-size: 30pt;")
2201 <img alt="マウスで移動できるオブジェクト" src="_images/ringqt_shot43.jpg" />
2202 <img alt="マウスで移動できるオブジェクト" src="_images/ringqt_shot44.jpg" />
2203 <img alt="マウスをで移動できるオブジェクト" src="_images/ringqt_shot45.jpg" />
2205 <div class="section" id="index-48">
2206 <span id="id18"></span><h2>GUI クラスからの継承<a class="headerlink" href="#index-48" title="このヘッドラインへのパーマリンク">¶</a></h2>
2208 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2210 <span class="k">New</span> <span class="n">MyWindow</span><span class="p">()</span>
2212 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span> <span class="n">exec</span><span class="p">()</span> <span class="p">}</span>
2214 <span class="k">class</span> <span class="n">mywindow</span> <span class="k">from</span> <span class="n">qwidget</span>
2215 <span class="k">Func</span> <span class="n">init</span>
2216 <span class="n">super</span><span class="p">.</span><span class="n">init</span><span class="p">()</span>
2217 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"First Window"</span><span class="p">)</span>
2218 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2219 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: purple;"</span><span class="p">)</span>
2220 <span class="n">settooltip</span><span class="p">(</span><span class="s">"my first window!"</span><span class="p">)</span>
2221 <span class="n">show</span><span class="p">()</span>
2225 <img alt="GUI クラスからの継承" src="_images/ringqt_shot46.jpg" />
2227 <div class="section" id="qdesktopwidget">
2228 <span id="index-49"></span><h2>QDesktopWidget クラスの用法<a class="headerlink" href="#qdesktopwidget" title="このヘッドラインへのパーマリンク">¶</a></h2>
2229 <p>この用例では、 QDesktopWidget の用法を学びます。</p>
2230 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2232 <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
2233 <span class="n">win1</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qWidget</span><span class="p">()</span>
2234 <span class="p">{</span>
2235 <span class="n">resize</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2236 <span class="n">btn1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2237 <span class="p">{</span>
2238 <span class="n">setText</span><span class="p">(</span><span class="s">"Center"</span><span class="p">)</span>
2239 <span class="n">move</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
2240 <span class="n">resize</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
2241 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"pCenter()"</span><span class="p">)</span>
2242 <span class="p">}</span>
2244 <span class="n">Show</span><span class="p">()</span>
2245 <span class="p">}</span>
2247 <span class="n">exec</span><span class="p">()</span>
2248 <span class="p">}</span>
2250 <span class="k">Func</span> <span class="n">pCenter</span>
2251 <span class="n">oDesktop</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qDesktopWidget</span><span class="p">()</span>
2252 <span class="n">oRect</span> <span class="o">=</span> <span class="n">oDesktop</span><span class="p">.</span><span class="n">screenGeometry</span><span class="p">(</span> <span class="n">oDesktop</span><span class="p">.</span><span class="n">primaryScreen</span><span class="p">()</span> <span class="p">)</span>
2253 <span class="n">win1</span><span class="p">.</span><span class="n">move</span><span class="p">((</span><span class="n">oRect</span><span class="p">.</span><span class="n">width</span><span class="p">()</span><span class="o">-</span><span class="n">win1</span><span class="p">.</span><span class="n">width</span><span class="p">())</span> <span class="o">/</span><span class="mi">2</span> <span class="p">,</span> <span class="p">(</span><span class="n">oRect</span><span class="p">.</span><span class="n">Height</span><span class="p">()</span><span class="o">-</span><span class="n">win1</span><span class="p">.</span><span class="n">Height</span><span class="p">())</span><span class="o">/</span><span class="mi">2</span> <span class="p">)</span>
2254 <span class="n">win1</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
2258 <img alt="Using QDesktopWidget クラス" src="_images/ringqt_shot47.jpg" />
2260 <div class="section" id="index-50">
2261 <span id="id19"></span><h2>テキストの回転<a class="headerlink" href="#index-50" title="このヘッドラインへのパーマリンク">¶</a></h2>
2262 <p>この用例では、タイマーでテキストを回転しています。</p>
2263 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2265 <span class="n">nAngle</span> <span class="o">=</span> <span class="mi">0</span>
2267 <span class="k">New</span> <span class="n">qapp</span> <span class="p">{</span>
2268 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span> <span class="p">{</span>
2269 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Rotate Text"</span><span class="p">)</span>
2270 <span class="n">resize</span><span class="p">(</span><span class="mi">800</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
2271 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2272 <span class="n">settext</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
2273 <span class="n">myfilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qallevents</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2274 <span class="n">myfilter</span><span class="p">.</span><span class="n">setMouseButtonPressevent</span><span class="p">(</span><span class="s">"pClick()"</span><span class="p">)</span>
2275 <span class="n">installeventfilter</span><span class="p">(</span><span class="n">myfilter</span><span class="p">)</span>
2276 <span class="p">}</span>
2277 <span class="k">new</span> <span class="n">qtimer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2278 <span class="n">setinterval</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
2279 <span class="n">settimeoutevent</span><span class="p">(</span><span class="s">"pTime()"</span><span class="p">)</span>
2280 <span class="n">start</span><span class="p">()</span>
2281 <span class="p">}</span>
2282 <span class="n">pDraw</span><span class="p">()</span>
2283 <span class="n">L1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qVBoxLayout</span><span class="p">()</span> <span class="p">{</span> <span class="n">AddWidget</span><span class="p">(</span><span class="n">Label1</span><span class="p">)</span> <span class="p">}</span> <span class="n">SetLayout</span><span class="p">(</span><span class="n">L1</span><span class="p">)</span>
2284 <span class="n">showMaximized</span><span class="p">()</span>
2285 <span class="p">}</span>
2286 <span class="n">exec</span><span class="p">()</span>
2287 <span class="p">}</span>
2289 <span class="k">Func</span> <span class="n">pDraw</span>
2290 <span class="n">p1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpicture</span><span class="p">()</span>
2291 <span class="n">color</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qcolor</span><span class="p">()</span> <span class="p">{</span>
2292 <span class="n">setrgb</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">)</span>
2293 <span class="p">}</span>
2294 <span class="n">pen</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpen</span><span class="p">()</span> <span class="p">{</span>
2295 <span class="n">setcolor</span><span class="p">(</span><span class="n">color</span><span class="p">)</span>
2296 <span class="n">setwidth</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
2297 <span class="p">}</span>
2298 <span class="n">painter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpainter</span><span class="p">()</span> <span class="p">{</span>
2299 <span class="n">begin</span><span class="p">(</span><span class="n">p1</span><span class="p">)</span>
2300 <span class="n">setpen</span><span class="p">(</span><span class="n">pen</span><span class="p">)</span>
2301 <span class="n">myfont</span> <span class="o">=</span> <span class="n">font</span><span class="p">()</span>
2302 <span class="n">myfont</span><span class="p">.</span><span class="n">setpointsize</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span>
2303 <span class="n">setfont</span><span class="p">(</span><span class="n">myfont</span><span class="p">)</span>
2304 <span class="n">rotate</span><span class="p">(</span><span class="n">nAngle</span><span class="p">)</span>
2305 <span class="n">drawtext</span><span class="p">(</span><span class="mi">350</span><span class="p">,</span><span class="mi">0</span><span class="o">*</span><span class="n">nAngle</span><span class="p">,</span><span class="s">"welcome"</span><span class="p">)</span>
2306 <span class="n">drawtext</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="o">*</span><span class="n">nAngle</span><span class="p">,</span><span class="s">"welcome"</span><span class="p">)</span>
2307 <span class="n">endpaint</span><span class="p">()</span>
2308 <span class="p">}</span>
2309 <span class="n">label1</span> <span class="p">{</span>
2310 <span class="n">setpicture</span><span class="p">(</span><span class="n">p1</span><span class="p">)</span>
2311 <span class="n">show</span><span class="p">()</span>
2312 <span class="p">}</span>
2314 <span class="k">Func</span> <span class="n">pClick</span>
2315 <span class="n">win1</span> <span class="p">{</span> <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Click Event"</span><span class="p">)</span> <span class="p">}</span>
2317 <span class="k">Func</span> <span class="n">pTime</span>
2318 <span class="n">nAngle</span><span class="o">++</span>
2319 <span class="k">if</span> <span class="n">nAngle</span> <span class="o">=</span> <span class="mi">90</span>
2320 <span class="n">nAngle</span> <span class="o">=</span> <span class="mi">10</span>
2321 <span class="k">ok</span>
2322 <span class="n">pDraw</span><span class="p">()</span>
2326 <img alt="テキスト回転の用例" src="_images/shotrotatetext.png" />
2328 <div class="section" id="index-51">
2329 <span id="id20"></span><h2>フォーカスの変更<a class="headerlink" href="#index-51" title="このヘッドラインへのパーマリンク">¶</a></h2>
2330 <p>この用例は、 ENTER キーでフォーカスを変更します。</p>
2331 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
2333 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
2334 <span class="n">win</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
2335 <span class="n">resize</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
2336 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Change Focus"</span><span class="p">)</span>
2337 <span class="n">text1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLineEdit</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
2338 <span class="n">text2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLineEdit</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
2339 <span class="n">text3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLineEdit</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
2340 <span class="n">text4</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLineEdit</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
2341 <span class="n">layout1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qVBoxLayout</span><span class="p">()</span> <span class="p">{</span>
2342 <span class="n">AddWidget</span><span class="p">(</span><span class="n">text1</span><span class="p">)</span>
2343 <span class="n">AddWidget</span><span class="p">(</span><span class="n">text2</span><span class="p">)</span>
2344 <span class="n">AddWidget</span><span class="p">(</span><span class="n">text3</span><span class="p">)</span>
2345 <span class="n">AddWidget</span><span class="p">(</span><span class="n">text4</span><span class="p">)</span>
2347 <span class="p">}</span>
2348 <span class="n">setLayout</span><span class="p">(</span><span class="n">Layout1</span><span class="p">)</span>
2349 <span class="n">aList</span> <span class="o">=</span> <span class="o">[</span><span class="n">text1</span><span class="p">,</span><span class="n">text2</span><span class="p">,</span><span class="n">text3</span><span class="p">,</span><span class="n">text4</span><span class="o">]</span>
2350 <span class="n">oFilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qallevents</span><span class="p">(</span><span class="n">win</span><span class="p">)</span>
2351 <span class="n">oFilter</span><span class="p">.</span><span class="n">setKeyPressEvent</span><span class="p">(</span><span class="s">"pWork()"</span><span class="p">)</span>
2352 <span class="n">installeventfilter</span><span class="p">(</span><span class="n">oFilter</span><span class="p">)</span>
2353 <span class="n">show</span><span class="p">()</span>
2354 <span class="p">}</span>
2355 <span class="n">exec</span><span class="p">()</span>
2356 <span class="p">}</span>
2358 <span class="k">func</span> <span class="n">pWork</span>
2359 <span class="n">nCode</span> <span class="o">=</span> <span class="n">oFilter</span><span class="p">.</span><span class="n">getkeycode</span><span class="p">()</span>
2360 <span class="k">if</span> <span class="n">nCode</span> <span class="o">=</span> <span class="mi">16777220</span> <span class="c"># ENTER キー</span>
2361 <span class="k">for</span> <span class="n">x</span><span class="o">=</span><span class="mi">1</span> <span class="k">to</span> <span class="n">len</span><span class="p">(</span><span class="n">aList</span><span class="p">)</span>
2362 <span class="k">if</span> <span class="n">aList</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">HasFocus</span><span class="p">()</span>
2363 <span class="n">t</span> <span class="o">=</span> <span class="n">x</span><span class="o">+</span><span class="mi">1</span>
2364 <span class="k">if</span> <span class="n">t</span> <span class="o">></span> <span class="n">len</span><span class="p">(</span><span class="n">aList</span><span class="p">)</span> <span class="n">t</span><span class="o">=</span><span class="mi">1</span> <span class="k">ok</span>
2365 <span class="n">aList</span><span class="o">[</span><span class="n">t</span><span class="o">]</span><span class="p">.</span><span class="n">SetFocus</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
2366 <span class="k">exit</span>
2367 <span class="k">ok</span>
2368 <span class="k">next</span>
2369 <span class="k">ok</span>
2373 <div class="section" id="index-52">
2374 <span id="id21"></span><h2>正規表現<a class="headerlink" href="#index-52" title="このヘッドラインへのパーマリンク">¶</a></h2>
2375 <p>この用例では、正規表現のクラスを使用しています。</p>
2376 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
2378 <span class="k">new</span> <span class="n">qApp</span>
2379 <span class="p">{</span>
2380 <span class="k">see</span> <span class="s">"Using Regular Expressions"</span> <span class="o">+</span> <span class="n">nl</span>
2382 <span class="n">exp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qregularexpression</span><span class="p">()</span> <span class="p">{</span>
2383 <span class="n">setPattern</span><span class="p">(</span><span class="s">"\d\d \w+"</span><span class="p">)</span>
2384 <span class="k">see</span> <span class="n">pattern</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2385 <span class="n">match</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span><span class="s">"33 one"</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
2386 <span class="k">see</span> <span class="n">match</span><span class="p">.</span><span class="n">hasmatch</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2387 <span class="n">match</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span><span class="s">"3 one"</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
2388 <span class="k">see</span> <span class="n">match</span><span class="p">.</span><span class="n">hasmatch</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2389 <span class="n">match</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span><span class="s">"welcome 11 one"</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
2390 <span class="k">see</span> <span class="n">match</span><span class="p">.</span><span class="n">hasmatch</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2391 <span class="n">matched</span> <span class="o">=</span> <span class="n">match</span><span class="p">.</span><span class="n">captured</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
2392 <span class="k">see</span> <span class="n">matched</span> <span class="o">+</span> <span class="n">nl</span>
2393 <span class="p">}</span>
2394 <span class="n">exp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qregularexpression</span><span class="p">()</span> <span class="p">{</span>
2395 <span class="n">setPattern</span><span class="p">(</span><span class="s">"^(\d\d)/(\d\d)/(\d\d\d\d)$"</span><span class="p">)</span>
2396 <span class="k">see</span> <span class="n">pattern</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2397 <span class="n">match</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span><span class="s">"08/12/1985"</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
2398 <span class="k">see</span> <span class="n">match</span><span class="p">.</span><span class="n">hasmatch</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2399 <span class="n">day</span> <span class="o">=</span> <span class="n">match</span><span class="p">.</span><span class="n">captured</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
2400 <span class="n">month</span> <span class="o">=</span> <span class="n">match</span><span class="p">.</span><span class="n">captured</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
2401 <span class="n">year</span> <span class="o">=</span> <span class="n">match</span><span class="p">.</span><span class="n">captured</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
2402 <span class="k">see</span> <span class="n">day</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span> <span class="n">month</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span> <span class="n">year</span> <span class="o">+</span> <span class="n">nl</span>
2403 <span class="k">see</span> <span class="s">"("</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedStart</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedEnd</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span> <span class="s">")"</span> <span class="o">+</span> <span class="n">nl</span>
2404 <span class="k">see</span> <span class="s">"("</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedStart</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedEnd</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span> <span class="s">")"</span> <span class="o">+</span> <span class="n">nl</span>
2405 <span class="k">see</span> <span class="s">"("</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedStart</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">match</span><span class="p">.</span><span class="n">capturedEnd</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">+</span> <span class="s">")"</span> <span class="o">+</span> <span class="n">nl</span>
2406 <span class="p">}</span>
2408 <span class="p">}</span>
2412 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Using</span> <span class="n">Regular</span> <span class="n">Expressions</span>
2413 <span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span> <span class="o">\</span><span class="n">w</span><span class="o">+</span>
2414 <span class="mi">1</span>
2415 <span class="mi">0</span>
2416 <span class="mi">1</span>
2417 <span class="mi">11</span> <span class="n">one</span>
2418 <span class="p">^(</span><span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span><span class="o">\</span><span class="n">d</span><span class="p">)</span><span class="o">$</span>
2419 <span class="mi">1</span>
2420 <span class="mi">08</span>
2421 <span class="mi">12</span>
2422 <span class="mi">1985</span>
2423 <span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
2424 <span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
2425 <span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>
2429 <div class="section" id="index-53">
2430 <span id="id22"></span><h2>シンプルなクライアントとサーバーの用例<a class="headerlink" href="#index-53" title="このヘッドラインへのパーマリンク">¶</a></h2>
2431 <p>この用例では、シンプルなクライアントとサーバーアプリケーションの作成方法を学びます。</p>
2432 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2434 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
2435 <span class="n">oClient</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Client</span> <span class="p">{</span> <span class="n">client</span><span class="p">()</span> <span class="p">}</span>
2436 <span class="n">oServer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Server</span> <span class="p">{</span> <span class="n">server</span><span class="p">()</span> <span class="p">}</span>
2437 <span class="n">exec</span><span class="p">()</span>
2438 <span class="p">}</span>
2440 <span class="k">Class</span> <span class="n">Client</span>
2442 <span class="n">win1</span> <span class="n">lineedit1</span> <span class="n">cOutput</span><span class="o">=</span><span class="s">""</span>
2443 <span class="n">oTcpSocket</span>
2445 <span class="k">func</span> <span class="n">client</span>
2447 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span>
2449 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2450 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">50</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
2451 <span class="n">settext</span><span class="p">(</span><span class="s">"connect"</span><span class="p">)</span>
2452 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"oClient.Connect()"</span><span class="p">)</span>
2453 <span class="p">}</span>
2455 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtextedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2456 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
2457 <span class="p">}</span>
2459 <span class="n">win1</span> <span class="p">{</span>
2460 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"client"</span><span class="p">)</span>
2461 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2462 <span class="n">show</span><span class="p">()</span>
2463 <span class="p">}</span>
2465 <span class="k">func</span> <span class="n">connect</span>
2466 <span class="n">cOutput</span> <span class="o">=</span> <span class="s">"Connect to host 127.0.0.1 port 9999"</span> <span class="o">+</span> <span class="n">nl</span>
2467 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2468 <span class="n">oTcpSocket</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTcpSocket</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2469 <span class="n">setconnectedevent</span><span class="p">(</span><span class="s">"oClient.pConnected()"</span><span class="p">)</span>
2470 <span class="n">setreadyreadevent</span><span class="p">(</span><span class="s">"oClient.pRead()"</span><span class="p">)</span>
2471 <span class="n">connecttohost</span><span class="p">(</span><span class="s">"127.0.0.1"</span><span class="p">,</span><span class="mi">9999</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
2472 <span class="n">waitforconnected</span><span class="p">(</span><span class="mi">5000</span><span class="p">)</span>
2473 <span class="p">}</span>
2475 <span class="k">func</span> <span class="n">pConnected</span>
2477 <span class="n">cOutput</span> <span class="o">+=</span> <span class="s">"Connected!"</span> <span class="o">+</span> <span class="n">nl</span>
2478 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2480 <span class="k">func</span> <span class="n">pRead</span>
2482 <span class="n">cOutput</span> <span class="o">+=</span> <span class="s">"Ready Read!"</span> <span class="o">+</span> <span class="n">nl</span>
2483 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2484 <span class="n">cOutput</span> <span class="o">+=</span> <span class="n">oTcpSocket</span><span class="p">.</span><span class="n">readall</span><span class="p">().</span><span class="n">data</span><span class="p">()</span> <span class="o">+</span> <span class="n">nl</span>
2485 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2487 <span class="k">Class</span> <span class="n">Server</span>
2489 <span class="n">win1</span> <span class="n">lineedit1</span>
2490 <span class="n">oTcpServer</span> <span class="n">oTcpClient</span>
2491 <span class="n">cOutput</span> <span class="o">=</span> <span class="s">""</span>
2493 <span class="k">func</span> <span class="n">server</span>
2495 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qwidget</span><span class="p">()</span>
2497 <span class="n">lineedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtextedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2498 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">300</span><span class="p">)</span>
2499 <span class="p">}</span>
2501 <span class="n">win1</span> <span class="p">{</span>
2502 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Server"</span><span class="p">)</span>
2503 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">450</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2504 <span class="n">show</span><span class="p">()</span>
2505 <span class="p">}</span>
2507 <span class="n">oTcpServer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTcpServer</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2508 <span class="n">setNewConnectionEvent</span><span class="p">(</span><span class="s">"oServer.pNewConnection()"</span><span class="p">)</span>
2509 <span class="n">oHostAddress</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qHostAddress</span><span class="p">()</span>
2510 <span class="n">oHostAddress</span><span class="p">.</span><span class="n">SetAddress</span><span class="p">(</span><span class="s">"127.0.0.1"</span><span class="p">)</span>
2511 <span class="n">listen</span><span class="p">(</span><span class="n">oHostAddress</span><span class="p">,</span><span class="mi">9999</span><span class="p">)</span>
2512 <span class="p">}</span>
2513 <span class="n">cOutput</span> <span class="o">=</span> <span class="s">"Server Started"</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span>
2514 <span class="s">"listen to port 9999"</span> <span class="o">+</span> <span class="n">nl</span>
2516 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2518 <span class="k">Func</span> <span class="n">pNewConnection</span>
2520 <span class="n">oTcpClient</span> <span class="o">=</span> <span class="n">oTcpServer</span><span class="p">.</span><span class="n">nextPendingConnection</span><span class="p">()</span>
2521 <span class="n">cOutput</span> <span class="o">+=</span> <span class="s">"Accept Connection"</span> <span class="o">+</span> <span class="n">nl</span>
2522 <span class="n">lineedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">cOutput</span><span class="p">)</span>
2523 <span class="n">oTcpClient</span> <span class="p">{</span>
2524 <span class="n">cStr</span> <span class="o">=</span><span class="s">"Hello from server to client!"</span><span class="o">+</span><span class="n">char</span><span class="p">(</span><span class="mi">13</span><span class="p">)</span><span class="o">+</span><span class="n">char</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
2525 <span class="n">write</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">len</span><span class="p">(</span><span class="n">cStr</span><span class="p">))</span>
2526 <span class="n">flush</span><span class="p">()</span>
2527 <span class="n">waitforbyteswritten</span><span class="p">(</span><span class="mi">300000</span><span class="p">)</span>
2528 <span class="n">close</span><span class="p">()</span>
2529 <span class="p">}</span>
2533 <img alt="クライアントとサーバーの用例" src="_images/ringqt_shot36.jpg" />
2535 <div class="section" id="index-54">
2536 <span id="id23"></span><h2>動的オブジェクト<a class="headerlink" href="#index-54" title="このヘッドラインへのパーマリンク">¶</a></h2>
2537 <p>実行時にオブジェクトの作成、およびウィンドウへオブジェクトを追加します。</p>
2539 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
2541 <span class="n">oFormDesigner</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FormDesigner</span> <span class="p">{</span> <span class="n">start</span><span class="p">(</span><span class="s">"oFormDesigner"</span><span class="p">)</span> <span class="p">}</span>
2543 <span class="k">Class</span> <span class="n">FormDesigner</span>
2545 <span class="n">winToolBox</span> <span class="n">winForm</span>
2547 <span class="n">aObjects</span> <span class="o">=</span> <span class="o">[]</span>
2549 <span class="k">func</span> <span class="n">start</span> <span class="n">cObjectName</span>
2551 <span class="n">oApp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qApp</span>
2553 <span class="n">winToolBox</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
2554 <span class="n">winToolBox</span><span class="p">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"ToolBox"</span><span class="p">)</span>
2555 <span class="n">winToolBox</span><span class="p">.</span><span class="n">move</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">)</span>
2556 <span class="n">winToolBox</span><span class="p">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
2558 <span class="n">btn</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">winToolBox</span><span class="p">)</span>
2559 <span class="n">btn</span><span class="p">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">300</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
2560 <span class="n">btn</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="s">"Create Button"</span><span class="p">)</span>
2561 <span class="n">btn</span><span class="p">.</span><span class="n">setClickEvent</span><span class="p">(</span><span class="n">cObjectName</span><span class="o">+</span><span class="s">".pCreateButton()"</span><span class="p">)</span>
2562 <span class="n">btn</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
2564 <span class="n">winToolBox</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
2566 <span class="n">winForm</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
2567 <span class="n">move</span><span class="p">(</span><span class="mi">400</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>
2568 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Form Designer"</span><span class="p">)</span>
2569 <span class="n">resize</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
2570 <span class="n">show</span><span class="p">()</span>
2571 <span class="p">}</span>
2573 <span class="n">oApp</span><span class="p">.</span><span class="n">exec</span><span class="p">()</span>
2576 <span class="k">func</span> <span class="n">pCreateButton</span>
2578 <span class="n">nCount</span> <span class="o">=</span> <span class="n">len</span><span class="p">(</span><span class="n">aObjects</span><span class="p">)</span>
2580 <span class="n">aObjects</span> <span class="o">+</span> <span class="k">new</span> <span class="n">MyButton</span><span class="p">(</span><span class="n">winForm</span><span class="p">)</span>
2581 <span class="p">{</span>
2582 <span class="n">nIndex</span> <span class="o">=</span> <span class="n">nCount</span> <span class="o">+</span> <span class="mi">1</span>
2583 <span class="n">setText</span><span class="p">(</span><span class="s">"Button"</span><span class="o">+</span> <span class="n">nIndex</span><span class="p">)</span>
2584 <span class="n">Move</span><span class="p">(</span><span class="mi">30</span><span class="o">*</span><span class="n">nIndex</span><span class="p">,</span><span class="mi">30</span><span class="o">*</span><span class="n">nIndex</span><span class="p">)</span>
2585 <span class="n">resize</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
2586 <span class="n">show</span><span class="p">()</span>
2587 <span class="p">}</span>
2590 <span class="k">Class</span> <span class="n">MyButton</span> <span class="k">from</span> <span class="n">qPushButton</span>
2591 <span class="n">nIndex</span> <span class="o">=</span> <span class="mi">0</span>
2595 <div class="section" id="weight-history">
2596 <span id="index-55"></span><h2>Weight History アプリケーション<a class="headerlink" href="#weight-history" title="このヘッドラインへのパーマリンク">¶</a></h2>
2597 <p>このサンプルは体重の記録で役に立ちます (日付、時刻と体重)。</p>
2598 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2600 <span class="n">MyApp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qApp</span>
2601 <span class="p">{</span>
2602 <span class="o">$</span><span class="n">ApplicationObject</span> <span class="o">=</span> <span class="s">"oApp"</span> <span class="c"># イベントを呼び出すときに使用します。</span>
2603 <span class="n">oApp</span> <span class="o">=</span> <span class="k">new</span> <span class="n">App</span>
2604 <span class="n">exec</span><span class="p">()</span>
2605 <span class="n">oApp</span><span class="p">.</span><span class="n">CloseDatabase</span><span class="p">()</span>
2606 <span class="p">}</span>
2608 <span class="k">class</span> <span class="n">App</span>
2610 <span class="n">cDir</span> <span class="o">=</span> <span class="n">currentdir</span><span class="p">()</span> <span class="o">+</span> <span class="s">"/"</span>
2611 <span class="n">oCon</span>
2612 <span class="n">aIDs</span> <span class="o">=</span> <span class="o">[]</span>
2614 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
2615 <span class="p">{</span>
2616 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Weight History"</span><span class="p">)</span>
2617 <span class="n">resize</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span><span class="mi">600</span><span class="p">)</span>
2618 <span class="n">layoutButtons</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qhboxlayout</span><span class="p">()</span>
2619 <span class="p">{</span>
2620 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span> <span class="n">setText</span><span class="p">(</span><span class="s">"Weight"</span><span class="p">)</span> <span class="p">}</span>
2621 <span class="n">text1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
2622 <span class="n">btnAdd</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2623 <span class="n">setText</span><span class="p">(</span><span class="s">"Add"</span><span class="p">)</span>
2624 <span class="n">setClickEvent</span><span class="p">(</span><span class="o">$</span><span class="n">ApplicationObject</span><span class="o">+</span><span class="s">".AddWeight()"</span><span class="p">)</span>
2625 <span class="p">}</span>
2626 <span class="n">btnDelete</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2627 <span class="n">setText</span><span class="p">(</span><span class="s">"Delete"</span><span class="p">)</span>
2628 <span class="n">setClickEvent</span><span class="p">(</span><span class="o">$</span><span class="n">ApplicationObject</span><span class="o">+</span><span class="s">".Deleteweight()"</span><span class="p">)</span>
2629 <span class="p">}</span>
2630 <span class="n">addwidget</span><span class="p">(</span><span class="n">label1</span><span class="p">)</span>
2631 <span class="n">addwidget</span><span class="p">(</span><span class="n">text1</span><span class="p">)</span>
2632 <span class="n">addwidget</span><span class="p">(</span><span class="n">btnAdd</span><span class="p">)</span>
2633 <span class="n">addwidget</span><span class="p">(</span><span class="n">btnDelete</span><span class="p">)</span>
2634 <span class="p">}</span>
2635 <span class="n">layoutData</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qhboxlayout</span><span class="p">()</span>
2636 <span class="p">{</span>
2637 <span class="n">Table1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTableWidget</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2638 <span class="n">setrowcount</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
2639 <span class="n">setcolumncount</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
2640 <span class="n">setselectionbehavior</span><span class="p">(</span><span class="n">QAbstractItemView_SelectRows</span><span class="p">)</span>
2641 <span class="n">setHorizontalHeaderItem</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="k">new</span> <span class="n">QTableWidgetItem</span><span class="p">(</span><span class="s">"Date"</span><span class="p">))</span>
2642 <span class="n">setHorizontalHeaderItem</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="k">new</span> <span class="n">QTableWidgetItem</span><span class="p">(</span><span class="s">"Time"</span><span class="p">))</span>
2643 <span class="n">setHorizontalHeaderItem</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="k">new</span> <span class="n">QTableWidgetItem</span><span class="p">(</span><span class="s">"Weight"</span><span class="p">))</span>
2644 <span class="n">setitemChangedEvent</span><span class="p">(</span><span class="o">$</span><span class="n">ApplicationObject</span><span class="o">+</span><span class="s">".ItemChanged()"</span><span class="p">)</span>
2645 <span class="n">setAlternatingRowColors</span><span class="p">(</span><span class="kp">true</span><span class="p">)</span>
2646 <span class="n">horizontalHeader</span><span class="p">().</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"color: blue"</span><span class="p">)</span>
2647 <span class="n">verticalHeader</span><span class="p">().</span><span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"color: red"</span><span class="p">)</span>
2648 <span class="p">}</span>
2649 <span class="n">addWidget</span><span class="p">(</span><span class="n">Table1</span><span class="p">)</span>
2650 <span class="p">}</span>
2651 <span class="n">layoutClose</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qhboxlayout</span><span class="p">()</span>
2652 <span class="p">{</span>
2653 <span class="n">btnclose</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2654 <span class="n">setText</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
2655 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"MyApp.Quit()"</span><span class="p">)</span>
2656 <span class="p">}</span>
2657 <span class="n">addwidget</span><span class="p">(</span><span class="n">btnClose</span><span class="p">)</span>
2658 <span class="p">}</span>
2659 <span class="n">layoutMain</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvboxlayout</span><span class="p">()</span>
2660 <span class="p">{</span>
2661 <span class="n">addlayout</span><span class="p">(</span><span class="n">layoutButtons</span><span class="p">)</span>
2662 <span class="n">addLayout</span><span class="p">(</span><span class="n">LayoutData</span><span class="p">)</span>
2663 <span class="n">addLayout</span><span class="p">(</span><span class="n">layoutClose</span><span class="p">)</span>
2664 <span class="p">}</span>
2665 <span class="n">setlayout</span><span class="p">(</span><span class="n">layoutMain</span><span class="p">)</span>
2666 <span class="n">self</span><span class="p">.</span><span class="n">OpenDatabase</span><span class="p">()</span>
2667 <span class="n">self</span><span class="p">.</span><span class="n">ShowRecords</span><span class="p">()</span>
2668 <span class="n">show</span><span class="p">()</span>
2669 <span class="p">}</span>
2671 <span class="k">Func</span> <span class="n">OpenDatabase</span>
2672 <span class="n">lCreate</span> <span class="o">=</span> <span class="kp">False</span>
2673 <span class="k">if</span> <span class="ow">not</span> <span class="n">fexists</span><span class="p">(</span><span class="n">cDir</span> <span class="o">+</span> <span class="s">"weighthistory.db"</span><span class="p">)</span>
2674 <span class="n">lCreate</span> <span class="o">=</span> <span class="kp">True</span>
2675 <span class="k">ok</span>
2676 <span class="k">new</span> <span class="n">QSqlDatabase</span><span class="p">()</span> <span class="p">{</span>
2677 <span class="n">this</span><span class="p">.</span><span class="n">oCon</span> <span class="o">=</span> <span class="n">addDatabase</span><span class="p">(</span><span class="s">"QSQLITE"</span><span class="p">)</span> <span class="p">{</span>
2678 <span class="n">setDatabaseName</span><span class="p">(</span><span class="s">"weighthistory.db"</span><span class="p">)</span>
2679 <span class="n">Open</span><span class="p">()</span>
2680 <span class="p">}</span>
2681 <span class="p">}</span>
2682 <span class="k">if</span> <span class="n">lCreate</span>
2683 <span class="k">new</span> <span class="n">QSqlQuery</span><span class="p">(</span> <span class="p">)</span> <span class="p">{</span>
2684 <span class="n">exec</span><span class="p">(</span><span class="s">"create table weighthistory (id integer primary key,"</span><span class="o">+</span>
2685 <span class="s">" f_date varchar(10),"</span><span class="o">+</span>
2686 <span class="s">" f_time varchar(8), f_weight varchar(8) );"</span><span class="p">)</span>
2687 <span class="n">delete</span><span class="p">()</span>
2688 <span class="p">}</span>
2689 <span class="k">ok</span>
2692 <span class="k">Func</span> <span class="n">CloseDatabase</span>
2693 <span class="n">oCon</span><span class="p">.</span><span class="n">Close</span><span class="p">()</span>
2695 <span class="k">Func</span> <span class="n">AddWeight</span>
2696 <span class="n">cWeight</span> <span class="o">=</span> <span class="n">text1</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
2697 <span class="n">AddRecord</span><span class="p">(</span><span class="n">cWeight</span><span class="p">)</span>
2699 <span class="k">Func</span> <span class="n">DeleteWeight</span>
2700 <span class="n">Table1</span> <span class="p">{</span>
2701 <span class="n">nRow</span> <span class="o">=</span> <span class="n">CurrentRow</span><span class="p">()</span>
2702 <span class="k">if</span> <span class="n">nRow</span> <span class="o">>=</span> <span class="mi">0</span>
2703 <span class="n">nID</span> <span class="o">=</span> <span class="n">this</span><span class="p">.</span><span class="n">aIDs</span><span class="o">[</span><span class="n">nROW</span><span class="o">+</span><span class="mi">1</span><span class="o">]</span>
2704 <span class="k">new</span> <span class="n">QSqlQuery</span><span class="p">(</span> <span class="p">)</span> <span class="p">{</span>
2705 <span class="n">exec</span><span class="p">(</span><span class="s">"delete from weighthistory where id = "</span> <span class="o">+</span> <span class="n">nID</span> <span class="p">)</span>
2706 <span class="p">}</span>
2707 <span class="n">Del</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">aIDs</span><span class="p">,</span><span class="n">nRow</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
2708 <span class="n">removerow</span><span class="p">(</span><span class="n">nRow</span><span class="p">)</span>
2709 <span class="n">selectrow</span><span class="p">(</span><span class="n">nRow</span><span class="p">)</span>
2710 <span class="k">ok</span>
2711 <span class="p">}</span>
2714 <span class="k">Func</span> <span class="n">AddRecord</span> <span class="n">cWeight</span>
2715 <span class="k">new</span> <span class="n">QSqlQuery</span><span class="p">(</span> <span class="p">)</span> <span class="p">{</span>
2716 <span class="n">cStr</span> <span class="o">=</span> <span class="s">"insert into weighthistory (f_date,f_time,f_weight) values"</span><span class="o">+</span>
2717 <span class="s">" ('%f1','%f2','%f3')"</span>
2718 <span class="n">cDate</span> <span class="o">=</span> <span class="n">Date</span><span class="p">()</span>
2719 <span class="n">cTime</span> <span class="o">=</span> <span class="n">Time</span><span class="p">()</span>
2720 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f1"</span><span class="p">,</span><span class="n">cDate</span><span class="p">)</span>
2721 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f2"</span><span class="p">,</span><span class="n">cTime</span><span class="p">)</span>
2722 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f3"</span><span class="p">,</span><span class="n">cWeight</span><span class="p">)</span>
2723 <span class="n">exec</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span>
2724 <span class="n">delete</span><span class="p">()</span>
2725 <span class="p">}</span>
2726 <span class="n">ShowRecords</span><span class="p">()</span>
2727 <span class="n">Table1</span><span class="p">.</span><span class="n">selectrow</span><span class="p">(</span><span class="n">table1</span><span class="p">.</span><span class="n">rowcount</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
2730 <span class="k">Func</span> <span class="n">ShowRecords</span>
2731 <span class="n">table1</span><span class="p">.</span><span class="n">setitemChangedEvent</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
2732 <span class="n">aIDs</span> <span class="o">=</span> <span class="o">[]</span>
2733 <span class="n">query</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QSqlQuery</span><span class="p">()</span> <span class="p">{</span>
2734 <span class="n">exec</span><span class="p">(</span><span class="s">"select * from weighthistory"</span><span class="p">)</span>
2735 <span class="n">nRows</span> <span class="o">=</span> <span class="mi">0</span>
2736 <span class="n">this</span><span class="p">.</span><span class="n">Table1</span><span class="p">.</span><span class="n">setrowcount</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
2737 <span class="k">while</span> <span class="n">movenext</span><span class="p">()</span>
2738 <span class="n">this</span><span class="p">.</span><span class="n">table1</span> <span class="p">{</span>
2739 <span class="n">insertRow</span><span class="p">(</span><span class="n">nRows</span><span class="p">)</span>
2740 <span class="n">this</span><span class="p">.</span><span class="n">aIDs</span> <span class="o">+</span> <span class="n">query</span><span class="p">.</span><span class="n">value</span><span class="p">(</span><span class="mi">0</span><span class="p">).</span><span class="n">tostring</span><span class="p">()</span>
2741 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">3</span>
2742 <span class="n">cStr</span> <span class="o">=</span> <span class="n">query</span><span class="p">.</span><span class="n">value</span><span class="p">(</span><span class="n">x</span><span class="p">).</span><span class="n">tostring</span><span class="p">()</span>
2743 <span class="n">item</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTableWidgetItem</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span>
2744 <span class="n">setItem</span><span class="p">(</span><span class="n">nRows</span><span class="p">,</span><span class="n">x</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">item</span><span class="p">)</span>
2745 <span class="k">next</span>
2746 <span class="p">}</span>
2747 <span class="n">nRows</span><span class="o">++</span>
2748 <span class="k">end</span>
2749 <span class="n">delete</span><span class="p">()</span>
2750 <span class="p">}</span>
2751 <span class="n">table1</span><span class="p">.</span><span class="n">setitemChangedEvent</span><span class="p">(</span><span class="o">$</span><span class="n">ApplicationObject</span><span class="o">+</span><span class="s">".ItemChanged()"</span><span class="p">)</span>
2753 <span class="k">Func</span> <span class="n">ItemChanged</span>
2754 <span class="n">nRow</span> <span class="o">=</span> <span class="n">table1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">()</span>
2755 <span class="k">if</span> <span class="n">nRow</span> <span class="o">>=</span> <span class="mi">0</span>
2756 <span class="n">myitem</span> <span class="o">=</span> <span class="n">Table1</span><span class="p">.</span><span class="n">item</span><span class="p">(</span><span class="n">table1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">(),</span><span class="mi">0</span><span class="p">)</span>
2757 <span class="n">cDate</span> <span class="o">=</span> <span class="n">myitem</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
2758 <span class="n">myitem</span> <span class="o">=</span> <span class="n">Table1</span><span class="p">.</span><span class="n">item</span><span class="p">(</span><span class="n">table1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">(),</span><span class="mi">1</span><span class="p">)</span>
2759 <span class="n">cTime</span> <span class="o">=</span> <span class="n">myitem</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
2760 <span class="n">myitem</span> <span class="o">=</span> <span class="n">Table1</span><span class="p">.</span><span class="n">item</span><span class="p">(</span><span class="n">table1</span><span class="p">.</span><span class="n">currentrow</span><span class="p">(),</span><span class="mi">2</span><span class="p">)</span>
2761 <span class="n">cWeight</span> <span class="o">=</span> <span class="n">myitem</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
2762 <span class="k">new</span> <span class="n">QSqlQuery</span><span class="p">(</span> <span class="p">)</span> <span class="p">{</span>
2763 <span class="n">cStr</span> <span class="o">=</span> <span class="s">"update weighthistory set f_date ='%f1' , f_time = '%f2' , "</span><span class="o">+</span>
2764 <span class="s">"f_weight ='%f3' where id = "</span> <span class="o">+</span> <span class="n">this</span><span class="p">.</span><span class="n">aIDs</span><span class="o">[</span><span class="n">nROW</span><span class="o">+</span><span class="mi">1</span><span class="o">]</span>
2765 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f1"</span><span class="p">,</span><span class="n">cDate</span><span class="p">)</span>
2766 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f2"</span><span class="p">,</span><span class="n">cTime</span><span class="p">)</span>
2767 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="s">"%f3"</span><span class="p">,</span><span class="n">cWeight</span><span class="p">)</span>
2768 <span class="n">exec</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span>
2769 <span class="n">delete</span><span class="p">()</span>
2770 <span class="p">}</span>
2771 <span class="k">ok</span>
2774 <p>このスクリーンショットはアプリケーション実行中のものです。</p>
2775 <img alt="Weight History アプリケーション" src="_images/weighthistory_app.png" />
2777 <div class="section" id="notepad">
2778 <span id="index-56"></span><h2>Notepad アプリケーション<a class="headerlink" href="#notepad" title="このヘッドラインへのパーマリンク">¶</a></h2>
2779 <p>この用例では、 RingQt を使用してシンプルな Notepad を開発したものです。</p>
2780 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
2782 <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="s">""</span>
2783 <span class="n">aTextColor</span> <span class="o">=</span> <span class="o">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="o">]</span>
2784 <span class="n">aBackColor</span> <span class="o">=</span> <span class="o">[</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="p">,</span><span class="mi">255</span><span class="o">]</span>
2785 <span class="n">cFont</span> <span class="o">=</span> <span class="s">"MS Shell Dlg 2,14,-1,5,50,0,0,0,0,0"</span>
2786 <span class="n">cWebsite</span> <span class="o">=</span> <span class="s">"http://www.google.com"</span>
2788 <span class="n">oSearch</span> <span class="o">=</span> <span class="kp">NULL</span>
2789 <span class="n">oSearchValue</span> <span class="o">=</span> <span class="kp">NULL</span>
2790 <span class="n">oSearchCase</span> <span class="o">=</span> <span class="kp">NULL</span>
2791 <span class="n">oSearchFilter</span> <span class="o">=</span> <span class="kp">NULL</span>
2792 <span class="n">oReplaceValue</span> <span class="o">=</span> <span class="kp">NULL</span>
2794 <span class="n">lAskToSave</span> <span class="o">=</span> <span class="kp">false</span>
2796 <span class="n">MyApp</span> <span class="o">=</span> <span class="k">New</span> <span class="n">qApp</span> <span class="p">{</span>
2797 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qMainWindow</span><span class="p">()</span> <span class="p">{</span>
2799 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Ring Notepad"</span><span class="p">)</span>
2800 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
2801 <span class="n">aBtns</span> <span class="o">=</span> <span class="o">[</span>
2802 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2803 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/new.png"</span><span class="p">)</span>
2804 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pNew()"</span><span class="p">)</span>
2805 <span class="n">settooltip</span><span class="p">(</span><span class="s">"New File"</span><span class="p">)</span>
2806 <span class="p">}</span> <span class="p">,</span>
2807 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2808 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/open.png"</span><span class="p">)</span>
2809 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pOpen()"</span><span class="p">)</span>
2810 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Open File"</span><span class="p">)</span>
2811 <span class="p">}</span> <span class="p">,</span>
2812 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2813 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/save.png"</span><span class="p">)</span>
2814 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSave()"</span><span class="p">)</span>
2815 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Save"</span><span class="p">)</span>
2816 <span class="p">}</span> <span class="p">,</span>
2817 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2818 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/saveas.png"</span><span class="p">)</span>
2819 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSaveAs()"</span><span class="p">)</span>
2820 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Save As"</span><span class="p">)</span>
2821 <span class="p">}</span> <span class="p">,</span>
2822 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2823 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/cut.png"</span><span class="p">)</span>
2824 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pCut()"</span><span class="p">)</span>
2825 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Cut"</span><span class="p">)</span>
2826 <span class="p">}</span> <span class="p">,</span>
2827 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2828 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/copy.png"</span><span class="p">)</span>
2829 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pCopy()"</span><span class="p">)</span>
2830 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Copy"</span><span class="p">)</span>
2831 <span class="p">}</span> <span class="p">,</span>
2832 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2833 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/paste.png"</span><span class="p">)</span>
2834 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pPaste()"</span><span class="p">)</span>
2835 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Paste"</span><span class="p">)</span>
2836 <span class="p">}</span> <span class="p">,</span>
2837 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2838 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/font.png"</span><span class="p">)</span>
2839 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pFont()"</span><span class="p">)</span>
2840 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Font"</span><span class="p">)</span>
2841 <span class="p">}</span> <span class="p">,</span>
2842 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2843 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/colors.jpg"</span><span class="p">)</span>
2844 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pColor()"</span><span class="p">)</span>
2845 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Text Color"</span><span class="p">)</span>
2846 <span class="p">}</span> <span class="p">,</span>
2847 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2848 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/search.png"</span><span class="p">)</span>
2849 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pFind()"</span><span class="p">)</span>
2850 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Find and Replace"</span><span class="p">)</span>
2851 <span class="p">}</span> <span class="p">,</span>
2852 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2853 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/print.png"</span><span class="p">)</span>
2854 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pPrint()"</span><span class="p">)</span>
2855 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Print"</span><span class="p">)</span>
2856 <span class="p">}</span> <span class="p">,</span>
2857 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2858 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/debug.png"</span><span class="p">)</span>
2859 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pDebug()"</span><span class="p">)</span>
2860 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Debug (Run then wait!)"</span><span class="p">)</span>
2861 <span class="p">}</span> <span class="p">,</span>
2862 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2863 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/run.png"</span><span class="p">)</span>
2864 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pRun()"</span><span class="p">)</span>
2865 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Run the program"</span><span class="p">)</span>
2866 <span class="p">}</span> <span class="p">,</span>
2867 <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2868 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/close.png"</span><span class="p">)</span>
2869 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pQuit()"</span><span class="p">)</span>
2870 <span class="n">settooltip</span><span class="p">(</span><span class="s">"Quit"</span><span class="p">)</span>
2871 <span class="p">}</span>
2872 <span class="o">]</span>
2874 <span class="n">tool1</span> <span class="o">=</span> <span class="n">addtoolbar</span><span class="p">(</span><span class="s">"files"</span><span class="p">)</span> <span class="p">{</span>
2875 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">aBtns</span> <span class="n">addwidget</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="n">addseparator</span><span class="p">()</span> <span class="k">next</span>
2876 <span class="p">}</span>
2878 <span class="n">menu1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qmenubar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2879 <span class="n">sub1</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"File"</span><span class="p">)</span>
2880 <span class="n">sub2</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Edit"</span><span class="p">)</span>
2881 <span class="n">sub3</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"View"</span><span class="p">)</span>
2882 <span class="n">sub4</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Help"</span><span class="p">)</span>
2883 <span class="n">sub1</span> <span class="p">{</span>
2884 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2885 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+n"</span><span class="p">))</span>
2886 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/new.png"</span><span class="p">)</span>
2887 <span class="n">settext</span><span class="p">(</span><span class="s">"New"</span><span class="p">)</span>
2888 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pNew()"</span><span class="p">)</span>
2889 <span class="p">}</span>
2890 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2891 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2892 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+o"</span><span class="p">))</span>
2893 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/open.png"</span><span class="p">)</span>
2894 <span class="n">settext</span><span class="p">(</span><span class="s">"Open"</span><span class="p">)</span>
2895 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pOpen()"</span><span class="p">)</span>
2896 <span class="p">}</span>
2897 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2898 <span class="n">addseparator</span><span class="p">()</span>
2899 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2900 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+s"</span><span class="p">))</span>
2901 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/save.png"</span><span class="p">)</span>
2902 <span class="n">settext</span><span class="p">(</span><span class="s">"Save"</span><span class="p">)</span>
2903 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSave()"</span><span class="p">)</span>
2904 <span class="p">}</span>
2905 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2906 <span class="n">addseparator</span><span class="p">()</span>
2907 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2908 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+e"</span><span class="p">))</span>
2909 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/saveas.png"</span><span class="p">)</span>
2910 <span class="n">settext</span><span class="p">(</span><span class="s">"Save As"</span><span class="p">)</span>
2911 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSaveAs()"</span><span class="p">)</span>
2912 <span class="p">}</span>
2913 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2914 <span class="n">addseparator</span><span class="p">()</span>
2915 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2916 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+p"</span><span class="p">))</span>
2917 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/print.png"</span><span class="p">)</span>
2918 <span class="n">settext</span><span class="p">(</span><span class="s">"Print to PDF"</span><span class="p">)</span>
2919 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pPrint()"</span><span class="p">)</span>
2920 <span class="p">}</span>
2921 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2922 <span class="n">addseparator</span><span class="p">()</span>
2923 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2924 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+d"</span><span class="p">))</span>
2925 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/debug.png"</span><span class="p">)</span>
2926 <span class="n">settext</span><span class="p">(</span><span class="s">"Debug (Run then wait!)"</span><span class="p">)</span>
2927 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pDebug()"</span><span class="p">)</span>
2928 <span class="p">}</span>
2929 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2930 <span class="n">addseparator</span><span class="p">()</span>
2931 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2932 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+r"</span><span class="p">))</span>
2933 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/run.png"</span><span class="p">)</span>
2934 <span class="n">settext</span><span class="p">(</span><span class="s">"Run"</span><span class="p">)</span>
2935 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pRun()"</span><span class="p">)</span>
2936 <span class="p">}</span>
2937 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2938 <span class="n">addseparator</span><span class="p">()</span>
2939 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2940 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+F5"</span><span class="p">))</span>
2941 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/run.png"</span><span class="p">)</span>
2942 <span class="n">settext</span><span class="p">(</span><span class="s">"Run GUI Application (No Console)"</span><span class="p">)</span>
2943 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pRunNoConsole()"</span><span class="p">)</span>
2944 <span class="p">}</span>
2945 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2946 <span class="n">addseparator</span><span class="p">()</span>
2947 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qaction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2948 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+q"</span><span class="p">))</span>
2949 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/close.png"</span><span class="p">)</span>
2950 <span class="n">settext</span><span class="p">(</span><span class="s">"Exit"</span><span class="p">)</span>
2951 <span class="n">setstatustip</span><span class="p">(</span><span class="s">"Exit"</span><span class="p">)</span>
2952 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pQuit()"</span><span class="p">)</span>
2953 <span class="p">}</span>
2954 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2955 <span class="p">}</span>
2956 <span class="n">sub2</span> <span class="p">{</span>
2957 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2958 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+x"</span><span class="p">))</span>
2959 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/cut.png"</span><span class="p">)</span>
2960 <span class="n">settext</span><span class="p">(</span><span class="s">"Cut"</span><span class="p">)</span>
2961 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pCut()"</span><span class="p">)</span>
2962 <span class="p">}</span>
2963 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2964 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2965 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+c"</span><span class="p">))</span>
2966 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/copy.png"</span><span class="p">)</span>
2967 <span class="n">settext</span><span class="p">(</span><span class="s">"Copy"</span><span class="p">)</span>
2968 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pCopy()"</span><span class="p">)</span>
2969 <span class="p">}</span>
2970 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2971 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2972 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+v"</span><span class="p">))</span>
2973 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/paste.png"</span><span class="p">)</span>
2974 <span class="n">settext</span><span class="p">(</span><span class="s">"Paste"</span><span class="p">)</span>
2975 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pPaste()"</span><span class="p">)</span>
2976 <span class="p">}</span>
2977 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2978 <span class="n">addseparator</span><span class="p">()</span>
2979 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2980 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+i"</span><span class="p">))</span>
2981 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/font.png"</span><span class="p">)</span>
2982 <span class="n">settext</span><span class="p">(</span><span class="s">"Font"</span><span class="p">)</span>
2983 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pFont()"</span><span class="p">)</span>
2984 <span class="p">}</span>
2985 <span class="n">addseparator</span><span class="p">()</span>
2986 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2987 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2988 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+t"</span><span class="p">))</span>
2989 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/colors.jpg"</span><span class="p">)</span>
2990 <span class="n">settext</span><span class="p">(</span><span class="s">"Text Color"</span><span class="p">)</span>
2991 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pColor()"</span><span class="p">)</span>
2992 <span class="p">}</span>
2993 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
2994 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
2995 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+b"</span><span class="p">))</span>
2996 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/colors.jpg"</span><span class="p">)</span>
2997 <span class="n">settext</span><span class="p">(</span><span class="s">"Back Color"</span><span class="p">)</span>
2998 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pColor2()"</span><span class="p">)</span>
2999 <span class="p">}</span>
3000 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3001 <span class="n">addseparator</span><span class="p">()</span>
3002 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3003 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+g"</span><span class="p">))</span>
3004 <span class="n">settext</span><span class="p">(</span><span class="s">"Go to line"</span><span class="p">)</span>
3005 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pGoto()"</span><span class="p">)</span>
3006 <span class="p">}</span>
3007 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3008 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3009 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+f"</span><span class="p">))</span>
3010 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/search.png"</span><span class="p">)</span>
3011 <span class="n">settext</span><span class="p">(</span><span class="s">"Find and Replace"</span><span class="p">)</span>
3012 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pFind()"</span><span class="p">)</span>
3013 <span class="p">}</span>
3014 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3015 <span class="p">}</span>
3016 <span class="n">sub3</span> <span class="p">{</span>
3017 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3018 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+p"</span><span class="p">))</span>
3019 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/project.png"</span><span class="p">)</span>
3020 <span class="n">settext</span><span class="p">(</span><span class="s">"Project Files"</span><span class="p">)</span>
3021 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pProject()"</span><span class="p">)</span>
3022 <span class="p">}</span>
3023 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3024 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3025 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+u"</span><span class="p">))</span>
3026 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/source.png"</span><span class="p">)</span>
3027 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSourceCode()"</span><span class="p">)</span>
3028 <span class="n">settext</span><span class="p">(</span><span class="s">"Source Code"</span><span class="p">)</span>
3029 <span class="p">}</span>
3030 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3031 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3032 <span class="n">setShortcut</span><span class="p">(</span><span class="k">new</span> <span class="n">QKeySequence</span><span class="p">(</span><span class="s">"Ctrl+w"</span><span class="p">))</span>
3033 <span class="n">setbtnimage</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/richtext.png"</span><span class="p">)</span>
3034 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pWebBrowser()"</span><span class="p">)</span>
3035 <span class="n">settext</span><span class="p">(</span><span class="s">"Web Browser"</span><span class="p">)</span>
3036 <span class="p">}</span>
3037 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3038 <span class="p">}</span>
3039 <span class="n">sub4</span> <span class="p">{</span>
3040 <span class="n">sub5</span> <span class="o">=</span> <span class="n">addmenu</span><span class="p">(</span><span class="s">"Development Tools"</span><span class="p">)</span>
3041 <span class="n">sub5</span> <span class="p">{</span>
3043 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3044 <span class="n">settext</span><span class="p">(</span><span class="s">"Programming Language"</span><span class="p">)</span>
3045 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pLang()"</span><span class="p">)</span>
3046 <span class="p">}</span>
3047 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3048 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3049 <span class="n">settext</span><span class="p">(</span><span class="s">"GUI Library"</span><span class="p">)</span>
3050 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pGUI()"</span><span class="p">)</span>
3051 <span class="p">}</span>
3052 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3053 <span class="p">}</span>
3054 <span class="n">addseparator</span><span class="p">()</span>
3055 <span class="n">oAction</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qAction</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3056 <span class="n">settext</span><span class="p">(</span><span class="s">"About"</span><span class="p">)</span>
3057 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pAbout()"</span><span class="p">)</span>
3058 <span class="p">}</span>
3059 <span class="n">addaction</span><span class="p">(</span><span class="n">oAction</span><span class="p">)</span>
3060 <span class="p">}</span>
3061 <span class="p">}</span>
3063 <span class="n">setmenubar</span><span class="p">(</span><span class="n">menu1</span><span class="p">)</span>
3065 <span class="n">status1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qstatusbar</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3066 <span class="n">showmessage</span><span class="p">(</span><span class="s">"Ready!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3067 <span class="p">}</span>
3069 <span class="n">setstatusbar</span><span class="p">(</span><span class="n">status1</span><span class="p">)</span>
3071 <span class="n">tree1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtreeview</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3072 <span class="n">setclickedevent</span><span class="p">(</span><span class="s">"pChangeFile()"</span><span class="p">)</span>
3073 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">00</span><span class="p">,</span><span class="mi">00</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">400</span><span class="p">)</span>
3074 <span class="n">oDir</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QDir</span><span class="p">()</span>
3075 <span class="n">ofile</span> <span class="o">=</span> <span class="k">new</span> <span class="n">QFileSystemModel</span><span class="p">()</span> <span class="p">{</span>
3076 <span class="n">setrootpath</span><span class="p">(</span><span class="n">oDir</span><span class="p">.</span><span class="n">currentpath</span><span class="p">())</span>
3077 <span class="n">myfiles</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qstringlist</span><span class="p">()</span>
3078 <span class="n">myfiles</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="s">"*.ring"</span><span class="p">)</span>
3079 <span class="n">myfiles</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="s">"*.rh"</span><span class="p">)</span>
3080 <span class="n">setnamefilters</span><span class="p">(</span><span class="n">myfiles</span><span class="p">)</span>
3081 <span class="n">setNameFilterDisables</span><span class="p">(</span><span class="kp">false</span><span class="p">)</span>
3082 <span class="p">}</span>
3083 <span class="n">setmodel</span><span class="p">(</span><span class="n">ofile</span><span class="p">)</span>
3084 <span class="n">myindex</span> <span class="o">=</span> <span class="n">ofile</span><span class="p">.</span><span class="n">index</span><span class="p">(</span><span class="n">oDir</span><span class="p">.</span><span class="n">currentpath</span><span class="p">(),</span><span class="mi">0</span><span class="p">)</span>
3085 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="n">ofile</span><span class="p">.</span><span class="n">columncount</span><span class="p">()</span>
3086 <span class="n">hidecolumn</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
3087 <span class="k">next</span>
3088 <span class="n">setcurrentindex</span><span class="p">(</span><span class="n">myindex</span><span class="p">)</span>
3089 <span class="n">setexpanded</span><span class="p">(</span><span class="n">myindex</span><span class="p">,</span><span class="kp">true</span><span class="p">)</span>
3090 <span class="n">header</span><span class="p">().</span><span class="n">hide</span><span class="p">()</span>
3091 <span class="p">}</span>
3093 <span class="n">oDock1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdockwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
3094 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">00</span><span class="p">,</span><span class="mi">00</span><span class="p">,</span><span class="mi">200</span><span class="p">,</span><span class="mi">200</span><span class="p">)</span>
3095 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Project Files"</span><span class="p">)</span>
3096 <span class="n">setwidget</span><span class="p">(</span><span class="n">tree1</span><span class="p">)</span>
3097 <span class="p">}</span>
3099 <span class="n">textedit1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qtextedit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3100 <span class="n">setCursorPositionChangedevent</span><span class="p">(</span><span class="s">"pCursorPositionChanged()"</span><span class="p">)</span>
3101 <span class="n">setLineWrapMode</span><span class="p">(</span><span class="n">QTextEdit_NoWrap</span><span class="p">)</span>
3102 <span class="n">setAcceptRichText</span><span class="p">(</span><span class="kp">false</span><span class="p">)</span>
3103 <span class="n">setTextChangedEvent</span><span class="p">(</span><span class="s">"lAskToSave = true"</span><span class="p">)</span>
3104 <span class="p">}</span>
3107 <span class="n">oDock2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdockwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
3108 <span class="n">setwidget</span><span class="p">(</span><span class="n">textedit1</span><span class="p">)</span>
3109 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Source Code"</span><span class="p">)</span>
3110 <span class="p">}</span>
3112 <span class="n">oWebBrowser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
3113 <span class="n">setWindowFlags</span><span class="p">(</span><span class="n">Qt_SubWindow</span><span class="p">)</span>
3114 <span class="n">oWBLabel</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3115 <span class="n">setText</span><span class="p">(</span><span class="s">"Website: "</span><span class="p">)</span>
3116 <span class="p">}</span>
3117 <span class="n">oWBText</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qLineEdit</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3118 <span class="n">setText</span><span class="p">(</span><span class="n">cWebSite</span><span class="p">)</span>
3119 <span class="n">setReturnPressedEvent</span><span class="p">(</span><span class="s">"pWebGo()"</span><span class="p">)</span>
3120 <span class="p">}</span>
3121 <span class="n">oWBGo</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3122 <span class="n">setText</span><span class="p">(</span><span class="s">"Go"</span><span class="p">)</span>
3123 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"pWebGo()"</span><span class="p">)</span>
3124 <span class="p">}</span>
3125 <span class="n">oWBBack</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3126 <span class="n">setText</span><span class="p">(</span><span class="s">"Back"</span><span class="p">)</span>
3127 <span class="n">setClickEvent</span><span class="p">(</span><span class="s">"pWebBack()"</span><span class="p">)</span>
3128 <span class="p">}</span>
3129 <span class="n">oWBLayout1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qHBoxLayout</span><span class="p">()</span> <span class="p">{</span>
3130 <span class="n">addWidget</span><span class="p">(</span><span class="n">oWBLabel</span><span class="p">)</span>
3131 <span class="n">addWidget</span><span class="p">(</span><span class="n">oWBText</span><span class="p">)</span>
3132 <span class="n">addWidget</span><span class="p">(</span><span class="n">oWBGo</span><span class="p">)</span>
3133 <span class="n">addWidget</span><span class="p">(</span><span class="n">oWBBack</span><span class="p">)</span>
3134 <span class="p">}</span>
3135 <span class="n">oWebView</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWebView</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3136 <span class="n">loadpage</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="n">cWebSite</span><span class="p">))</span>
3137 <span class="p">}</span>
3138 <span class="n">oWBlayout2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qVBoxLayout</span><span class="p">()</span> <span class="p">{</span>
3139 <span class="n">addLayout</span><span class="p">(</span><span class="n">oWBLayout1</span><span class="p">)</span>
3140 <span class="n">addWidget</span><span class="p">(</span><span class="n">oWebView</span><span class="p">)</span>
3141 <span class="p">}</span>
3142 <span class="n">setLayout</span><span class="p">(</span><span class="n">oWBLayout2</span><span class="p">)</span>
3143 <span class="p">}</span>
3145 <span class="n">oDock3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qdockwidget</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
3146 <span class="n">setwidget</span><span class="p">(</span><span class="n">oWebBrowser</span><span class="p">)</span>
3147 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Web Browser"</span><span class="p">)</span>
3148 <span class="n">setFeatures</span><span class="p">(</span><span class="n">QDockWidget_DocWidgetClosable</span><span class="p">)</span>
3149 <span class="p">}</span>
3151 <span class="n">adddockwidget</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">oDock1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
3152 <span class="n">adddockwidget</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">oDock2</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
3153 <span class="n">adddockwidget</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">oDock3</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
3155 <span class="n">setwinicon</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"image/notepad.png"</span><span class="p">)</span>
3157 <span class="n">showmaximized</span><span class="p">()</span>
3158 <span class="p">}</span>
3159 <span class="n">RestoreSettings</span><span class="p">()</span>
3160 <span class="n">exec</span><span class="p">()</span>
3161 <span class="p">}</span>
3163 <span class="k">func</span> <span class="n">pWebGo</span>
3164 <span class="n">cWebsite</span> <span class="o">=</span> <span class="n">oWBText</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3165 <span class="n">oWebView</span><span class="p">.</span><span class="n">LoadPage</span><span class="p">(</span> <span class="k">new</span> <span class="n">qurl</span><span class="p">(</span> <span class="n">cWebSite</span> <span class="p">)</span> <span class="p">)</span>
3167 <span class="k">func</span> <span class="n">pWebBack</span>
3168 <span class="n">oWebView</span><span class="p">.</span><span class="n">Back</span><span class="p">()</span>
3170 <span class="k">func</span> <span class="n">pProject</span>
3171 <span class="n">oDock1</span><span class="p">.</span><span class="n">Show</span><span class="p">()</span>
3173 <span class="k">func</span> <span class="n">pSourceCode</span>
3174 <span class="n">oDock2</span><span class="p">.</span><span class="n">Show</span><span class="p">()</span>
3176 <span class="k">func</span> <span class="n">pWebBrowser</span>
3177 <span class="n">oDock3</span><span class="p">.</span><span class="n">Show</span><span class="p">()</span>
3179 <span class="k">func</span> <span class="n">pChangeFile</span>
3180 <span class="n">myitem</span> <span class="o">=</span> <span class="n">tree1</span><span class="p">.</span><span class="n">currentindex</span><span class="p">()</span>
3181 <span class="k">if</span> <span class="n">ofile</span><span class="p">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">myitem</span><span class="p">)</span>
3182 <span class="k">return</span>
3183 <span class="k">ok</span>
3184 <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="n">ofile</span><span class="p">.</span><span class="n">filepath</span><span class="p">(</span><span class="n">myitem</span><span class="p">)</span>
3185 <span class="n">textedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">read</span><span class="p">(</span><span class="n">cActiveFileName</span><span class="p">))</span>
3186 <span class="n">textedit1</span><span class="p">.</span><span class="n">setfocus</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
3187 <span class="n">pCursorPositionChanged</span><span class="p">()</span>
3188 <span class="n">pSetActiveFileName</span><span class="p">()</span>
3190 <span class="k">func</span> <span class="n">pSetActiveFileName</span>
3191 <span class="n">oDock2</span><span class="p">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Source Code : "</span> <span class="o">+</span> <span class="n">cActiveFileName</span><span class="p">)</span>
3193 <span class="k">func</span> <span class="n">pCursorPositionChanged</span>
3194 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">" Line : "</span><span class="o">+</span><span class="p">(</span><span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">().</span><span class="n">blocknumber</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span>
3195 <span class="s">" Column : "</span> <span class="o">+</span><span class="p">(</span><span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">().</span><span class="n">columnnumber</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span>
3196 <span class="s">" Total Lines : "</span> <span class="o">+</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">document</span><span class="p">().</span><span class="n">linecount</span><span class="p">()</span> <span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3198 <span class="k">func</span> <span class="n">pGoto</span>
3199 <span class="n">oInput</span> <span class="o">=</span> <span class="k">New</span> <span class="n">QInputDialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
3200 <span class="p">{</span>
3201 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Enter the line number?"</span><span class="p">)</span>
3202 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">400</span><span class="p">,</span><span class="mi">50</span><span class="p">)</span>
3203 <span class="n">setlabeltext</span><span class="p">(</span><span class="s">"Line"</span><span class="p">)</span>
3204 <span class="n">settextvalue</span><span class="p">(</span><span class="s">"1"</span><span class="p">)</span>
3205 <span class="n">exec</span><span class="p">()</span>
3206 <span class="n">nLine</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">+</span> <span class="n">oInput</span><span class="p">.</span><span class="n">textvalue</span><span class="p">()</span>
3207 <span class="n">oBlock</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">document</span><span class="p">().</span><span class="n">findBlockByLineNumber</span><span class="p">(</span><span class="n">nLine</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
3208 <span class="n">oCursor</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">()</span>
3209 <span class="n">oCursor</span><span class="p">.</span><span class="n">setposition</span><span class="p">(</span><span class="n">oBlock</span><span class="p">.</span><span class="n">position</span><span class="p">(),</span><span class="mi">0</span><span class="p">)</span>
3210 <span class="n">textedit1</span><span class="p">.</span><span class="n">settextcursor</span><span class="p">(</span><span class="n">oCursor</span><span class="p">)</span>
3211 <span class="p">}</span>
3213 <span class="k">func</span> <span class="n">pFind</span>
3214 <span class="k">if</span> <span class="n">isobject</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3215 <span class="n">oSearch</span><span class="p">.</span><span class="n">activatewindow</span><span class="p">()</span>
3216 <span class="k">return</span>
3217 <span class="k">ok</span>
3218 <span class="n">oSearch</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span>
3219 <span class="p">{</span>
3220 <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3221 <span class="p">{</span>
3222 <span class="n">setText</span><span class="p">(</span><span class="s">"Find What : "</span><span class="p">)</span>
3223 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">50</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3224 <span class="p">}</span>
3225 <span class="n">oSearchValue</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3226 <span class="p">{</span>
3227 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">460</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3228 <span class="n">setReturnPressedEvent</span><span class="p">(</span><span class="s">"pFindValue()"</span><span class="p">)</span>
3229 <span class="p">}</span>
3230 <span class="k">new</span> <span class="n">qLabel</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3231 <span class="p">{</span>
3232 <span class="n">setText</span><span class="p">(</span><span class="s">"Replace with "</span><span class="p">)</span>
3233 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">80</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3234 <span class="p">}</span>
3235 <span class="n">oReplaceValue</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlineedit</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3236 <span class="p">{</span>
3237 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="mi">45</span><span class="p">,</span><span class="mi">460</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3238 <span class="p">}</span>
3239 <span class="n">oSearchCase</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qCheckbox</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3240 <span class="p">{</span>
3241 <span class="n">setText</span><span class="p">(</span><span class="s">"Case Sensitive"</span><span class="p">)</span>
3242 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="mi">85</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3243 <span class="p">}</span>
3244 <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3245 <span class="p">{</span>
3246 <span class="n">setText</span><span class="p">(</span><span class="s">"Find/Find Next"</span><span class="p">)</span>
3247 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span><span class="mi">120</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3248 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pFindValue()"</span><span class="p">)</span>
3249 <span class="p">}</span>
3250 <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3251 <span class="p">{</span>
3252 <span class="n">setText</span><span class="p">(</span><span class="s">"Replace"</span><span class="p">)</span>
3253 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span><span class="mi">120</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3254 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pReplace()"</span><span class="p">)</span>
3255 <span class="p">}</span>
3256 <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3257 <span class="p">{</span>
3258 <span class="n">setText</span><span class="p">(</span><span class="s">"Replace All"</span><span class="p">)</span>
3259 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">320</span><span class="p">,</span><span class="mi">120</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3260 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pReplaceAll()"</span><span class="p">)</span>
3261 <span class="p">}</span>
3262 <span class="k">new</span> <span class="n">qPushButton</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3263 <span class="p">{</span>
3264 <span class="n">setText</span><span class="p">(</span><span class="s">"Close"</span><span class="p">)</span>
3265 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">440</span><span class="p">,</span><span class="mi">120</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
3266 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"pSearchClose()"</span><span class="p">)</span>
3267 <span class="p">}</span>
3269 <span class="n">setwinicon</span><span class="p">(</span><span class="n">oSearch</span><span class="p">,</span><span class="s">"image/notepad.png"</span><span class="p">)</span>
3270 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Find/Replace"</span><span class="p">)</span>
3271 <span class="n">setStyleSheet</span><span class="p">(</span><span class="s">"background-color:white;"</span><span class="p">)</span>
3272 <span class="n">setFixedsize</span><span class="p">(</span><span class="mi">550</span><span class="p">,</span><span class="mi">160</span><span class="p">)</span>
3273 <span class="n">setwindowflags</span><span class="p">(</span> <span class="n">Qt_CustomizeWindowHint</span> <span class="o">|</span>
3274 <span class="n">Qt_WindowTitleHint</span> <span class="o">|</span> <span class="n">Qt_WindowStaysOnTopHint</span><span class="p">)</span>
3276 <span class="n">oSearchFilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qallevents</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3277 <span class="n">oSearchFilter</span><span class="p">.</span><span class="n">setKeyPressEvent</span><span class="p">(</span><span class="s">"pSearchKeyPress()"</span><span class="p">)</span>
3278 <span class="n">installeventfilter</span><span class="p">(</span><span class="n">oSearchFilter</span><span class="p">)</span>
3280 <span class="n">show</span><span class="p">()</span>
3281 <span class="p">}</span>
3283 <span class="k">Func</span> <span class="n">pReplace</span>
3284 <span class="n">oCursor</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">textCursor</span><span class="p">()</span>
3285 <span class="k">if</span> <span class="n">oCursor</span><span class="p">.</span><span class="n">HasSelection</span><span class="p">()</span> <span class="o">=</span> <span class="kp">false</span>
3286 <span class="k">new</span> <span class="n">qMessagebox</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3287 <span class="p">{</span>
3288 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Replace"</span><span class="p">)</span>
3289 <span class="n">SetText</span><span class="p">(</span><span class="s">"No Selection"</span><span class="p">)</span>
3290 <span class="n">show</span><span class="p">()</span>
3291 <span class="p">}</span>
3292 <span class="k">return</span> <span class="kp">false</span>
3293 <span class="k">ok</span>
3294 <span class="n">cValue</span> <span class="o">=</span> <span class="n">oSearchValue</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3295 <span class="n">cSelected</span> <span class="o">=</span> <span class="n">oCursor</span><span class="p">.</span><span class="n">SelectedText</span><span class="p">()</span>
3296 <span class="k">if</span> <span class="n">oSearchCase</span><span class="p">.</span><span class="n">checkState</span><span class="p">()</span> <span class="o">=</span> <span class="n">Qt_Unchecked</span>
3297 <span class="n">cValue</span> <span class="o">=</span> <span class="n">lower</span><span class="p">(</span><span class="n">cValue</span><span class="p">)</span>
3298 <span class="n">cSelected</span> <span class="o">=</span> <span class="n">lower</span><span class="p">(</span><span class="n">cSelected</span><span class="p">)</span>
3299 <span class="k">ok</span>
3300 <span class="k">if</span> <span class="n">cSelected</span> <span class="o">!=</span> <span class="n">cValue</span>
3301 <span class="k">new</span> <span class="n">qMessagebox</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3302 <span class="p">{</span>
3303 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Replace"</span><span class="p">)</span>
3304 <span class="n">SetText</span><span class="p">(</span><span class="s">"No Match"</span><span class="p">)</span>
3305 <span class="n">show</span><span class="p">()</span>
3306 <span class="p">}</span>
3307 <span class="k">return</span> <span class="kp">false</span>
3308 <span class="k">ok</span>
3309 <span class="n">cValue</span> <span class="o">=</span> <span class="n">oReplaceValue</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3310 <span class="n">nStart</span> <span class="o">=</span> <span class="n">oCursor</span><span class="p">.</span><span class="n">SelectionStart</span><span class="p">()</span>
3311 <span class="n">nEnd</span> <span class="o">=</span> <span class="n">oCursor</span><span class="p">.</span><span class="n">SelectionEnd</span><span class="p">()</span>
3312 <span class="n">cStr</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">toPlainText</span><span class="p">()</span>
3313 <span class="n">cStr</span> <span class="o">=</span> <span class="n">left</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">nStart</span><span class="p">)</span><span class="o">+</span><span class="n">cValue</span><span class="o">+</span><span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">nEnd</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
3314 <span class="n">textedit1</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span>
3315 <span class="k">return</span> <span class="n">pFindValue</span><span class="p">()</span>
3317 <span class="k">Func</span> <span class="n">pReplaceAll</span>
3318 <span class="n">cStr</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">toPlainText</span><span class="p">()</span>
3319 <span class="n">cOldValue</span> <span class="o">=</span> <span class="n">oSearchValue</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3320 <span class="n">cNewValue</span> <span class="o">=</span> <span class="n">oReplaceValue</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3321 <span class="k">if</span> <span class="n">oSearchCase</span><span class="p">.</span><span class="n">checkState</span><span class="p">()</span> <span class="o">=</span> <span class="n">Qt_Unchecked</span>
3322 <span class="c"># 英数大小文字非同一視</span>
3323 <span class="n">cStr</span> <span class="o">=</span> <span class="n">SubStr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">cOldValue</span><span class="p">,</span><span class="n">cNewValue</span><span class="p">,</span><span class="kp">true</span><span class="p">)</span>
3324 <span class="k">else</span>
3325 <span class="c"># 英数大小文字同一視</span>
3326 <span class="n">cStr</span> <span class="o">=</span> <span class="n">SubStr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">cOldValue</span><span class="p">,</span><span class="n">cNewValue</span><span class="p">)</span>
3327 <span class="k">ok</span>
3328 <span class="n">textedit1</span><span class="p">.</span><span class="n">setText</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span>
3329 <span class="k">new</span> <span class="n">qMessagebox</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3330 <span class="p">{</span>
3331 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Replace All"</span><span class="p">)</span>
3332 <span class="n">SetText</span><span class="p">(</span><span class="s">"Operation Done"</span><span class="p">)</span>
3333 <span class="n">show</span><span class="p">()</span>
3334 <span class="p">}</span>
3336 <span class="k">Func</span> <span class="n">pSearchClose</span>
3337 <span class="n">oSearch</span><span class="p">.</span><span class="n">close</span><span class="p">()</span>
3338 <span class="n">oSearch</span> <span class="o">=</span> <span class="kp">NULL</span>
3340 <span class="k">func</span> <span class="n">pSearchKeyPress</span>
3341 <span class="k">if</span> <span class="n">oSearchFilter</span><span class="p">.</span><span class="n">getKeyCode</span><span class="p">()</span> <span class="o">=</span> <span class="n">Qt_Key_Escape</span>
3342 <span class="n">pSearchClose</span><span class="p">()</span>
3343 <span class="k">ok</span>
3345 <span class="k">func</span> <span class="n">pFindValue</span>
3346 <span class="n">oCursor</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">()</span>
3347 <span class="n">nPosStart</span> <span class="o">=</span> <span class="n">oCursor</span><span class="p">.</span><span class="n">Position</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span>
3348 <span class="n">cValue</span> <span class="o">=</span> <span class="n">oSearchValue</span><span class="p">.</span><span class="n">text</span><span class="p">()</span>
3349 <span class="n">cStr</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">toplaintext</span><span class="p">()</span>
3350 <span class="n">cStr</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">nPosStart</span><span class="p">)</span>
3351 <span class="k">if</span> <span class="n">oSearchCase</span><span class="p">.</span><span class="n">checkState</span><span class="p">()</span> <span class="o">=</span> <span class="n">Qt_Unchecked</span>
3352 <span class="n">cStr</span> <span class="o">=</span> <span class="n">lower</span><span class="p">(</span><span class="n">cStr</span><span class="p">)</span> <span class="n">cValue</span> <span class="o">=</span> <span class="n">lower</span><span class="p">(</span><span class="n">cValue</span><span class="p">)</span>
3353 <span class="k">ok</span>
3354 <span class="n">nPos</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cStr</span><span class="p">,</span><span class="n">cValue</span><span class="p">)</span>
3355 <span class="k">if</span> <span class="n">nPos</span> <span class="o">></span> <span class="mi">0</span>
3356 <span class="n">nPos</span> <span class="o">+=</span> <span class="n">nPosStart</span> <span class="o">-</span> <span class="mi">2</span>
3357 <span class="n">oCursor</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">()</span>
3358 <span class="n">oCursor</span><span class="p">.</span><span class="n">setposition</span><span class="p">(</span><span class="n">nPos</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3359 <span class="n">textedit1</span><span class="p">.</span><span class="n">settextcursor</span><span class="p">(</span><span class="n">oCursor</span><span class="p">)</span>
3360 <span class="n">oCursor</span> <span class="o">=</span> <span class="n">textedit1</span><span class="p">.</span><span class="n">textcursor</span><span class="p">()</span>
3361 <span class="n">oCursor</span><span class="p">.</span><span class="n">setposition</span><span class="p">(</span><span class="n">nPos</span><span class="o">+</span><span class="n">len</span><span class="p">(</span><span class="n">cValue</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span>
3362 <span class="n">textedit1</span><span class="p">.</span><span class="n">settextcursor</span><span class="p">(</span><span class="n">oCursor</span><span class="p">)</span>
3363 <span class="k">return</span> <span class="kp">true</span>
3364 <span class="k">else</span>
3365 <span class="k">new</span> <span class="n">qMessagebox</span><span class="p">(</span><span class="n">oSearch</span><span class="p">)</span>
3366 <span class="p">{</span>
3367 <span class="n">SetWindowTitle</span><span class="p">(</span><span class="s">"Search"</span><span class="p">)</span>
3368 <span class="n">SetText</span><span class="p">(</span><span class="s">"Cannot find :"</span> <span class="o">+</span> <span class="n">cValue</span><span class="p">)</span>
3369 <span class="n">show</span><span class="p">()</span>
3370 <span class="p">}</span>
3371 <span class="k">return</span> <span class="kp">false</span>
3372 <span class="k">ok</span>
3374 <span class="k">func</span> <span class="n">pNofileopened</span>
3375 <span class="k">New</span> <span class="n">qMessageBox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3376 <span class="n">setWindowTitle</span><span class="p">(</span><span class="s">"Sorry"</span><span class="p">)</span>
3377 <span class="n">setText</span><span class="p">(</span><span class="s">"Save the file first!"</span><span class="p">)</span>
3378 <span class="n">show</span><span class="p">()</span>
3379 <span class="p">}</span>
3381 <span class="k">func</span> <span class="n">pDebug</span>
3382 <span class="k">if</span> <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="kp">Null</span> <span class="k">return</span> <span class="n">pNofileopened</span><span class="p">()</span> <span class="k">ok</span>
3383 <span class="n">cCode</span> <span class="o">=</span> <span class="s">"start run "</span> <span class="o">+</span> <span class="n">cActiveFileName</span> <span class="o">+</span> <span class="n">nl</span>
3384 <span class="n">system</span><span class="p">(</span><span class="n">cCode</span><span class="p">)</span>
3386 <span class="k">func</span> <span class="n">pRun</span>
3387 <span class="k">if</span> <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="kp">Null</span> <span class="k">return</span> <span class="n">pNofileopened</span><span class="p">()</span> <span class="k">ok</span>
3388 <span class="n">cCode</span> <span class="o">=</span> <span class="s">"start ring "</span> <span class="o">+</span> <span class="n">cActiveFileName</span> <span class="o">+</span> <span class="n">nl</span>
3389 <span class="n">system</span><span class="p">(</span><span class="n">cCode</span><span class="p">)</span>
3391 <span class="k">func</span> <span class="n">pRunNoConsole</span>
3392 <span class="k">if</span> <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="kp">Null</span> <span class="k">return</span> <span class="n">pNofileopened</span><span class="p">()</span> <span class="k">ok</span>
3393 <span class="n">cCode</span> <span class="o">=</span> <span class="s">"start /b ring "</span> <span class="o">+</span> <span class="n">cActiveFileName</span> <span class="o">+</span> <span class="n">nl</span>
3394 <span class="n">system</span><span class="p">(</span><span class="n">cCode</span><span class="p">)</span>
3396 <span class="k">func</span> <span class="n">pSave</span>
3397 <span class="k">if</span> <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="kp">NULL</span> <span class="k">return</span> <span class="n">pSaveAs</span><span class="p">()</span> <span class="k">ok</span>
3398 <span class="n">writefile</span><span class="p">(</span><span class="n">cActiveFileName</span><span class="p">,</span><span class="n">textedit1</span><span class="p">.</span><span class="n">toplaintext</span><span class="p">())</span>
3399 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"File : "</span> <span class="o">+</span> <span class="n">cActiveFileName</span> <span class="o">+</span> <span class="s">" saved!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3400 <span class="n">lAskToSave</span> <span class="o">=</span> <span class="kp">false</span>
3402 <span class="k">func</span> <span class="n">pSaveAs</span>
3403 <span class="k">new</span> <span class="n">qfiledialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3404 <span class="n">cName</span> <span class="o">=</span> <span class="n">getsavefilename</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="s">"Save As"</span><span class="p">,</span><span class="s">""</span><span class="p">,</span><span class="s">"source files(*.ring)"</span><span class="p">)</span>
3405 <span class="k">if</span> <span class="n">cName</span> <span class="o">!=</span> <span class="kp">NULL</span>
3406 <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="n">cName</span>
3407 <span class="n">writefile</span><span class="p">(</span><span class="n">cActiveFileName</span><span class="p">,</span><span class="n">textedit1</span><span class="p">.</span><span class="n">toplaintext</span><span class="p">())</span>
3408 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"File : "</span> <span class="o">+</span> <span class="n">cActiveFileName</span> <span class="o">+</span> <span class="s">" saved!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3409 <span class="n">pSetActiveFileName</span><span class="p">()</span>
3410 <span class="n">lAskToSave</span> <span class="o">=</span> <span class="kp">false</span>
3411 <span class="k">ok</span>
3412 <span class="p">}</span>
3414 <span class="k">func</span> <span class="n">pPrint</span>
3415 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"Printing to File : RingDoc.pdf"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3416 <span class="n">printer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrinter</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
3417 <span class="n">setoutputformat</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="c"># 1 = pdf</span>
3418 <span class="n">setoutputfilename</span><span class="p">(</span><span class="s">"RingDoc.pdf"</span><span class="p">)</span>
3419 <span class="n">textedit1</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span>
3420 <span class="p">}</span>
3421 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"Done!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3422 <span class="n">system</span><span class="p">(</span><span class="s">"RingDoc.pdf"</span><span class="p">)</span>
3424 <span class="k">func</span> <span class="n">pCut</span>
3425 <span class="n">textedit1</span><span class="p">.</span><span class="n">cut</span><span class="p">()</span>
3426 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"Cut!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3428 <span class="k">func</span> <span class="n">pCopy</span>
3429 <span class="n">textedit1</span><span class="p">.</span><span class="n">copy</span><span class="p">()</span>
3430 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"Copy!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3432 <span class="k">func</span> <span class="n">pPaste</span>
3433 <span class="n">textedit1</span><span class="p">.</span><span class="n">paste</span><span class="p">()</span>
3434 <span class="n">status1</span><span class="p">.</span><span class="n">showmessage</span><span class="p">(</span><span class="s">"Paste!"</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3436 <span class="k">func</span> <span class="n">pFont</span>
3437 <span class="n">oFontDialog</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qfontdialog</span><span class="p">()</span> <span class="p">{</span>
3438 <span class="n">aFont</span> <span class="o">=</span> <span class="n">getfont</span><span class="p">()</span>
3439 <span class="p">}</span>
3440 <span class="n">textedit1</span><span class="p">.</span><span class="n">selectall</span><span class="p">()</span>
3441 <span class="n">cFont</span> <span class="o">=</span> <span class="n">aFont</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span>
3442 <span class="n">pSetFont</span><span class="p">()</span>
3444 <span class="k">Func</span> <span class="n">pSetFont</span>
3445 <span class="n">myfont</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qfont</span><span class="p">(</span><span class="s">""</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
3446 <span class="n">myfont</span><span class="p">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">cFont</span><span class="p">)</span>
3447 <span class="n">textedit1</span><span class="p">.</span><span class="n">setcurrentfont</span><span class="p">(</span><span class="n">myfont</span><span class="p">)</span>
3449 <span class="k">Func</span> <span class="n">pColor</span>
3450 <span class="k">new</span> <span class="n">qcolordialog</span><span class="p">()</span> <span class="p">{</span> <span class="n">aTextColor</span> <span class="o">=</span> <span class="n">GetColor</span><span class="p">()</span> <span class="p">}</span>
3451 <span class="n">pSetColors</span><span class="p">()</span>
3453 <span class="k">Func</span> <span class="n">pColor2</span>
3454 <span class="k">new</span> <span class="n">qcolordialog</span><span class="p">()</span> <span class="p">{</span> <span class="n">aBackColor</span> <span class="o">=</span> <span class="n">GetColor</span><span class="p">()</span> <span class="p">}</span>
3455 <span class="n">pSetColors</span><span class="p">()</span>
3457 <span class="k">Func</span> <span class="n">pSetColors</span>
3458 <span class="n">textedit1</span><span class="p">.</span><span class="n">setstylesheet</span><span class="p">(</span><span class="s">"color: rgb("</span> <span class="o">+</span> <span class="n">aTextColor</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">aTextColor</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">+</span>
3459 <span class="s">","</span> <span class="o">+</span> <span class="n">aTextColor</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span> <span class="o">+</span> <span class="s">");"</span> <span class="o">+</span> <span class="s">"background-color: rgb("</span> <span class="o">+</span>
3460 <span class="n">aBackColor</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span> <span class="n">aBackColor</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span> <span class="o">+</span> <span class="s">","</span> <span class="o">+</span>
3461 <span class="n">aBackColor</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span> <span class="o">+</span> <span class="s">")"</span><span class="p">)</span>
3463 <span class="k">func</span> <span class="n">pOpen</span>
3464 <span class="k">new</span> <span class="n">qfiledialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3465 <span class="n">cName</span> <span class="o">=</span> <span class="n">getopenfilename</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="s">"open file"</span><span class="p">,</span><span class="s">"c:</span><span class="se">\"</span><span class="s">,"</span><span class="n">source</span> <span class="n">files</span><span class="p">(</span><span class="o">*</span><span class="p">.</span><span class="n">ring</span><span class="p">)</span><span class="s">")</span>
3466 <span class="k">if</span> <span class="n">cName</span> <span class="o">!=</span> <span class="kp">NULL</span>
3467 <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="n">cName</span>
3468 <span class="n">textedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">read</span><span class="p">(</span><span class="n">cActiveFileName</span><span class="p">))</span>
3469 <span class="k">ok</span>
3470 <span class="p">}</span>
3472 <span class="k">func</span> <span class="n">pNew</span>
3473 <span class="k">new</span> <span class="n">qfiledialog</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3474 <span class="n">cName</span> <span class="o">=</span> <span class="n">getsavefilename</span><span class="p">(</span><span class="n">win1</span><span class="p">,</span><span class="s">"New file"</span><span class="p">,</span><span class="s">""</span><span class="p">,</span><span class="s">"source files(*.ring)"</span><span class="p">)</span>
3475 <span class="k">if</span> <span class="n">cName</span> <span class="o">!=</span> <span class="kp">NULL</span>
3476 <span class="n">write</span><span class="p">(</span><span class="n">cName</span><span class="p">,</span><span class="s">""</span><span class="p">)</span>
3477 <span class="n">cActiveFileName</span> <span class="o">=</span> <span class="n">cName</span>
3478 <span class="n">textedit1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="n">read</span><span class="p">(</span><span class="n">cActiveFileName</span><span class="p">))</span>
3480 <span class="k">ok</span>
3481 <span class="p">}</span>
3483 <span class="k">Func</span> <span class="n">WriteFile</span> <span class="n">cFileName</span><span class="p">,</span><span class="n">cCode</span>
3484 <span class="n">aCode</span> <span class="o">=</span> <span class="n">str2list</span><span class="p">(</span><span class="n">cCode</span><span class="p">)</span>
3485 <span class="n">fp</span> <span class="o">=</span> <span class="n">fopen</span><span class="p">(</span><span class="n">cFileName</span><span class="p">,</span><span class="s">"wb"</span><span class="p">)</span>
3486 <span class="k">for</span> <span class="n">cLine</span> <span class="k">in</span> <span class="n">aCode</span>
3487 <span class="n">fwrite</span><span class="p">(</span><span class="n">fp</span><span class="p">,</span><span class="n">cLine</span><span class="o">+</span><span class="n">char</span><span class="p">(</span><span class="mi">13</span><span class="p">)</span><span class="o">+</span><span class="n">char</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
3488 <span class="k">next</span>
3489 <span class="n">fclose</span><span class="p">(</span><span class="n">fp</span><span class="p">)</span>
3491 <span class="k">Func</span> <span class="n">MsgBox</span> <span class="n">cTitle</span><span class="p">,</span><span class="n">cMessage</span>
3492 <span class="k">new</span> <span class="n">qMessagebox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3493 <span class="n">setwindowtitle</span><span class="p">(</span><span class="n">cTitle</span><span class="p">)</span>
3494 <span class="n">setText</span><span class="p">(</span><span class="n">cMessage</span><span class="p">)</span>
3495 <span class="n">show</span><span class="p">()</span>
3496 <span class="p">}</span>
3499 <span class="k">Func</span> <span class="n">pLang</span>
3500 <span class="n">MsgBox</span><span class="p">(</span><span class="s">"Programming Language"</span><span class="p">,</span>
3501 <span class="s">"This application developed using the Ring programming language"</span><span class="p">)</span>
3503 <span class="k">Func</span> <span class="n">pGUI</span>
3504 <span class="n">MsgBox</span><span class="p">(</span><span class="s">"GUI Library"</span><span class="p">,</span>
3505 <span class="s">"This application uses the Qt GUI Library through RingQt"</span><span class="p">)</span>
3507 <span class="k">Func</span> <span class="n">pAbout</span>
3508 <span class="n">MsgBox</span><span class="p">(</span><span class="s">"About"</span><span class="p">,</span>
3509 <span class="s">"2016, Mahmoud Fayed <msfclipper@yahoo.com>"</span><span class="p">)</span>
3511 <span class="k">Func</span> <span class="n">pSaveSettings</span>
3512 <span class="n">cSettings</span> <span class="o">=</span> <span class="s">"aTextColor = ["</span><span class="o">+</span><span class="n">aTextColor</span><span class="o">[</span><span class="mi">1</span><span class="o">]+</span><span class="s">","</span><span class="o">+</span><span class="n">aTextColor</span><span class="o">[</span><span class="mi">2</span><span class="o">]+</span>
3513 <span class="s">","</span><span class="o">+</span><span class="n">aTextColor</span><span class="o">[</span><span class="mi">3</span><span class="o">]+</span><span class="s">"]"</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span>
3514 <span class="s">"aBackColor = ["</span><span class="o">+</span><span class="n">aBackColor</span><span class="o">[</span><span class="mi">1</span><span class="o">]+</span><span class="s">","</span><span class="o">+</span><span class="n">aBackColor</span><span class="o">[</span><span class="mi">2</span><span class="o">]+</span>
3515 <span class="s">","</span><span class="o">+</span><span class="n">aBackColor</span><span class="o">[</span><span class="mi">3</span><span class="o">]+</span><span class="s">"]"</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span>
3516 <span class="s">"cFont = '"</span> <span class="o">+</span> <span class="n">cFont</span> <span class="o">+</span> <span class="s">"'"</span> <span class="o">+</span> <span class="n">nl</span> <span class="o">+</span>
3517 <span class="s">"cWebSite = '"</span> <span class="o">+</span> <span class="n">cWebsite</span> <span class="o">+</span> <span class="s">"'"</span> <span class="o">+</span> <span class="n">nl</span>
3518 <span class="n">cSettings</span> <span class="o">=</span> <span class="n">substr</span><span class="p">(</span><span class="n">cSettings</span><span class="p">,</span><span class="n">nl</span><span class="p">,</span><span class="n">char</span><span class="p">(</span><span class="mi">13</span><span class="p">)</span><span class="o">+</span><span class="n">char</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
3519 <span class="n">write</span><span class="p">(</span><span class="s">"ringnotepad.ini"</span><span class="p">,</span><span class="n">cSettings</span><span class="p">)</span>
3520 <span class="k">if</span> <span class="n">lAsktoSave</span>
3521 <span class="k">new</span> <span class="n">qmessagebox</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
3522 <span class="p">{</span>
3523 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Save Changes?"</span><span class="p">)</span>
3524 <span class="n">settext</span><span class="p">(</span><span class="s">"Some changes are not saved!"</span><span class="p">)</span>
3525 <span class="n">setInformativeText</span><span class="p">(</span><span class="s">"Do you want to save your changes?"</span><span class="p">)</span>
3526 <span class="n">setstandardbuttons</span><span class="p">(</span><span class="n">QMessageBox_Yes</span> <span class="o">|</span>
3527 <span class="n">QMessageBox_No</span> <span class="o">|</span> <span class="n">QMessageBox_Cancel</span><span class="p">)</span>
3528 <span class="n">result</span> <span class="o">=</span> <span class="n">exec</span><span class="p">()</span>
3529 <span class="n">win1</span> <span class="p">{</span>
3530 <span class="k">if</span> <span class="n">result</span> <span class="o">=</span> <span class="n">QMessageBox_Yes</span>
3531 <span class="n">pSave</span><span class="p">()</span>
3532 <span class="k">but</span> <span class="n">result</span> <span class="o">=</span> <span class="n">QMessageBox_Cancel</span>
3533 <span class="k">return</span> <span class="kp">false</span>
3534 <span class="k">ok</span>
3535 <span class="p">}</span>
3536 <span class="p">}</span>
3537 <span class="k">ok</span>
3538 <span class="k">return</span> <span class="kp">true</span>
3540 <span class="k">Func</span> <span class="n">pSetWebsite</span>
3541 <span class="n">oWebView</span> <span class="p">{</span> <span class="n">loadpage</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="n">cWebSite</span><span class="p">))</span> <span class="p">}</span>
3542 <span class="n">oWBText</span> <span class="p">{</span> <span class="n">setText</span><span class="p">(</span><span class="n">cWebSite</span><span class="p">)</span> <span class="p">}</span>
3544 <span class="k">Func</span> <span class="n">RestoreSettings</span>
3545 <span class="n">eval</span><span class="p">(</span><span class="n">read</span><span class="p">(</span><span class="s">"ringnotepad.ini"</span><span class="p">))</span>
3546 <span class="n">pSetColors</span><span class="p">()</span>
3547 <span class="n">pSetFont</span><span class="p">()</span>
3548 <span class="n">pSetWebsite</span><span class="p">()</span>
3550 <span class="k">Func</span> <span class="n">pQuit</span>
3551 <span class="k">if</span> <span class="n">pSaveSettings</span><span class="p">()</span>
3552 <span class="n">myapp</span><span class="p">.</span><span class="n">quit</span><span class="p">()</span>
3553 <span class="k">ok</span>
3557 <p>このスクリーンショットは “ファイル” メニューのデモです。</p>
3558 <img alt="Ring ノートパッド - ファイルメニュー" src="_images/ringqt_shot50.jpg" />
3559 <p>このウィンドウは “検索と置換”です。</p>
3560 <img alt="Ring ノートパッド - 検索と置換" src="_images/ringqt_shot51.jpg" />
3561 <p>このスクリーンショットはアプリケーションのメインウィンドウのデモです。</p>
3562 <img alt="Ring ノートパッド - メインウィンドウ" src="_images/ringqt_shot49.jpg" />
3563 <div class="admonition note">
3564 <p class="first admonition-title">注釈</p>
3565 <p class="last">前述のサンプルにある pDebug(), pRun() および pRunNoConsole() 関数は移植性がありません!
3566 このサンプルでは MS-Windows 用に記述されており、ほかのオペレーティングシステム用に更新できます。</p>
3569 <div class="section" id="cards">
3570 <span id="index-57"></span><h2>Cards ゲーム<a class="headerlink" href="#cards" title="このヘッドラインへのパーマリンク">¶</a></h2>
3571 <p>この用例は、 RingQt で開発したシンプルなカードゲームです。</p>
3572 <p>各プレイヤーは五枚のカードを取得しますが、カードの中身は誰にもわかりません。
3573 プレイヤーは毎回カードを確認するためにカードを一枚クリックします。
3574 カードが別のカードと同じ番号ならば各カードのポイントを取得します。
3575 カードの番号が “5” ならば、すべての可視状態のカードのポイントを取得します。</p>
3576 <div class="highlight-ring"><div class="highlight"><pre><span class="k">Load</span> <span class="s">"guilib.ring"</span>
3578 <span class="n">nScale</span> <span class="o">=</span> <span class="mi">1</span>
3580 <span class="n">app1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qApp</span>
3582 <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">"cards.jpg"</span><span class="p">)</span>
3584 <span class="n">mypic2</span> <span class="o">=</span> <span class="n">mypic</span><span class="p">.</span><span class="n">copy</span><span class="p">(</span><span class="mi">0</span><span class="p">,(</span><span class="mi">124</span><span class="o">*</span><span class="mi">4</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">79</span><span class="p">,</span><span class="mi">124</span><span class="p">)</span>
3585 <span class="n">Player1EatPic</span> <span class="o">=</span> <span class="n">mypic</span><span class="p">.</span><span class="n">copy</span><span class="p">(</span><span class="mi">80</span><span class="p">,(</span><span class="mi">124</span><span class="o">*</span><span class="mi">4</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">79</span><span class="p">,</span><span class="mi">124</span><span class="p">)</span>
3586 <span class="n">Player2EatPic</span><span class="o">=</span> <span class="n">mypic</span><span class="p">.</span><span class="n">copy</span><span class="p">(</span><span class="mi">160</span><span class="p">,(</span><span class="mi">124</span><span class="o">*</span><span class="mi">4</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">79</span><span class="p">,</span><span class="mi">124</span><span class="p">)</span>
3588 <span class="n">aMyCards</span> <span class="o">=</span> <span class="o">[]</span>
3589 <span class="n">aMyValues</span> <span class="o">=</span> <span class="o">[]</span>
3590 <span class="k">for</span> <span class="n">x1</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">to</span> <span class="mi">3</span>
3591 <span class="k">for</span> <span class="n">y1</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">to</span> <span class="mi">12</span>
3592 <span class="n">temppic</span> <span class="o">=</span> <span class="n">mypic</span><span class="p">.</span><span class="n">copy</span><span class="p">((</span><span class="mi">79</span><span class="o">*</span><span class="n">y1</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,(</span><span class="mi">124</span><span class="o">*</span><span class="n">x1</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">79</span><span class="p">,</span><span class="mi">124</span><span class="p">)</span>
3593 <span class="n">aMyCards</span> <span class="o">+</span> <span class="n">temppic</span>
3594 <span class="n">aMyValues</span> <span class="o">+</span> <span class="p">(</span><span class="n">y1</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
3595 <span class="k">next</span>
3596 <span class="k">next</span>
3598 <span class="n">nPlayer1Score</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">nPlayer2Score</span><span class="o">=</span><span class="mi">0</span>
3600 <span class="k">do</span>
3601 <span class="n">Page1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Game</span>
3602 <span class="n">Page1</span><span class="p">.</span><span class="n">Start</span><span class="p">()</span>
3603 <span class="k">again</span> <span class="n">Page1</span><span class="p">.</span><span class="n">lnewgame</span>
3605 <span class="n">mypic</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3606 <span class="n">mypic2</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3607 <span class="n">Player1EatPic</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3608 <span class="n">Player2EatPic</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3610 <span class="k">for</span> <span class="n">t</span> <span class="k">in</span> <span class="n">aMyCards</span>
3611 <span class="n">t</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3612 <span class="k">next</span>
3614 <span class="k">func</span> <span class="n">gui_setbtnpixmap</span> <span class="n">pBtn</span><span class="p">,</span><span class="n">pPixmap</span>
3615 <span class="n">pBtn</span> <span class="p">{</span>
3616 <span class="n">setIcon</span><span class="p">(</span><span class="k">new</span> <span class="n">qicon</span><span class="p">(</span><span class="n">pPixmap</span><span class="p">.</span><span class="n">scaled</span><span class="p">(</span><span class="n">width</span><span class="p">(),</span><span class="n">height</span><span class="p">(),</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)))</span>
3617 <span class="n">setIconSize</span><span class="p">(</span><span class="k">new</span> <span class="n">QSize</span><span class="p">(</span><span class="n">width</span><span class="p">(),</span><span class="n">height</span><span class="p">()))</span>
3618 <span class="p">}</span>
3620 <span class="k">Class</span> <span class="n">Game</span>
3622 <span class="n">nCardsCount</span> <span class="o">=</span> <span class="mi">10</span>
3623 <span class="n">win1</span> <span class="n">layout1</span> <span class="n">label1</span> <span class="n">label2</span> <span class="n">layout2</span> <span class="n">layout3</span> <span class="n">aBtns</span> <span class="n">aBtns2</span>
3624 <span class="n">aCards</span> <span class="n">nRole</span><span class="o">=</span><span class="mi">1</span> <span class="n">aStatus</span> <span class="o">=</span> <span class="kt">list</span><span class="p">(</span><span class="n">nCardsCount</span><span class="p">)</span> <span class="n">aStatus2</span> <span class="o">=</span> <span class="n">aStatus</span>
3625 <span class="n">aValues</span> <span class="n">aStatusValues</span> <span class="o">=</span> <span class="n">aStatus</span> <span class="n">aStatusValues2</span> <span class="o">=</span> <span class="n">aStatus</span>
3626 <span class="n">Player1EatPic</span> <span class="n">Player2EatPic</span>
3627 <span class="n">lnewgame</span> <span class="o">=</span> <span class="kp">false</span>
3628 <span class="n">nDelayEat</span> <span class="o">=</span> <span class="mf">0.5</span>
3629 <span class="n">nDelayNewGame</span> <span class="o">=</span> <span class="mi">1</span>
3631 <span class="k">func</span> <span class="n">start</span>
3633 <span class="n">win1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qWidget</span><span class="p">()</span> <span class="p">{</span>
3634 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Five"</span><span class="p">)</span>
3635 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"background-color: White"</span><span class="p">)</span>
3636 <span class="n">showfullscreen</span><span class="p">()</span>
3637 <span class="p">}</span>
3639 <span class="n">layout1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qvboxlayout</span><span class="p">()</span>
3641 <span class="n">label1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3642 <span class="n">settext</span><span class="p">(</span><span class="s">"Player (1) - Score : "</span> <span class="o">+</span> <span class="n">nPlayer1Score</span><span class="p">)</span>
3643 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span> <span class="o">|</span> <span class="n">Qt_AlignVCenter</span><span class="p">)</span>
3644 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"color: White; background-color: Purple;</span>
3645 <span class="n">font</span><span class="o">-</span><span class="n">size</span><span class="p">:</span><span class="s">20pt")</span>
3646 <span class="n">setfixedheight</span><span class="p">(</span><span class="mi">200</span><span class="p">)</span>
3647 <span class="p">}</span>
3649 <span class="n">closebtn</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3650 <span class="n">settext</span><span class="p">(</span><span class="s">"Close Application"</span><span class="p">)</span>
3651 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"font-size: 18px ; color : white ;</span>
3652 <span class="n">background</span><span class="o">-</span><span class="n">color</span><span class="p">:</span> <span class="n">black</span> <span class="p">;</span><span class="s">")</span>
3653 <span class="n">setclickevent</span><span class="p">(</span><span class="s">"Page1.win1.close()"</span><span class="p">)</span>
3654 <span class="p">}</span>
3656 <span class="n">aCards</span> <span class="o">=</span> <span class="n">aMyCards</span>
3657 <span class="n">aValues</span> <span class="o">=</span> <span class="n">aMyValues</span>
3659 <span class="n">layout2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qhboxlayout</span><span class="p">()</span>
3661 <span class="n">aBtns</span> <span class="o">=</span> <span class="o">[]</span>
3663 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="n">nCardsCount</span>
3664 <span class="n">aBtns</span> <span class="o">+</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
3665 <span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setfixedwidth</span><span class="p">(</span><span class="mi">79</span><span class="o">*</span><span class="n">nScale</span><span class="p">)</span>
3666 <span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setfixedheight</span><span class="p">(</span><span class="mi">124</span><span class="o">*</span><span class="n">nScale</span><span class="p">)</span>
3667 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">mypic2</span><span class="p">)</span>
3668 <span class="n">layout2</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">)</span>
3669 <span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setclickevent</span><span class="p">(</span><span class="s">"Page1.Player1click("</span><span class="o">+</span><span class="n">x</span><span class="o">+</span><span class="s">")"</span><span class="p">)</span>
3670 <span class="k">next</span>
3672 <span class="n">layout1</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">label1</span><span class="p">)</span>
3673 <span class="n">layout1</span><span class="p">.</span><span class="n">addlayout</span><span class="p">(</span><span class="n">layout2</span><span class="p">)</span>
3675 <span class="n">label2</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qlabel</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span> <span class="p">{</span>
3676 <span class="n">settext</span><span class="p">(</span><span class="s">"Player (2) - Score : "</span> <span class="o">+</span> <span class="n">nPlayer2Score</span><span class="p">)</span>
3677 <span class="n">setalignment</span><span class="p">(</span><span class="n">Qt_AlignHCenter</span> <span class="o">|</span> <span class="n">Qt_AlignVCenter</span><span class="p">)</span>
3678 <span class="n">setstylesheet</span><span class="p">(</span><span class="s">"color: white; background-color: red;</span>
3679 <span class="n">font</span><span class="o">-</span><span class="n">size</span><span class="p">:</span><span class="s">20pt")</span>
3680 <span class="n">setfixedheight</span><span class="p">(</span><span class="mi">200</span><span class="p">)</span>
3681 <span class="p">}</span>
3683 <span class="n">layout3</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qhboxlayout</span><span class="p">()</span>
3685 <span class="n">aBtns2</span> <span class="o">=</span> <span class="o">[]</span>
3686 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="n">nCardsCount</span>
3687 <span class="n">aBtns2</span> <span class="o">+</span> <span class="k">new</span> <span class="n">qpushbutton</span><span class="p">(</span><span class="n">win1</span><span class="p">)</span>
3688 <span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setfixedwidth</span><span class="p">(</span><span class="mi">79</span><span class="o">*</span><span class="n">nScale</span><span class="p">)</span>
3689 <span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setfixedheight</span><span class="p">(</span><span class="mi">124</span><span class="o">*</span><span class="n">nScale</span><span class="p">)</span>
3690 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">mypic2</span><span class="p">)</span>
3691 <span class="n">layout3</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">)</span>
3692 <span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">.</span><span class="n">setclickevent</span><span class="p">(</span><span class="s">"Page1.Player2click("</span><span class="o">+</span><span class="n">x</span><span class="o">+</span><span class="s">")"</span><span class="p">)</span>
3693 <span class="k">next</span>
3695 <span class="n">layout1</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">label2</span><span class="p">)</span>
3696 <span class="n">layout1</span><span class="p">.</span><span class="n">addlayout</span><span class="p">(</span><span class="n">layout3</span><span class="p">)</span>
3697 <span class="n">layout1</span><span class="p">.</span><span class="n">addwidget</span><span class="p">(</span><span class="n">closebtn</span><span class="p">)</span>
3699 <span class="n">win1</span><span class="p">.</span><span class="n">setlayout</span><span class="p">(</span><span class="n">layout1</span><span class="p">)</span>
3701 <span class="n">app1</span><span class="p">.</span><span class="n">exec</span><span class="p">()</span>
3703 <span class="k">Func</span> <span class="n">Player1Click</span> <span class="n">x</span>
3704 <span class="k">if</span> <span class="n">nRole</span> <span class="o">=</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">0</span>
3705 <span class="n">nPos</span> <span class="o">=</span> <span class="p">((</span><span class="n">random</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="o">+</span><span class="n">clock</span><span class="p">())</span><span class="o">%</span><span class="p">(</span><span class="n">len</span><span class="p">(</span><span class="n">aCards</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">+</span> <span class="mi">1</span>
3706 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">aCards</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span><span class="p">)</span>
3707 <span class="n">del</span><span class="p">(</span><span class="n">aCards</span><span class="p">,</span><span class="n">nPos</span><span class="p">)</span>
3708 <span class="n">nRole</span> <span class="o">=</span> <span class="mi">2</span>
3709 <span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span>
3710 <span class="n">aStatusValues</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">aValues</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span>
3711 <span class="n">del</span><span class="p">(</span><span class="n">aValues</span><span class="p">,</span><span class="n">nPos</span><span class="p">)</span>
3712 <span class="n">Player1Eat</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">aStatusValues</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">)</span>
3713 <span class="n">checknewgame</span><span class="p">()</span>
3714 <span class="k">ok</span>
3716 <span class="k">Func</span> <span class="n">Player2Click</span> <span class="n">x</span>
3717 <span class="k">if</span> <span class="n">nRole</span> <span class="o">=</span> <span class="mi">2</span> <span class="ow">and</span> <span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">0</span>
3718 <span class="n">nPos</span> <span class="o">=</span> <span class="p">((</span><span class="n">random</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="o">+</span><span class="n">clock</span><span class="p">())</span><span class="o">%</span><span class="p">(</span><span class="n">len</span><span class="p">(</span><span class="n">aCards</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="o">+</span> <span class="mi">1</span>
3719 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">aCards</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span><span class="p">)</span>
3720 <span class="n">del</span><span class="p">(</span><span class="n">aCards</span><span class="p">,</span><span class="n">nPos</span><span class="p">)</span>
3721 <span class="n">nRole</span> <span class="o">=</span> <span class="mi">1</span>
3722 <span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span>
3723 <span class="n">aStatusValues2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">aValues</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span>
3724 <span class="n">del</span><span class="p">(</span><span class="n">aValues</span><span class="p">,</span><span class="n">nPos</span><span class="p">)</span>
3725 <span class="n">Player2Eat</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">aStatusValues2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">)</span>
3726 <span class="n">checknewgame</span><span class="p">()</span>
3727 <span class="k">ok</span>
3729 <span class="k">Func</span> <span class="n">Player1Eat</span> <span class="n">nPos</span><span class="p">,</span><span class="n">nValue</span>
3731 <span class="n">app1</span><span class="p">.</span><span class="n">processEvents</span><span class="p">()</span>
3733 <span class="n">delay</span><span class="p">(</span><span class="n">nDelayEat</span><span class="p">)</span>
3734 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">false</span>
3735 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="n">nCardsCount</span>
3736 <span class="k">if</span> <span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span> <span class="ow">and</span> <span class="p">(</span><span class="n">aStatusValues2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">nValue</span> <span class="ow">or</span> <span class="n">nValue</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
3737 <span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3738 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">Player1EatPic</span><span class="p">)</span>
3739 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">True</span>
3740 <span class="n">nPlayer1Score</span><span class="o">++</span>
3741 <span class="k">ok</span>
3742 <span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">!=</span> <span class="n">nPos</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span>
3743 <span class="p">(</span><span class="n">aStatusValues</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">nValue</span> <span class="ow">or</span> <span class="n">nValue</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
3744 <span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3745 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">Player1EatPic</span><span class="p">)</span>
3746 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">True</span>
3747 <span class="n">nPlayer1Score</span><span class="o">++</span>
3748 <span class="k">ok</span>
3749 <span class="k">next</span>
3750 <span class="k">if</span> <span class="n">lEat</span>
3751 <span class="n">nPlayer1Score</span><span class="o">++</span>
3752 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span><span class="p">,</span><span class="n">Player1EatPic</span><span class="p">)</span>
3753 <span class="n">aStatus</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3754 <span class="n">label1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"Player (1) - Score : "</span> <span class="o">+</span> <span class="n">nPlayer1Score</span><span class="p">)</span>
3755 <span class="k">ok</span>
3757 <span class="k">Func</span> <span class="n">Player2Eat</span> <span class="n">nPos</span><span class="p">,</span><span class="n">nValue</span>
3759 <span class="n">app1</span><span class="p">.</span><span class="n">processEvents</span><span class="p">()</span>
3761 <span class="n">delay</span><span class="p">(</span><span class="n">nDelayEat</span><span class="p">)</span>
3762 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">false</span>
3763 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="n">nCardsCount</span>
3764 <span class="k">if</span> <span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span> <span class="ow">and</span> <span class="p">(</span><span class="n">aStatusValues</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">nValue</span> <span class="ow">or</span> <span class="n">nValue</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
3765 <span class="n">aStatus</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3766 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">Player2EatPic</span><span class="p">)</span>
3767 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">True</span>
3768 <span class="n">nPlayer2Score</span><span class="o">++</span>
3769 <span class="k">ok</span>
3771 <span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">!=</span> <span class="n">nPos</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span>
3772 <span class="p">(</span><span class="n">aStatusValues2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="n">nValue</span> <span class="ow">or</span> <span class="n">nValue</span><span class="o">=</span><span class="mi">5</span> <span class="p">)</span>
3773 <span class="n">aStatus2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3774 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">x</span><span class="o">]</span><span class="p">,</span><span class="n">Player2EatPic</span><span class="p">)</span>
3775 <span class="n">lEat</span> <span class="o">=</span> <span class="kp">True</span>
3776 <span class="n">nPlayer2Score</span><span class="o">++</span>
3777 <span class="k">ok</span>
3778 <span class="k">next</span>
3779 <span class="k">if</span> <span class="n">lEat</span>
3780 <span class="n">nPlayer2Score</span><span class="o">++</span>
3781 <span class="n">gui_setbtnpixmap</span><span class="p">(</span><span class="n">aBtns2</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span><span class="p">,</span><span class="n">Player2EatPic</span><span class="p">)</span>
3782 <span class="n">aStatus2</span><span class="o">[</span><span class="n">nPos</span><span class="o">]</span> <span class="o">=</span> <span class="mi">2</span>
3783 <span class="n">label2</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"Player (2) - Score : "</span> <span class="o">+</span> <span class="n">nPlayer2Score</span><span class="p">)</span>
3784 <span class="k">ok</span>
3786 <span class="k">Func</span> <span class="n">checknewgame</span>
3787 <span class="k">if</span> <span class="n">isnewgame</span><span class="p">()</span>
3788 <span class="n">lnewgame</span> <span class="o">=</span> <span class="kp">true</span>
3790 <span class="k">if</span> <span class="n">nPlayer1Score</span> <span class="o">></span> <span class="n">nPlayer2Score</span>
3791 <span class="n">label1</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"Player (1) Wins!!!"</span><span class="p">)</span>
3792 <span class="k">ok</span>
3793 <span class="k">if</span> <span class="n">nPlayer2Score</span> <span class="o">></span> <span class="n">nPlayer1Score</span>
3794 <span class="n">label2</span><span class="p">.</span><span class="n">settext</span><span class="p">(</span><span class="s">"Player (2) Wins!!!"</span><span class="p">)</span>
3795 <span class="k">ok</span>
3797 <span class="n">app1</span><span class="p">.</span><span class="n">processEvents</span><span class="p">()</span>
3798 <span class="n">delay</span><span class="p">(</span><span class="n">nDelayNewGame</span><span class="p">)</span>
3800 <span class="n">win1</span><span class="p">.</span><span class="n">delete</span><span class="p">()</span>
3801 <span class="n">app1</span><span class="p">.</span><span class="n">quit</span><span class="p">()</span>
3802 <span class="k">ok</span>
3804 <span class="k">Func</span> <span class="n">isnewgame</span>
3805 <span class="k">for</span> <span class="n">t</span> <span class="k">in</span> <span class="n">aStatus</span>
3806 <span class="k">if</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span>
3807 <span class="k">return</span> <span class="kp">false</span>
3808 <span class="k">ok</span>
3809 <span class="k">next</span>
3810 <span class="k">for</span> <span class="n">t</span> <span class="k">in</span> <span class="n">aStatus2</span>
3811 <span class="k">if</span> <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span>
3812 <span class="k">return</span> <span class="kp">false</span>
3813 <span class="k">ok</span>
3814 <span class="k">next</span>
3815 <span class="k">return</span> <span class="kp">true</span>
3817 <span class="k">Func</span> <span class="n">delay</span> <span class="n">x</span>
3818 <span class="n">nTime</span> <span class="o">=</span> <span class="n">x</span> <span class="o">*</span> <span class="mi">1000</span>
3819 <span class="n">oTest</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qTest</span>
3820 <span class="n">oTest</span><span class="p">.</span><span class="n">qsleep</span><span class="p">(</span><span class="n">nTime</span><span class="p">)</span>
3824 <img alt="Cards ゲーム" src="_images/ringqt_shot48.jpg" />
3825 <div class="admonition note">
3826 <p class="first admonition-title">注釈</p>
3827 <p class="last">前述のスクリーンショットではプレイヤーが‘5’番のカードを入手していますがスコアは加算されていません。
3828 これはほかのカードが不可視状態のときに‘5’番のカードを開いたからです!</p>
3830 <p>このスクリーンショットはモバイル機器 (Android) でゲームを実行しています。</p>
3831 <img alt="Cards ゲーム" src="_images/ringqt_shot52.jpg" />
3832 <div class="admonition note">
3833 <p class="first admonition-title">注釈</p>
3834 <p class="last">Qt を使うと同じアプリケーションをほかのモバイルシステムで実行できます。</p>
3837 <div class="section" id="index-58">
3838 <span id="id24"></span><h2>クラスとメソッドでデフォルトのイベントを使うには<a class="headerlink" href="#index-58" title="このヘッドラインへのパーマリンク">¶</a></h2>
3839 <p>この表ではクラス名、およびメソッドで使用するデフォルトのイベントについて説明しています。</p>
3840 <table border="1" class="docutils">
3845 <thead valign="bottom">
3846 <tr class="row-odd"><th class="head">クラス名</th>
3847 <th class="head">メソッドで使用するデフォルトのイベント</th>
3850 <tbody valign="top">
3851 <tr class="row-even"><td>QPushButton</td>
3852 <td>SetClickEvent()</td>
3854 <tr class="row-odd"><td>QAction</td>
3855 <td>SetClickEvent()</td>
3857 <tr class="row-even"><td>QLineEdit</td>
3858 <td>SetTextChangedEvent()</td>
3860 <tr class="row-odd"><td></td>
3861 <td>SetCursorPositionChangedEvent()</td>
3863 <tr class="row-even"><td></td>
3864 <td>SetEditingFinishedEvent()</td>
3866 <tr class="row-odd"><td></td>
3867 <td>SetReturnPressedEvent()</td>
3869 <tr class="row-even"><td></td>
3870 <td>SetSelectionChangedEvent()</td>
3872 <tr class="row-odd"><td></td>
3873 <td>SetTextEditedEvent()</td>
3875 <tr class="row-even"><td>QTextEdit</td>
3876 <td>SetCopyAvailableEvent()</td>
3878 <tr class="row-odd"><td></td>
3879 <td>SetCurrentCharFormatChangedEvent()</td>
3881 <tr class="row-even"><td></td>
3882 <td>SetCursorPositionChangedEvent()</td>
3884 <tr class="row-odd"><td></td>
3885 <td>SetRedoAvailableEvent()</td>
3887 <tr class="row-even"><td></td>
3888 <td>SetSelectionChangedEvent()</td>
3890 <tr class="row-odd"><td></td>
3891 <td>SetTextChangedEvent()</td>
3893 <tr class="row-even"><td></td>
3894 <td>SetUndoAvailableEvent()</td>
3896 <tr class="row-odd"><td>QListWidget</td>
3897 <td>SetCurrentItemChangedEvent()</td>
3899 <tr class="row-even"><td></td>
3900 <td>SetCurrentRowChangedEvent()</td>
3902 <tr class="row-odd"><td></td>
3903 <td>SetCurrentTextChangedEvent()</td>
3905 <tr class="row-even"><td></td>
3906 <td>SetItemActivatedEvent()</td>
3908 <tr class="row-odd"><td></td>
3909 <td>SetItemChangedEvent()</td>
3911 <tr class="row-even"><td></td>
3912 <td>SetItemClickedEvent()</td>
3914 <tr class="row-odd"><td></td>
3915 <td>SetItemDoubleClickedEvent()</td>
3917 <tr class="row-even"><td></td>
3918 <td>SetItemEnteredEvent()</td>
3920 <tr class="row-odd"><td></td>
3921 <td>SetItemPressedEvent()</td>
3923 <tr class="row-even"><td></td>
3924 <td>SetItemSelectionChangedEvent()</td>
3926 <tr class="row-odd"><td>QTreeView</td>
3927 <td>SetCollapseEvent()</td>
3929 <tr class="row-even"><td></td>
3930 <td>SetExpandedEvent()</td>
3932 <tr class="row-odd"><td></td>
3933 <td>SetActivatedEvent()</td>
3935 <tr class="row-even"><td></td>
3936 <td>SetClickedEvent()</td>
3938 <tr class="row-odd"><td></td>
3939 <td>SetDoubleClickedEvent()</td>
3941 <tr class="row-even"><td></td>
3942 <td>SetEnteredEvent()</td>
3944 <tr class="row-odd"><td></td>
3945 <td>SetPressedEvent()</td>
3947 <tr class="row-even"><td></td>
3948 <td>SetViewportEnteredEvent()</td>
3950 <tr class="row-odd"><td>QTreeWidget</td>
3951 <td>SetCollapsedEvent()</td>
3953 <tr class="row-even"><td></td>
3954 <td>SetExpandedEvent()</td>
3956 <tr class="row-odd"><td></td>
3957 <td>SetActivatedEvent()</td>
3959 <tr class="row-even"><td></td>
3960 <td>SetClickedEvent()</td>
3962 <tr class="row-odd"><td></td>
3963 <td>SetDoubleClickedEvent()</td>
3965 <tr class="row-even"><td></td>
3966 <td>SetEnteredEvent()</td>
3968 <tr class="row-odd"><td></td>
3969 <td>SetPressedEvent()</td>
3971 <tr class="row-even"><td></td>
3972 <td>SetViewportEnteredEvent()</td>
3974 <tr class="row-odd"><td></td>
3975 <td>SetCurrentItemChangedEvent()</td>
3977 <tr class="row-even"><td></td>
3978 <td>SetItemActivatedEvent()</td>
3980 <tr class="row-odd"><td></td>
3981 <td>SetItemChangedEvent()</td>
3983 <tr class="row-even"><td></td>
3984 <td>SetItemClickedEvent()</td>
3986 <tr class="row-odd"><td></td>
3987 <td>SetItemCollapsedEvent()</td>
3989 <tr class="row-even"><td></td>
3990 <td>SetItemDoubleClickedEvent()</td>
3992 <tr class="row-odd"><td></td>
3993 <td>SetItemEnteredEvent()</td>
3995 <tr class="row-even"><td></td>
3996 <td>SetItemExpandedEvent()</td>
3998 <tr class="row-odd"><td></td>
3999 <td>SetItemPressedEvent()</td>
4001 <tr class="row-even"><td></td>
4002 <td>SetItemSelectionChangedEvent()</td>
4004 <tr class="row-odd"><td>QComboBox</td>
4005 <td>SetActivatedEvent()</td>
4007 <tr class="row-even"><td></td>
4008 <td>SetCurrentIndexChangedEvent()</td>
4010 <tr class="row-odd"><td></td>
4011 <td>SetEditTextChangedEvent()</td>
4013 <tr class="row-even"><td></td>
4014 <td>SetHighlightedEvent()</td>
4016 <tr class="row-odd"><td>QTabWidget</td>
4017 <td>SetCurrentChangedEvent()</td>
4019 <tr class="row-even"><td></td>
4020 <td>SetTabCloseRequestedEvent()</td>
4022 <tr class="row-odd"><td>QTableWidget</td>
4023 <td>SetCellActivatedEvent()</td>
4025 <tr class="row-even"><td></td>
4026 <td>SetCellChangedEvent()</td>
4028 <tr class="row-odd"><td></td>
4029 <td>SetCellClickedEvent()</td>
4031 <tr class="row-even"><td></td>
4032 <td>SetCellDoubleClickedEvent()</td>
4034 <tr class="row-odd"><td></td>
4035 <td>SetCellEnteredEvent()</td>
4037 <tr class="row-even"><td></td>
4038 <td>SetCellPressedEvent()</td>
4040 <tr class="row-odd"><td></td>
4041 <td>SetCurrentCellChangedEvent()</td>
4043 <tr class="row-even"><td></td>
4044 <td>SetCurrentItemChangedEvent()</td>
4046 <tr class="row-odd"><td></td>
4047 <td>SetItemActivatedEvent()</td>
4049 <tr class="row-even"><td></td>
4050 <td>SetItemChangedEvent()</td>
4052 <tr class="row-odd"><td></td>
4053 <td>SetItemClickedEvent()</td>
4055 <tr class="row-even"><td></td>
4056 <td>SetItemDoubleClickedEvent()</td>
4058 <tr class="row-odd"><td></td>
4059 <td>SetItemEnteredEvent()</td>
4061 <tr class="row-even"><td></td>
4062 <td>SetItemPressedEvent()</td>
4064 <tr class="row-odd"><td></td>
4065 <td>SetItemSelectionChangedEvent()</td>
4067 <tr class="row-even"><td>QProgressBar</td>
4068 <td>SetValueChangedEvent()</td>
4070 <tr class="row-odd"><td>QSpinBox</td>
4071 <td>SetValueChangedEvent()</td>
4073 <tr class="row-even"><td>QSlider</td>
4074 <td>SetActionTriggeredEvent()</td>
4076 <tr class="row-odd"><td></td>
4077 <td>SetRangeChangedEvent()</td>
4079 <tr class="row-even"><td></td>
4080 <td>SetSliderMovedEvent()</td>
4082 <tr class="row-odd"><td></td>
4083 <td>SetSliderPressedEvent()</td>
4085 <tr class="row-even"><td></td>
4086 <td>SetSliderReleasedEvent()</td>
4088 <tr class="row-odd"><td></td>
4089 <td>SetValueChangedEvent()</td>
4091 <tr class="row-even"><td>QDial</td>
4092 <td>SetActionTriggeredEvent()</td>
4094 <tr class="row-odd"><td></td>
4095 <td>SetRangeChangedEvent()</td>
4097 <tr class="row-even"><td></td>
4098 <td>SetSliderMovedEvent()</td>
4100 <tr class="row-odd"><td></td>
4101 <td>SetSliderPressedEvent()</td>
4103 <tr class="row-even"><td></td>
4104 <td>SetSliderReleasedEvent()</td>
4106 <tr class="row-odd"><td></td>
4107 <td>SetValueChangedEvent()</td>
4109 <tr class="row-even"><td>QWebView</td>
4110 <td>SetLoadFinishedEvent()</td>
4112 <tr class="row-odd"><td></td>
4113 <td>SetLoadProgressEvent()</td>
4115 <tr class="row-even"><td></td>
4116 <td>SetLoadStartedEvent()</td>
4118 <tr class="row-odd"><td></td>
4119 <td>SetSelectionChangedEvent()</td>
4121 <tr class="row-even"><td></td>
4122 <td>SetTitleChangedEvent()</td>
4124 <tr class="row-odd"><td></td>
4125 <td>SetUrlChangedEvent()</td>
4127 <tr class="row-even"><td>QCheckBox</td>
4128 <td>SetStateChangedEvent()</td>
4130 <tr class="row-odd"><td></td>
4131 <td>SetClickedEvent()</td>
4133 <tr class="row-even"><td></td>
4134 <td>SetPressedEvent()</td>
4136 <tr class="row-odd"><td></td>
4137 <td>SetReleasedEvent()</td>
4139 <tr class="row-even"><td></td>
4140 <td>SetToggledEvent()</td>
4142 <tr class="row-odd"><td>QRadioButton</td>
4143 <td>SetClickedEvent()</td>
4145 <tr class="row-even"><td></td>
4146 <td>SetPressedEvent()</td>
4148 <tr class="row-odd"><td></td>
4149 <td>SetReleasedEvent()</td>
4151 <tr class="row-even"><td></td>
4152 <td>SetToggledEvent()</td>
4154 <tr class="row-odd"><td>QButtonGroup</td>
4155 <td>SetButtonClickedEvent()</td>
4157 <tr class="row-even"><td></td>
4158 <td>SetButtonPressedEvent()</td>
4160 <tr class="row-odd"><td></td>
4161 <td>SetButtonReleasedEvent()</td>
4163 <tr class="row-even"><td>QVideoWidget</td>
4164 <td>SetBrightnessChangedEvent()</td>
4166 <tr class="row-odd"><td></td>
4167 <td>SetContrastChangedEvent()</td>
4169 <tr class="row-even"><td></td>
4170 <td>SetFullScreenChangedEvent()</td>
4172 <tr class="row-odd"><td></td>
4173 <td>SetHueChangedEvent()</td>
4175 <tr class="row-even"><td></td>
4176 <td>SetSaturationChangedEvent()</td>
4178 <tr class="row-odd"><td>QTimer</td>
4179 <td>SetTimeoutEvent()</td>
4181 <tr class="row-even"><td>QTcpServer</td>
4182 <td>SetAcceptErrorEvent()</td>
4184 <tr class="row-odd"><td></td>
4185 <td>SetNewConnectionEvent()</td>
4187 <tr class="row-even"><td>QIODevice</td>
4188 <td>SetAboutToCloseEvent()</td>
4190 <tr class="row-odd"><td></td>
4191 <td>SetBytesWrittenEvent()</td>
4193 <tr class="row-even"><td></td>
4194 <td>SetReadChannelFinishedEvent()</td>
4196 <tr class="row-odd"><td></td>
4197 <td>SetReadyReadEvent()</td>
4199 <tr class="row-even"><td>QAbstractSocket</td>
4200 <td>SetConnectedEvent()</td>
4202 <tr class="row-odd"><td></td>
4203 <td>SetDisconnectedEvent()</td>
4205 <tr class="row-even"><td></td>
4206 <td>SetErrorEvent()</td>
4208 <tr class="row-odd"><td></td>
4209 <td>SetHostFoundEvent()</td>
4211 <tr class="row-even"><td></td>
4212 <td>SetProxyAuthenticationRequiredEvent()</td>
4214 <tr class="row-odd"><td></td>
4215 <td>SetStateChangedEvent()</td>
4217 <tr class="row-even"><td>QTcpSocket</td>
4218 <td>SetConnectedEvent()</td>
4220 <tr class="row-odd"><td></td>
4221 <td>SetDisconnectedEvent()</td>
4223 <tr class="row-even"><td></td>
4224 <td>SetErrorEvent()</td>
4226 <tr class="row-odd"><td></td>
4227 <td>SetHostFoundEvent()</td>
4229 <tr class="row-even"><td></td>
4230 <td>SetProxyAuthenticationRequiredEvent()</td>
4232 <tr class="row-odd"><td></td>
4233 <td>SetStateChangedEvent()</td>
4235 <tr class="row-even"><td></td>
4236 <td>SetAboutToCloseEvent()</td>
4238 <tr class="row-odd"><td></td>
4239 <td>SetBytesWrittenEvent()</td>
4241 <tr class="row-even"><td></td>
4242 <td>SetReadChannelFinishedEvent()</td>
4244 <tr class="row-odd"><td></td>
4245 <td>SetReadyReadEvent()</td>
4247 <tr class="row-even"><td>QColorDialog</td>
4248 <td>SetColorSelectedEvent()</td>
4250 <tr class="row-odd"><td></td>
4251 <td>SetCurrentColorChangedEvent()</td>
4253 <tr class="row-even"><td>QNetworkAccessManager</td>
4254 <td>SetFinishedEvent()</td>
4256 <tr class="row-odd"><td>QThread</td>
4257 <td>SetStartedEvent()</td>
4259 <tr class="row-even"><td></td>
4260 <td>SetFinishedEvent()</td>
4265 <div class="section" id="index-59">
4266 <span id="id25"></span><h2>イベントでイベントフィルタによるメソッド<a class="headerlink" href="#index-59" title="このヘッドラインへのパーマリンク">¶</a></h2>
4267 <p>RingQt はイベントフィルタを使用することにより、新しいクラス QAllEvents を定義しています。</p>
4268 <p>この表は利用可能なメソッドです。</p>
4269 <table border="1" class="docutils">
4274 <thead valign="bottom">
4275 <tr class="row-odd"><th class="head">メソッドで取得する仮引数</th>
4276 <th class="head">クラス名</th>
4279 <tbody valign="top">
4280 <tr class="row-even"><td>getKeyCode() –> Number</td>
4283 <tr class="row-odd"><td>getx() –> Number</td>
4286 <tr class="row-even"><td>gety() –> Number</td>
4289 <tr class="row-odd"><td>getglobalx() –> Number</td>
4292 <tr class="row-even"><td>getglobaly() –> Number</td>
4295 <tr class="row-odd"><td>getbutton() –> Number</td>
4298 <tr class="row-even"><td>getbuttons() –> Number</td>
4303 <p>この表はイベントで使用するメソッドを解説しています。</p>
4304 <table border="1" class="docutils">
4309 <thead valign="bottom">
4310 <tr class="row-odd"><th class="head">メソッド名</th>
4311 <th class="head">クラス名</th>
4314 <tbody valign="top">
4315 <tr class="row-even"><td>setKeyPressEvent(cEvent)</td>
4318 <tr class="row-odd"><td>setMouseButtonPressEvent(cEvent)</td>
4321 <tr class="row-even"><td>setMouseButtonReleaseEvent(cEvent)</td>
4324 <tr class="row-odd"><td>setMouseButtonDblClickEvent(cEvent)</td>
4327 <tr class="row-even"><td>setMouseMoveEvent(cEvent)</td>
4330 <tr class="row-odd"><td>setCloseEvent(cEvent)</td>
4333 <tr class="row-even"><td>setContextMenuEvent(cEvent)</td>
4336 <tr class="row-odd"><td>setDragEnterEvent(cEvent)</td>
4339 <tr class="row-even"><td>setDragLeaveEvent(cEvent)</td>
4342 <tr class="row-odd"><td>setDragMoveEvent(cEvent)</td>
4345 <tr class="row-even"><td>setDropEvent(cEvent)</td>
4348 <tr class="row-odd"><td>setEnterEvent(cEvent)</td>
4351 <tr class="row-even"><td>setFocusInEvent(cEvent)</td>
4354 <tr class="row-odd"><td>setFocusOutEvent(cEvent)</td>
4357 <tr class="row-even"><td>setKeyReleaseEvent(cEvent)</td>
4360 <tr class="row-odd"><td>setLeaveEvent(cEvent)</td>
4363 <tr class="row-even"><td>setNonClientAreaMouseButtonDblClickEvent(cEvent)</td>
4366 <tr class="row-odd"><td>setNonClientAreaMouseButtonPressEvent(cEvent)</td>
4369 <tr class="row-even"><td>setNonClientAreaMouseButtonReleaseEvent(cEvent)</td>
4372 <tr class="row-odd"><td>setNonClientAreaMouseMoveEvent(cEvent)</td>
4375 <tr class="row-even"><td>setMoveEvent(cEvent)</td>
4378 <tr class="row-odd"><td>setResizeEvent(cEvent)</td>
4381 <tr class="row-even"><td>setWindowActivateEvent(cEvent)</td>
4384 <tr class="row-odd"><td>setWindowBlockedEvent(cEvent)</td>
4387 <tr class="row-even"><td>setWindowDeactivateEvent(cEvent)</td>
4390 <tr class="row-odd"><td>setWindowStateChangeEvent(cEvent)</td>
4393 <tr class="row-even"><td>setWindowUnblockedEvent(cEvent)</td>
4399 <div class="section" id="qt-ringqt">
4400 <span id="index-60"></span><h2>Qt と RingQt の違い<a class="headerlink" href="#qt-ringqt" title="このヘッドラインへのパーマリンク">¶</a></h2>
4401 <ol class="arabic simple">
4402 <li>RingQt ではイベントの実行用コードを設定するために単純なメソッドを使用します。</li>
4405 <div class="highlight-none"><div class="highlight"><pre>Set<Event_Name>Event(cEventCode)
4408 <ol class="arabic simple" start="2">
4409 <li>RingQt では Ring キーワードとの衝突を回避するためにメソッド名を変更しています。</li>
4411 <p>この表は変更点の解説です。</p>
4412 <table border="1" class="docutils">
4418 <thead valign="bottom">
4419 <tr class="row-odd"><th class="head">クラス名</th>
4420 <th class="head">Qt メソッド名</th>
4421 <th class="head">RingQt メソッド名</th>
4424 <tbody valign="top">
4425 <tr class="row-even"><td>QWebView</td>
4429 <tr class="row-odd"><td>QMediaPlaylist</td>
4433 <tr class="row-even"><td>QMediaPlaylist</td>
4437 <tr class="row-odd"><td>QPainter</td>
4441 <tr class="row-even"><td>QPicture</td>
4445 <tr class="row-odd"><td>QLineEdit</td>
4449 <tr class="row-even"><td>QDialog</td>
4453 <tr class="row-odd"><td>QTextDocument</td>
4457 <tr class="row-even"><td>QTextBlock</td>
4461 <tr class="row-odd"><td>QSqlQuery</td>
4465 <tr class="row-even"><td>QImage</td>
4469 <tr class="row-odd"><td>QNetworkAccessManager</td>
4473 <tr class="row-even"><td>QNetworkAccessManager</td>
4477 <tr class="row-odd"><td>QThread</td>
4479 <td>exitfromthread</td>
4481 <tr class="row-even"><td>QRegularExpressionMatchIterator</td>
4485 <tr class="row-odd"><td>QCamera</td>
4492 <div class="section" id="ringqt-qt">
4493 <span id="index-61"></span><h2>RingQt クラスおよび Qt の取扱説明書<a class="headerlink" href="#ringqt-qt" title="このヘッドラインへのパーマリンク">¶</a></h2>
4494 <p>Qt 取扱説明書 : <a class="reference external" href="http://doc.qt.io/qt-5/classes.html">http://doc.qt.io/qt-5/classes.html</a></p>
4495 <p>対応しているクラスとメソッドについては “RingQt クラスとメソッドのリファレンス” の章を参照してください。</p>
4497 <div class="section" id="index-62">
4498 <span id="id26"></span><h2>新しいクラス名 - 1 からインデックスを開始<a class="headerlink" href="#index-62" title="このヘッドラインへのパーマリンク">¶</a></h2>
4499 <p>RingQt には新しいクラスが追加されています - 別バージョンのクラス名は小文字 “q” で開始されません。
4500 また GUI コントロールなど扱うときにインデックスが 1 から開始するようにメソッドを更新してあります。</p>
4504 <li>TableWidget</li>
4507 <p>前述のクラスは guilib.ring の System.GUI パッケージに実装されています:</p>
4509 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"guilib.ring"</span>
4511 <span class="k">import</span> <span class="n">System</span><span class="p">.</span><span class="n">GUI</span>
4514 <p>これは以前のコードに一切影響を与えません。
4515 つまり Ring の規則と整合性がある優れたコードへの第三の選択です。</p>
4516 <p>またフォームデザイナーは、クラス間で「インデックスを 0 から開始」
4517 または「インデックスを 1 から開始」を選択肢を使用するために更新しました。</p>
4518 <p>用例 (フォームデザイナーを使用)</p>
4519 <ol class="arabic simple">
4520 <li><a class="reference external" href="https://github.com/ring-lang/ring/blob/master/applications/formdesigner/tests/indexstart/indexstartView.ring">https://github.com/ring-lang/ring/blob/master/applications/formdesigner/tests/indexstart/indexstartView.ring</a></li>
4521 <li><a class="reference external" href="https://github.com/ring-lang/ring/blob/master/applications/formdesigner/tests/indexstart/indexstartController.ring">https://github.com/ring-lang/ring/blob/master/applications/formdesigner/tests/indexstart/indexstartController.ring</a></li>
4524 <div class="section" id="weblib-guilib">
4525 <span id="index-63"></span><h2>WebLib および GUILib によるレポートの作成方法<a class="headerlink" href="#weblib-guilib" title="このヘッドラインへのパーマリンク">¶</a></h2>
4526 <p>WebLib には HtmlPage クラスがあります。</p>
4527 <p>このクラスにより WebLib と GUILib で手軽にレポートを作成できます。</p>
4529 <div class="highlight-ring"><div class="highlight"><pre><span class="k">load</span> <span class="s">"stdlib.ring"</span>
4530 <span class="k">load</span> <span class="s">"weblib.ring"</span>
4531 <span class="k">load</span> <span class="s">"guilib.ring"</span>
4533 <span class="k">import</span> <span class="n">System</span><span class="p">.</span><span class="n">Web</span>
4534 <span class="k">import</span> <span class="n">System</span><span class="p">.</span><span class="n">GUI</span>
4536 <span class="k">new</span> <span class="n">qApp</span> <span class="p">{</span>
4537 <span class="n">open_window</span><span class="p">(:</span><span class="n">CustomersReportController</span><span class="p">)</span>
4538 <span class="n">exec</span><span class="p">()</span>
4539 <span class="p">}</span>
4541 <span class="k">class</span> <span class="n">CustomersReportController</span>
4543 <span class="n">oView</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CustomersReportView</span>
4545 <span class="k">func</span> <span class="n">Start</span>
4546 <span class="n">CreateReport</span><span class="p">()</span>
4548 <span class="k">func</span> <span class="n">CreateReport</span>
4549 <span class="n">mypage</span> <span class="o">=</span> <span class="k">new</span> <span class="n">HtmlPage</span> <span class="p">{</span>
4550 <span class="n">h1</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Customers Report"</span><span class="p">)</span> <span class="p">}</span>
4551 <span class="n">Table</span>
4552 <span class="p">{</span>
4553 <span class="n">style</span> <span class="o">=</span> <span class="n">stylewidth</span><span class="p">(</span><span class="s">"100%"</span><span class="p">)</span> <span class="o">+</span> <span class="n">stylegradient</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
4554 <span class="n">TR</span>
4555 <span class="p">{</span>
4556 <span class="n">TD</span> <span class="p">{</span> <span class="n">WIDTH</span><span class="o">=</span><span class="s">"10%"</span>
4557 <span class="n">text</span><span class="p">(</span><span class="s">"Customers Count : "</span> <span class="p">)</span> <span class="p">}</span>
4558 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span> <span class="p">(</span><span class="mi">100</span><span class="p">)</span> <span class="p">}</span>
4559 <span class="p">}</span>
4560 <span class="p">}</span>
4561 <span class="n">Table</span>
4562 <span class="p">{</span>
4563 <span class="n">style</span> <span class="o">=</span> <span class="n">stylewidth</span><span class="p">(</span><span class="s">"100%"</span><span class="p">)</span> <span class="o">+</span> <span class="n">stylegradient</span><span class="p">(</span><span class="mi">26</span><span class="p">)</span>
4564 <span class="n">TR</span>
4565 <span class="p">{</span>
4566 <span class="n">style</span> <span class="o">=</span> <span class="n">stylewidth</span><span class="p">(</span><span class="s">"100%"</span><span class="p">)</span> <span class="o">+</span>
4567 <span class="n">stylegradient</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span>
4568 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Name "</span> <span class="p">)</span> <span class="p">}</span>
4569 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Age"</span> <span class="p">)</span> <span class="p">}</span>
4570 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Country"</span> <span class="p">)</span> <span class="p">}</span>
4571 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Job"</span> <span class="p">)</span> <span class="p">}</span>
4572 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Company"</span> <span class="p">)</span> <span class="p">}</span>
4573 <span class="p">}</span>
4574 <span class="k">for</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="mi">100</span>
4575 <span class="n">TR</span>
4576 <span class="p">{</span>
4577 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Test"</span> <span class="p">)</span> <span class="p">}</span>
4578 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"30"</span> <span class="p">)</span> <span class="p">}</span>
4579 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Egypt"</span> <span class="p">)</span> <span class="p">}</span>
4580 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Sales"</span> <span class="p">)</span> <span class="p">}</span>
4581 <span class="n">TD</span> <span class="p">{</span> <span class="n">text</span><span class="p">(</span><span class="s">"Future"</span> <span class="p">)</span> <span class="p">}</span>
4582 <span class="p">}</span>
4583 <span class="k">next</span>
4584 <span class="p">}</span>
4585 <span class="p">}</span>
4586 <span class="n">write</span><span class="p">(</span><span class="s">"report.html"</span><span class="p">,</span><span class="n">mypage</span><span class="p">.</span><span class="n">output</span><span class="p">())</span>
4588 <span class="k">func</span> <span class="n">PrintEvent</span>
4589 <span class="n">printer1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">qPrinter</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
4590 <span class="n">setoutputformat</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
4591 <span class="n">setoutputfilename</span><span class="p">(</span><span class="s">"report.pdf"</span><span class="p">)</span>
4592 <span class="p">}</span>
4593 <span class="n">oView</span> <span class="p">{</span>
4594 <span class="n">web</span><span class="p">.</span><span class="n">print</span><span class="p">(</span><span class="n">printer1</span><span class="p">)</span>
4595 <span class="n">web</span><span class="p">.</span><span class="n">show</span><span class="p">()</span>
4596 <span class="p">}</span>
4597 <span class="n">system</span> <span class="p">(</span><span class="s">"report.pdf"</span><span class="p">)</span>
4599 <span class="k">class</span> <span class="n">CustomersReportView</span>
4601 <span class="n">win</span> <span class="o">=</span> <span class="k">new</span> <span class="n">window</span><span class="p">()</span> <span class="p">{</span>
4602 <span class="n">setwindowtitle</span><span class="p">(</span><span class="s">"Report Window"</span><span class="p">)</span>
4603 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">500</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
4604 <span class="n">web</span> <span class="o">=</span> <span class="k">new</span> <span class="n">webview</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
4605 <span class="n">setgeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">1000</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
4606 <span class="n">loadpage</span><span class="p">(</span><span class="k">new</span> <span class="n">qurl</span><span class="p">(</span><span class="s">"file:///"</span><span class="o">+</span>
4607 <span class="n">currentdir</span><span class="p">()</span><span class="o">+</span><span class="s">"/report.html"</span><span class="p">))</span>
4608 <span class="p">}</span>
4609 <span class="k">new</span> <span class="n">pushbutton</span><span class="p">(</span><span class="n">win</span><span class="p">)</span> <span class="p">{</span>
4610 <span class="n">setGeometry</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">20</span><span class="p">,</span><span class="mi">100</span><span class="p">,</span><span class="mi">30</span><span class="p">)</span>
4611 <span class="n">settext</span><span class="p">(</span><span class="s">"Print"</span><span class="p">)</span>
4612 <span class="n">setclickevent</span><span class="p">(</span><span class="n">Method</span><span class="p">(:</span><span class="n">PrintEvent</span><span class="p">))</span>
4613 <span class="p">}</span>
4614 <span class="n">showMaximized</span><span class="p">()</span>
4615 <span class="p">}</span>
4619 <img alt="顧客報告書" src="_images/ring15reportshot.png" />
4627 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
4628 <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
4630 <li><a class="reference internal" href="#">デスクトップとモバイル開発 (RingQt)</a><ul>
4631 <li><a class="reference internal" href="#gui">はじめての GUI アプリケーション</a></li>
4632 <li><a class="reference internal" href="#index-2">イベントループ</a></li>
4633 <li><a class="reference internal" href="#index-3">レイアウトの用法</a></li>
4634 <li><a class="reference internal" href="#qtextedit">QTextEdit クラスの用法</a></li>
4635 <li><a class="reference internal" href="#qlistwidget">QListWidget クラスの用法</a></li>
4636 <li><a class="reference internal" href="#qtreeview-qfilesystemmodel">QTreeView および QFileSystemModel の用法</a></li>
4637 <li><a class="reference internal" href="#qtreewidget-qtreewidgetitem">QTreeWidget と QTreeWidgetItem の用法</a></li>
4638 <li><a class="reference internal" href="#qcombobox">QComboBox クラスの用法</a></li>
4639 <li><a class="reference internal" href="#index-9">メニューバーの作成方法</a></li>
4640 <li><a class="reference internal" href="#index-10">コンテキストメニュー</a></li>
4641 <li><a class="reference internal" href="#index-11">ツールバーの作成方法</a></li>
4642 <li><a class="reference internal" href="#index-12">ステータスバーの作成方法</a></li>
4643 <li><a class="reference internal" href="#qdockwidget">QDockWidget の用法</a></li>
4644 <li><a class="reference internal" href="#qtabwidget">QTabWidget の用法</a></li>
4645 <li><a class="reference internal" href="#qtablewidget">QTableWidget の用法</a></li>
4646 <li><a class="reference internal" href="#qprogressbar">QProgressBar の用法</a></li>
4647 <li><a class="reference internal" href="#qspinbox">QSpinBox の用法</a></li>
4648 <li><a class="reference internal" href="#qslider">QSlider の用法</a></li>
4649 <li><a class="reference internal" href="#qdateedit">QDateEdit の用法</a></li>
4650 <li><a class="reference internal" href="#qdial">QDial の用法</a></li>
4651 <li><a class="reference internal" href="#qwebview">QWebView の用法</a></li>
4652 <li><a class="reference internal" href="#qcheckbox">QCheckBox の用法</a></li>
4653 <li><a class="reference internal" href="#qradiobutton-qbuttongroup">QRadioButton と QButtonGroup の用法</a></li>
4654 <li><a class="reference internal" href="#qlabel">QLabel へハイパーリンクを追加するには</a></li>
4655 <li><a class="reference internal" href="#qvideowidget-qmediaplayer">QVideoWidget と QMediaPlayer</a></li>
4656 <li><a class="reference internal" href="#qframe">QFrame の用法</a></li>
4657 <li><a class="reference internal" href="#index-27">QLabel による画像の表示方法</a></li>
4658 <li><a class="reference internal" href="#index-28">メニューバーとスタイルシートの用例</a></li>
4659 <li><a class="reference internal" href="#qlineedit-qmessagebox">QLineEdit イベントと QMessageBox</a></li>
4660 <li><a class="reference internal" href="#index-30">そのほかのウイジェットイベント</a></li>
4661 <li><a class="reference internal" href="#qtimer">QTimer クラスの用法</a></li>
4662 <li><a class="reference internal" href="#index-32">QProgressBar およびタイマーの用法</a></li>
4663 <li><a class="reference internal" href="#index-33">QLabel による寸法変更画像の表示方法</a></li>
4664 <li><a class="reference internal" href="#qfiledialog">QFileDialog クラスの用法</a></li>
4665 <li><a class="reference internal" href="#qpainter">QPainter による描画方法</a></li>
4666 <li><a class="reference internal" href="#qprinter">QPrinter による印刷方法</a></li>
4667 <li><a class="reference internal" href="#qprintpreviewdialog">QPrintPreviewDialog の用法</a></li>
4668 <li><a class="reference internal" href="#index-38">複数ウィンドウの作成方法</a></li>
4669 <li><a class="reference internal" href="#index-39">音声の再生</a></li>
4670 <li><a class="reference internal" href="#qcolordialog">QColorDialog クラスの用法</a></li>
4671 <li><a class="reference internal" href="#qlcdnumber">qLCDNumber クラスの用法</a></li>
4672 <li><a class="reference internal" href="#index-42">移動可能ラベルの用例</a></li>
4673 <li><a class="reference internal" href="#qmessagebox">QMessagebox の用例</a></li>
4674 <li><a class="reference internal" href="#qinputdialog">QInputDialog クラスの用法</a></li>
4675 <li><a class="reference internal" href="#index-45">ダイアログ関数</a></li>
4676 <li><a class="reference internal" href="#index-46">キー入力とマウス移動イベント</a></li>
4677 <li><a class="reference internal" href="#index-47">マウスによるオブジェクトの移動方法</a></li>
4678 <li><a class="reference internal" href="#index-48">GUI クラスからの継承</a></li>
4679 <li><a class="reference internal" href="#qdesktopwidget">QDesktopWidget クラスの用法</a></li>
4680 <li><a class="reference internal" href="#index-50">テキストの回転</a></li>
4681 <li><a class="reference internal" href="#index-51">フォーカスの変更</a></li>
4682 <li><a class="reference internal" href="#index-52">正規表現</a></li>
4683 <li><a class="reference internal" href="#index-53">シンプルなクライアントとサーバーの用例</a></li>
4684 <li><a class="reference internal" href="#index-54">動的オブジェクト</a></li>
4685 <li><a class="reference internal" href="#weight-history">Weight History アプリケーション</a></li>
4686 <li><a class="reference internal" href="#notepad">Notepad アプリケーション</a></li>
4687 <li><a class="reference internal" href="#cards">Cards ゲーム</a></li>
4688 <li><a class="reference internal" href="#index-58">クラスとメソッドでデフォルトのイベントを使うには</a></li>
4689 <li><a class="reference internal" href="#index-59">イベントでイベントフィルタによるメソッド</a></li>
4690 <li><a class="reference internal" href="#qt-ringqt">Qt と RingQt の違い</a></li>
4691 <li><a class="reference internal" href="#ringqt-qt">RingQt クラスおよび Qt の取扱説明書</a></li>
4692 <li><a class="reference internal" href="#index-62">新しいクラス名 - 1 からインデックスを開始</a></li>
4693 <li><a class="reference internal" href="#weblib-guilib">WebLib および GUILib によるレポートの作成方法</a></li>
4700 <p class="topless"><a href="ringraylib.html"
4701 title="前の章へ">RingRayLib の用法</a></p>
4703 <p class="topless"><a href="qtmobile.html"
4704 title="次の章へ">モバイル用 RingQt アプリケーションのビルド方法</a></p>
4705 <div role="note" aria-label="source link">
4707 <ul class="this-page-menu">
4708 <li><a href="_sources/qt.txt"
4709 rel="nofollow">ソースコードを表示</a></li>
4713 <form action="search.html" method="get">
4714 <input type="text" name="q" placeholder="Search" />
4715 <input type="hidden" name="check_keywords" value="yes" />
4716 <input type="hidden" name="area" value="default" />
4721 <div class="clearer"></div>
4723 <footer class="footer">
4724 <p class="pull-right">
4725 <a href="_sources/qt.txt"
4726 rel="nofollow">Page Source</a>
4727 <a href="#">Back to Top</a></p>
4729 © Copyright 2016-2020, Ring Team.<br/>
4730 Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6. / astropy-sphinx-theme 1.1 (isVowel)