【C++】マイナーGUIツールキット

■ このスレッドは過去ログ倉庫に格納されています
NGNG
とにかくdat落ち必死なこの話題をどうかひとつ。

関連スレ:
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/
NGNG
Fox
http://www.fox-toolkit.org/

SOL++
http://home.att.ne.jp/green/atlan/index.html

たけのこ
http://www5.plala.or.jp/antun/bamboo/shoot/index.html
NGNG
GUI Toolkit Framework Page
http://www.geocities.com/SiliconValley/Vista/7184/guitool.html
NGNG
OpenAmulet
http://www.openip.org/

Fltk
http://www.fltk.org/

V
http://www.objectcentral.com/vgui/vgui.htm
NGNG
An embedded Linux application environment. Chosen by IBM and Sharp.
http://www.trolltech.com/products/qtopia/
組み込み用Qt
NGNG
人が来なくたってsage保守し続けるからな!
ネタがないときは俺がサンプルコード書きまくるからな!
NGNG
【Qtopia関連】
SLライブラリドキュメント
http://more.sbc.co.jp/sl_j/doc/reference.htm
Qtopia (パームトップ環境)
ttp://www.trolltech.com/developer/download/qtopia.html
Qt/Embedded (GUIツールキット)
ttp://www.trolltech.com/developer/download/qt-embedded.html
Qt Reference Documentation
ttp://doc.trolltech.com/2.3/
Qt リファレンス翻訳
ttp://www.kde.gr.jp/~ichi/qtdoc-ja.html

【開発環境整備】
ZaurusZone Howtos
ttp://www.zauruszone.com/howtos/
Unofficial Zaurus FAQ
ttp://www.newbreedsoftware.com/zaurus-faq/
Zaurus Development Version of DemoLinux bootable CDROM (人柱募集中)
ttp://www.pellicosystems.com/devolinux/zdevolinux/
NGNG
【開発プロジェクト】
Zaurus-ja (日本語環境整備)
http://zaurus-ja.sourceforge.jp/
Zaurus Open Source Development
http://sourceforge.net/projects/zaurus/
OpenZaurus
http://openzaurus.sourceforge.net/
Open Palmtop Integrated Environment (Opie)
ttp://opie.handhelds.org/
GPE: The GPE Palmtop Environment
ttp://gpe.handhelds.org/
Debian Zaurus
ttp://people.debian.org/~mdz/zaurus/

【ソフトウェア】
IpkgFind (バイナリパッケージ検索)
ttp://ipkgfind.handhelds.org/
Zaurus Software Index
ttp://killefiz.de/zaurus/
Konqueror/Embedded (Webブラウザ)
ttp://www.konqueror.org/embedded.html
布目 for Qtopia 1.0 (日本語手書き入力)
ttp://www.sikigami.com/nunome-Qtopia-1.0/

【その他】
Zaurus.LovesLinux.com (ニュース)
ttp://zaurus.loveslinux.com/
Linux Links (リンク集)
ttp://www.linuxlinks.com/PDA/Zaurus/
NGNG
知らんのもいくつかあるな。
是非続けてくれ。
NGNG
NTK
http://ntk.yi.org/
NGNG
GUI Toolkits for The X Window System
http://freshmeat.net/articles/view/928

X Development Tools
http://cbbrowne.com/info/xlibs.html

WindowMaker の GUI widget セット WINGs
http://members.ozemail.com.au/~crn/wm/wings.html

C++ じゃなくてスマソ。WINGs 単体で使えないかな。
12デフォルトの名無しさん
垢版 |
NGNG
期待age
Non-GUI の、フレームワーク系ライブラリって混ぜちゃダメ?

MUSCLE: Multi User Server Client Linkage Environment
http://www.lcscanada.com/muscle/
NGNG
皆様情報サンクストン
非C++、Non-GUIもщ(・д・)щバッチコイ!!
NGNG
JLIB - A C++ porting of java.awt.*
http://codeproject.com/library/jlib.asp
NGNG
winBe: The BeOS API on Win32
http://homepage.ntlworld.com/nathaniel.cross/
NGNG
>>1
そろそろネタ切れだろ
そろそろ話題振ってくれよ
NGNG
>>16
まぁ基本的に>>1は脇役だからな!

コード例とか追加情報が欲しいライブラリをリクエストしてくれると助かるな!
そしたら>>1が勝手に色々知らべてくるからな!

更に>>16が理想のGUIライブラリなんかについて
語ってくれたりすると嬉しいかもな!
NGNG
ちなみに>>1はboostのようなモダン設計のGUIライブラリを
探しているのだが、中々見付からないんだよな!
NGNG
>>18
MLで話題にはなっているみたい。
詳しくは見てないので、どなたか結論教えて〜。
[boost] GUI/GDI template library
http://lists.boost.org/MailArchives/boost/msg49854.php
NGNG
>>19
Boost infoにも載ってたな!
http://user.ecc.u-tokyo.ac.jp/~s31552/wp/boost/memo/

その後E. Gladyshevはサンプルコードを書いて、
(http://lists.boost.org/MailArchives/boost/msg50043.php)
さらにそいつを↓のプロジェクトに発展させた模様だ!

Notus
http://sourceforge.net/projects/notus/

>Modern GUI/GDI template library.
>Notus is an attempt to build a portable GUI framework
>using design concepts of modern C++ libraries such as STL and boost.

policyは今のところWin32とwxWindowsが用意されてるみたいだな!
まだまだ発展途上だが、wxのモダンなラッパーとしても期待できるかもな!
こいつは要チェックや!サンプルコードはしばし待て!
NGNG
GUI ツールキットのイベントループの実装を説明している資料って無いでしょうか。
コールバックの登録とか、イベントの通知とか。

fltk と fox のソースを試しに眺めてみましたが、select とか poll してるなぁー
って感じで、いまいちよく分からなかった。。。

唯一見つけたのがこれです。
ttp://www.asahi-net.or.jp/~cv8t-hdk/fox/fox-doc.ja/faq.ja.html#CALLBACKS
NGNG
>>21 と絡むのかな?絡まないのかな?

GUIからのイベントを捕まえるのに、大きく分けて
・リスナインタフェース登録型
・コールバック関数登録型
・IDディスパッチ型
・派生してオーバーライド型
があると思う。
C++的には、どれが適しているんだろう?
GCがないからハンドラの寿命を管理する必要があるんだが、
循環参照が生じやすいため、参照カウント法との相性が悪いのが気になっている。
イベントの送受信構成が動的に変わらないんだったら、
それほど問題にはならないかもしれないけど。
NGNG
>>22
 ATL/WTL の「インタフェイス登録式+デフォルト実装提供式」は「使う側」にとっては
結構便利ですよ。なぜテンプレートベースかというと、標準実装においてインタフェイスに
出さない内部的な処理( 以下の例だと IUIAdonerImplWindowless::CreateFont ) を仮想関数
無しで置き換えられるのと、標準実装においては定義していないメンバ変数、メンバ関数も
利用して実装が書けるから( 同 IUIAdonerImplWindoid::GetWindow )。
以下は単純化した例。

class IUIAdoner {
public:
 virtual font get_textFont(void) = 0;
};

template class<T>
class IUIAdonerImplWindowless {
protected:
font m_font;
 void CreateFont(font& f) { f = SysCreateFont(); };
public:
 IUIAdonerImpl() { T::CreateFont(m_font); }
 virtual font get_textFont(void) { return m_font; }
};

template class<T>
class IUIAdonerImplWindoid {
public:
 IUIAdonerImplWindoid() {}
 virtual font get_textFont(void) { return SysGetWindowFont(T::GetWindow()); }
};
NGNG
>>23
テンプレートうんぬんの部分は、
abstruct class と本質的に変わらないんじゃ?

class IUIAdonerImplWindowless : public IUIAdoner {
protected:
 virtual void CreateFont(font& f) { f = SysCreateFont(); }
...
};

効率性とか、コンストラクタで呼べるとかは抜きにして。
ATL/WTLの自己言及的テンプレートって、結局はvtableケチってるだけでしょ?
NGNG
>>24
vtbl だけじゃなくて abstruct class の個数が増えるのも嫌ってるんじゃない?
IUIAdonerImplWindoid の方を abstruct class でやろうとすると、IWindow なんてのを使って、
T::GetWindow() のところで (dynamic_cast<IWindow*>(this))->GetWindow() とすることになる。

効率性とか記述性とか抜きにして本質を比べたら、UIイベントを特定のスレッドにシリアライズ
するかしないか、くらいしか手法の違いって無くなっちゃうような。。。
2624
垢版 |
NGNG
>>25
確かに記述性はいいね。
継承リストに、付け加えるだけで、オーバーライドの効果があるわけだし。

ただ、WTLの方法って、やっぱり最上位のラッパーなんだよな。
WTLの場合はWindowsコモンコントロールにあたる、
きちんとした下層ライブラリがあってこそ生きてくる。
NGNG
Chain of Responsibility.

ttp://homepage.mac.com/mkino2/oop/chainOfResp/index.html
ttp://www.kmonos.net/wlog/sub/cpp_cor.php
NGNG
>>21
私も探してみましたが、やはりまとまった資料は見当たらないですね…
各種ツールキットの実装に関する資料を一つ一つ巡るしかないかもです。
29デフォルトの名無しさん
垢版 |
NGNG
FLTK っていつの間に UTF-8 サポートしたの?

http://www.fltk.org/poll.php?r16
30デフォルトの名無しさん
垢版 |
NGNG
サポートしてないから投票してるんじゃ?
NGNG
なる。excite about って言うくらいだからもう実装したのかと思ったよ。
今しばらく Xlib 直叩きが続きそう・・・。
32デフォルトの名無しさん
垢版 |
NGNG
ていうかUnicodeサポートしてるGUIツールキットって何があるの?けっこうあるの?
NGNG
有名どころでは Gtk+, Qt, Tcl/Tk がそう。FOX は次のメジャーアップデートでサポート
予定。FLTK も 2.0 からは UTF-8 にしたい
NGNG
ありゃ、途中で送信しちゃった。

FLTK も 2.0 からは UTF-8 にしたいという話は何度も出ている。アンオフィシャルで
UTF-8 パッチもあるよ。
NGNG
wxWindows もだべ。
NGNG
Unicode サポートは要らないからマルチバイトサポートくらいはして欲しい。
下層ライブラリでせっかく用意されているのに、、、
NGNG
GUI部品図鑑
ttp://white.sakura.ne.jp/~rryu/gui-book/

他にもGUI部品の解説サイトってありませんか?
38デフォルトの名無しさん
垢版 |
NGNG

http://white.sakura.ne.jp/~rryu/gui-book/
39デフォルトの名無しさん
垢版 |
NGNG
いいのないかねえ
NGNG
Windows ルックアンドフィールで、モダンなGUITKがあると、助かるが、
いろいろやろうと思ったときは、結局ATL/WTLに行き着いたりして。
NGNG
>>40
細かいことをやろうとすると、やっぱり生のWin32を使いたくなることも多いよな。
LinuxでQt/GTKなんかでGUIプログラミングしているひとは、生のXlibを叩きたくなることはあるんだろうか?
NGNG
>>41
Athena/Motifでは日常茶飯事だけど
Qt/GTK+ではプロトコル拡張とかしない限りほぼない
43デフォルトの名無しさん
垢版 |
NGNG
widestudioってどうですか?
NGNG
widestudioが一番簡単かも。VBやDelphiより簡単。
MLのメンバーにも初心者が多い。
ただしもっさりしていて、
メインウインドウの出ないソフトは起動できない。
NGNG
widestudioか。
個人的にちょっとした道具を作りたいという人には便利かもしれないが、
そのプログラムを不特定多数に使ってもらう、という段階で無理が生じる気がする。
結局、ランタイムが・・・。
46デフォルトの名無しさん
垢版 |
NGNG
Windowsネイティヴで、
フリーで、
肥大してないコンパクトな大きさで、
いざとなればWin32API叩きもできて、
Windowsのユニコード版APIに対応してる
やつってないかなあ。
NGNG
>>46
> いざとなればWin32API叩きもできて、
が、ウィンドウ関連のAPIだったら、
それこそ MFC/WTL くらいになってしまうと思うが…。
マルチプラットホームのツールキットって、ネイティブハンドルを公開しないものが多いし。
NGNG
というか、Win32APIはXのToolkitレベルの処理も含むんだよな。
NGNG
>>46
Windowsの直API叩きたいならWideStudio。
SetWindowLong/GetWindowLongでthisを渡してるシンプルな実装。
独自のウインドウ出しててもWINMAINマクロいじって
メッセージポンプカスタマイズしてれば大丈夫。
50デフォルトの名無しさん
垢版 |
NGNG
WideStudioおとしてみたけどUIがWinネイティヴじゃない感ありありなので萎え。
WTLのフリー版みたいなのがあればいいのになあ
NGNG
>>50
nmでシンボルを抽出すると、
「WinMain」は「プロジェクト名.o」の中にある。
ソースファイル名「プロジェクト名.cpp」の先頭の辺りに
WinMainを実行するマクロがある。

#ifdef MSW
WS_WINMAIN
#endif

このマクロの中身は、WIN32APIの入門書のサンプルにある
メッセージポンプそのもの。イベントが起きたらGetWindowsLong
でthisをとって、メッセージパッシング。
ネイティブ感ありあり。
52デフォルトの名無しさん
垢版 |
NGNG
よくわかんない
NGNG
>>50
WTLってフリーじゃん? …と思ったけど、ATLがVC++にしか付いてこないのか。
それこそ >>49 の方法で簡易版CWindowImplつくって、その上でWTL使うとか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況