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

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

関連スレ:
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/
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使うとか。
NGNG
SWT なら、頑張れば C++に移植できそうな気がする。
SWTのソースを見るとネイティブのAPI叩きまくっているし。
NGNG
>>54
gcjでコンパイルしたSWTはg++(のC++)から操作できるよ。
Managed C++みたいな感じって言えばいいかな。
NGNG
>>33
Unicodeに対応してもIMEやXIMに対応しなきゃあんまり意味がない。。。
NGNG
>>56
対応してるよ。
NGNG
>>55
ほえー。興味有り。情報 Thanks。
59デフォルトの名無しさん
垢版 |
NGNG
>>58
gcjについては、
Cygwinでの/usr/include/java以下を見てみるといいよ
きっと萌えるから(w

これはCNIっていうJNIの独自版みたいなやつで
JavaをC++に自動でマップしてるヘッダ

CNIとかgcjでのSWTとか詳しいことは以下を見てちょ
ttp://page.freett.com/gikob/gcj/
60デフォルトの名無しさん
垢版 |
NGNG
http://page.freett.com/gikob/gcj/
NGNG
SwingみたいなライトウエイトなGUIツールキットってないのかな。
まぁ需要なさげといえばそれまでなんだが。
NGNG
>>61
Fltk?
NGNG
>>61
Qt
FOX
6461
垢版 |
NGNG
あるのかtnx
今から調べてみるよ
NGNG
全然ライトウエイトじゃなかったぞゴルァ
NGNG
FLTK = The Fast Light Toolkit
NGNG
いや、要するにSkinでLook&FeelをかえられるGUIツールキットがほしかったわけなんだが・・・
NGNG
>>67
http://themes.freshmeat.net/
NGNG
うーんさらにクロスプラットフォームという条件がつくんだが・・・ないかな
NGNG
ライトウエイトって、ネイティブGUIを使ってないという意味で、
動作が軽いっていう意味ではなかったはず。
NGNG
>>70
スタティックリンクしてもファイルサイズが小さい事が売りじゃなかった?
実際速いし。

スキンは次のバージョンかららしい。
NGNG
ttp://www.fltk.org/news.php?V230

> The FLTK Team has begun the next phase in the evolution of FLTK.
> The 1.2 series will focus on adding UTF-8, print, basic style support,
> custom cursor support, true alpha-blending of images, Quartz support
> on OSX, and updating the menu widgets to the FLTK 2.0 implementation.
> The new series will also include new widgets such as Fl_Combobox,
> Fl_Dock, Fl_Image_Browser, Fl_Image_Display, Fl_Spinbox, Fl_Table,
> Fl_Toolbar_Window, and Fl_View.

XIM サポートしてくれたら嬉しいな。
NGNG
FLTKのXIMパッチってまだ入手できるの?
74デフォルトの名無しさん
垢版 |
NGNG
http://www.fltk.org/news.php?V230
75デフォルトの名無しさん
垢版 |
NGNG
Dat落ち回避age
NGNG
notusいいよね
ttp://sourceforge.net/projects/notus
NGNG
>>76
たしかに notus のアプローチも面白いんだけど、
GUIの細かい構成は外部設定ファイルに追い出して、動的に構成するのが流行りっぽくね?
NGNG
>>77
たとえばツールで見た目つくって
実行時にライブラリ側で画面構築してもらうみたいな?
それもお手軽でいいよね。

そういうアプローチのツールキットってなにかある?
NGNG
GTKをはじめとしていろいろあるだろ。


NGNG
gtkってgnome界隈で使う分にはいいけど
他のplatformに持っていくと浮いちゃうよね
なんだかなー
NGNG
Windows 用のツールキットなら、CodeProject 。
jlib が最近のお気に入り。
NGNG
codeprojectって中途半端じゃね?

漢ならstringray
NGNG
さいきん話題ないな
NGNG
>>79
GTKみたいに大掛かりなものじゃなくて、
レイアウトファイルから情報を読み込んで、
あとはプログラム側で好きなようにウィジェットを作成していくようなものはありますか?

XML とか YAML を使えばいいとは思うんだけど、
GUI を記述する標準スキーマみたいなものがあれば、それを使いたいのです。
NGNG
>GUI を記述する標準スキーマ
そんなもん無い。
あえて上げるとすればhtml
NGNG
いちおう、XULがあるのか?
Mozillaも漏れなく付いて来てしまうが。
87デフォルトの名無しさん
垢版 |
NGNG
GLUIはまだでてないかな。
私のまわりではちらほら見ます。
88デフォルトの名無しさん
垢版 |
NGNG
http://sourceforge.net/projects/notus
89デフォルトの名無しさん
垢版 |
NGNG
WTL ・・・ ステキ!!
NGNG
Motif/UILだろやっぱ
NGNG
An introduction to using Fluid
8.5Megs 16 Minutes Running Time
http://seriss.com/people/erco/fltk-videos/
NGNG
>>73
↓のことを言ってるのか?
http://sourceforge.net/project/showfiles.php?group_id=36627

放置プレイになってる。
NGNG
http://www.nigels.com/glt/glui/
94デフォルトの名無しさん
垢版 |
NGNG
GUIツールキットはLGPLのやつばっかりだな。BSD系ってTkくらいか。
NGNG
>>94
Visual Basicでも使えたらよかったのにね
NGNG
>>73 >>92
http://www.oksid.ch/fltk-utf/
ここのfltk-utf8ならXIM使えるっぽいけど
97デフォルトの名無しさん
垢版 |
NGNG
VBって特定のライセンスのライブラリ使えないの??
NGNG
>>94
LGPL だけど、スタティックリンクに関して例外を設けている事が多いね。
NGNG
>>53
遅レスだけどATLはC++BuilderXのフリー版にもついてくる。
NGNG
fltk2.0リリースまで何をする気にもなれない
んで100get
NGNG
fltk はイベント処理まわりがキモすぎる。
NGNG
ttp://www.turn.co.za/david/gui/
103デフォルトの名無しさん
垢版 |
NGNG
Linux Windows Macのクロスプラットフォームなアプリを作りたいんだけど、
おすすめツールキットある? 当初はQtで考えてたんだがいつのまにか
Windows版のライセンスがややこしくなってて有料らしいので、ほかを探し
てます。とりあえず、wxWindows(wxWidgets)は上の3つに対応しているらしい
ことがわかったけど、ほかの選択肢はどんなもんでしょう。経験者いたら
経験談キボンヌ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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