[Armadillo:05774] Re: Armadillo-440 GUI 開発ツール

MasakiAoyama email@hidden
2010年 9月 6日 (月) 13:28:18 JST


青山です。

私も500FXでGtk+を使って、演算処理の途中経過を表示させるための簡単な画面ア
プリを作成しましたが、次のようなところで引っかかって苦労したのでご参考まで。

問題
子スレッドから画面のリスト(一覧表)を更新しようとすると、再描画がうまくいか
なかったり、何度かやってるうちに落ちる。
XInitThreads()を最初に呼んでおけばマルチスレッドでもXlibを使える、みたいな
ことがwebのどこかに書いてあったのですが、うまくいきませんでした。

解決策
結局、画面の再描画は親スレッドでgtk_timeout_add()を使ってタイマイベントを
駆動し、そこでグローバル変数のフラグを読んでそれに合わせて画面を描き換える。

ボタン等のオブジェクトにイベント関数を作ってそこから処理させるだけなら、
問題ないですが、子スレッドから画面表示をいじくりたいようなケースを想定して
いるなら注意してください。(Winプログラムならデリゲートを使って値を渡し、
メインスレッド側で画面オブジェクトを書き換えなければならないというのと同じ
ですね)

Gtk+は情報や、参考になるようなソースはあんまり見つからなかったので思った以
上に時間かかってしまいました。

動かすまでの参考としては、500FXを使った例であればSoftwareDesign2009年2月号
の記事(SoftwareDesign総集編2000-2009というDVDROM付きの本を買いました)

それ以外の資料としては「入門GTK+:C言語で学ぶ、はじめてのGUIプログラミング」
を参考にしました。GTK+の書籍としては新しいので良いと思います。他にある書籍は、
10年以上前のもので、GTK+のバージョンも古くて今は使わなくなっているものを使っ
て解説しているような内容でした。

Qtのほうは全然知りません。

以上

"email@hidden" <email@hidden> wrote:

> お世話になっております。
> 高野@intermindと申します。
> (Armadillo,Linux共にまだまだビギナーです。)
> 
> Armadillo-440のGUI開発用の環境をどうするか検討中でして、もし可能でしたらご教授ください。
> 当方WindowsXP 上の VMware Player + ATDE3が開発環境となります。
> 経験した言語は、C,C++,Basicです。
> 
> 
> webで調べましたところ、GUIアプリの開発環境としてはQt+(言語)かGTKが一般的(?)のように認識しました。
> 
> Armadillo-440のサンプルプログラムはGTKで作成されているよう(に見えます)ですが、このGTKを使用した理由はどのような観点からとなるのでしょうか?
> GTKで作成したGUI画面を、最終的にArmadillo-440で動作(表示)させるための道筋が分りません。
> 何か、参考となる資料がありましたら、教えて頂けますでしょうか。
> 
> 
> 現段階ではQtかGTKの何れかを選択することになるかと思ってますが、Qt・GTKの長所・欠点を教えてください。
> 
> 
> ※上記ご質問内容が、当MLのに適切でないようでしたら申し訳御座いません。
> よろしくお願いします。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


----------------------------------
株式会社 レイトロン 新事業推進部
 青山 真樹  email@hidden




armadillo メーリングリストの案内