【C++】マイナーGUIツールキット
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG関連スレ:
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/
0554デフォルトの名無しさん
2010/03/07(日) 17:11:08ibusがXIMで動いてないんじゃないかなぁ?
ibus-daemon -rdx
やってみてもダメ?
0555553
2010/03/07(日) 19:44:08xtermにもfirefoxにも入力できるから、ximは動いてると思ってた。
やってみたけど駄目だった。
日本語入力がonにできないんじゃなくて文字化けするってのが、
どういう状況なのかわからない。
XIMプロトコルでは文字コードどうなってるの?
ibusが悪いのかとscim入れてそっちを使ってみたけど駄目。
fltk2.0いれてみたらdemoアプリでは入力できた。
が、APIが全然違うので目的のコードを動かすには相当な変更が必要そうだ。
fltk2.0 と fltk1.3 で、どこが違うのか比較するかな。
0556553
2010/03/07(日) 21:00:14setlocale関係かなと思ったけど、差はないっぽいな。うーむ。
0557553
2010/03/09(火) 23:53:34あんまり時間をかけられないので、俺は諦めます。
誰か解決してくれるとうれしいなぁ。
Fox-toolkitは日本語が入力できるんだろうか?
0558デフォルトの名無しさん
2010/04/21(水) 02:12:070559デフォルトの名無しさん
2010/05/15(土) 00:10:23自作のプログラミング言語処理系に組み込むのに向いているGUIツールキットを探しています。
ただ、その言語処理系の制限上、コールバックをする事ができません。
つまり、[その言語]->[C or C++]->[その言語]という呼び出しは行えません。
この問題を回避できるツールキットをご存知の方はいらっしゃいませんか?
0560デフォルトの名無しさん
2010/05/16(日) 01:25:010561デフォルトの名無しさん
2010/05/16(日) 19:20:55その言語はイベントループ手前で一旦終了、
Cの方でイベントループを呼び出す。
コールバックは毎回君言語を実行する形。とするのかな。
0562559
2010/05/19(水) 23:12:46継続をサポートしているため、559の制限が発生していて、
一度終了し、イベント内で再開した場合も、同様に継続をサポートできません。
Windowsに話を絞ると、Windowsの標準メッセージループは次のようなのだと思います。
while (GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
この3つの関数呼び出しをまとめた、ProcessMessage関数を作り、
bool ProcessMessage(){
if(!GetMessage(&msg,NULL,0,0)) return false;
TranslateMessage(&msg); DispatchMessage(&msg); return true;
}
これを私の言語から、
while ProcessMessage() do
hogehoge()
end
のように使えば動くと思います。この場合、C側のイベントハンドラは発生したイベントをQueueに入れて、俺言語の中でそれを取り出して使う事になると思います。
Windows以外にも対応したいので、このような形を取れる、ツールキットはないでしょうか?
0563デフォルトの名無しさん
2010/05/21(金) 14:59:44もし実装言語がCなら、標準ライブラリのsetjmp/longjmpを使って、
インタプリタ側とコールバック関数側をコルーチンの形式で
交互にジャンプさせることで、擬似的な並行処理を実現するんだろうね。
もちろんジャンプバッファ(jmp_buf)は2個必要になる。
Rubyのスレッド(平行処理)も、インタプリタ内部ではスレッド単位に
ジャンプバッファを持って、スレッドのコンテキストを管理してる。
以下は、RHG(Ruby Hacking Guide)の該当する章へのリンク。
・ttp://www.loveruby.net/ja//rhg/book/thread.html
もし仮想マシンで実行しているなら、(setjmp/longjmpに相当する)
実行コンテキストを保存/復帰させる命令を仮想マシンの仕様に追加する。
というか、開発中の言語処理系が「ホントウ」に継続(countinuation)を
サポートしているなら、継続で互いのコンテキストを切り替え続ければいいはずなんだが....
0564559
2010/05/21(金) 23:22:16いやいやいや。継続をサポートしてるから駄目なんだよ。 てか、スレッドと継続を混ざってない?
[その言語part1]->[C or C++]->[その言語part2]
って呼び出しをしたとして、[その言語part2]から[その言語part1]に継続でジャンプすると、C 部分の関数は入って2度と出なくなる。
その時はデストラクタも呼ばれないし、それ以外もマズい事になる所がある。
で、今日、tcl/tkについて調べたら、Tk_MainLoop関数は、
void
Tk_MainLoop(void)
{
while (Tk_GetNumMainWindows() > 0) {
Tcl_DoOneEvent(0);
}
}
ってなってた。
この関数を俺言語に移植して、イベントキューを作ればうまくいくかな?
0565デフォルトの名無しさん
2010/05/22(土) 02:27:440566559
2010/05/22(土) 02:49:17うぐう。
継続のサポート自体は中途半端じゃないよ。俺言語で書かれたプログラム内で閉じてればフルに継続が使えるから。
Javaはメモリ破壊に対して安全だけど、Cで書かれた拡張ライブラリにバグがあったらメモリは破壊される、みたいな物だと思いねぇ。
その言語用のライブラリをCで作るときの制限の大小の話はあるかもしれないけど、
Emacs lispだと、GCがある事を考慮に入れてプログラムを書かないといけないが、Rubyだといらないとか、
継続にしたって、Luaとかは俺言語と同じ制限がある、Rubyとかは努力して回避してる。
ただ、Rubyとかが使ってる方法は黒魔術なので、環境依存する。違うプロセッサで動くとは限らない。
もちろん、努力が足りないと言われればそれ以外ないけど。
0567デフォルトの名無しさん
2010/05/22(土) 12:31:340568デフォルトの名無しさん
2010/05/22(土) 13:49:15俺言語で閉じた利用だけを想定するならそういえるけど
しかし作者自身がその想定から外れた前提で質問した上で
そう言い張ってもなー
> Javaはメモリ破壊に対して安全だけど、Cで書かれた拡張ライブラリにバグがあったらメモリは破壊される、みたいな物だと思いねぇ。
それは違うだろ
たとえるならJNIでいうグローバル参照がないとかだな
> 継続にしたって、Luaとかは俺言語と同じ制限がある、Rubyとかは努力して回避してる。
LuaとRubyしか知らないの?
つか、この文を書けるなら当然LuaのGUIバインディングは調査済だと思うが
その結果はどうだったのさ
0569デフォルトの名無しさん
2010/11/18(木) 00:01:220570デフォルトの名無しさん
2010/11/28(日) 02:58:15日本語入力関係で2.0.x使うようにしていたけど
もう一度1.3試してみようかな
0571デフォルトの名無しさん
2010/12/01(水) 00:30:01FLTK v1.3.x-r7893
でも>>553と状況変わらず
0572デフォルトの名無しさん
2010/12/13(月) 05:36:57で日本語入力対応したっぽいage
0573デフォルトの名無しさん
2010/12/14(火) 15:27:23OpenXIM() を使っているようす。
kinput2+Canna では入力出来た。
scim+anthy だと漢字変換を起動させることが出来なかった。
0574デフォルトの名無しさん
2010/12/14(火) 20:41:430575デフォルトの名無しさん
2011/04/09(土) 18:17:04.881.3.xが落ち着いて2.0.xに開発者が若干戻った感じ
しかし1.3.0はまだRC3のまま
0576デフォルトの名無しさん
2011/05/23(月) 17:22:35.29できるだけWin32のコントロールに近い挙動のGUIを作れるライブラリがあったら教えてくれ。
目的の対象プラットフォームはWin32のみ。
0577デフォルトの名無しさん
2011/06/08(水) 21:12:08.030578デフォルトの名無しさん
2011/06/08(水) 21:17:00.940579デフォルトの名無しさん
2011/06/08(水) 22:23:27.48今となってはマイナーだと思う。
0580デフォルトの名無しさん
2011/06/11(土) 01:48:48.730581デフォルトの名無しさん
2011/06/11(土) 01:58:56.540582デフォルトの名無しさん
2011/07/01(金) 03:03:24.17……半月前だが
0583天使 ◆uL5esZLBSE
2011/07/02(土) 23:36:21.26ゴミって意味わかってんのかなこいつら
0584デフォルトの名無しさん
2011/07/03(日) 01:49:35.93それは良い事を聞いた!
0585デフォルトの名無しさん
2011/07/05(火) 14:19:10.32FLTK-2.0がベストなのですが、これって開発続けられていますか?
ホームページを見ると休眠中だけど再開したようなことも書いてあるし、
現状のステータスがよくわかりません。
Fl_というプレフィックスが見苦しい1.3ではなく2.0を使いたいのですが、
これ使って良いものでしょうか?
あるいは軽量ならFOXを使えとか...
どうするのがベストでしょうか。
0586585
2011/07/06(水) 20:25:06.63日本語化けます。対応してるはずです。助けて><
0587デフォルトの名無しさん
2011/07/06(水) 23:59:41.550588デフォルトの名無しさん
2011/07/09(土) 18:29:38.71JavaScript を試してみたら結構サクサク動いたので、もう HTML5 で
行く事に決めたわ
Firefox だけで動けば良いから、クロスブラウザ問題も無いし
0589デフォルトの名無しさん
2011/07/11(月) 00:47:19.54FreeType有効にしてる?
0590585
2011/07/11(月) 10:07:11.490591585
2011/07/12(火) 20:20:19.69一回メインウィンドウを作って閉じたら終了、なアプリはいいんだけど、
DLL化して何回も呼び出して(メインウィンドウを作っては消す)を繰り返すと、
10回に1回ぐらい不定期に強制終了する。何が起きるかはランダム。
おそらくFLTKのリソース管理がまずいか、メモリを破壊している。
2.0, 1.3, 1.1系列で確認。
ちょっと使い物にならない。
0592デフォルトの名無しさん
2011/07/12(火) 20:28:12.83そういうのは、ここで報告してあげると喜ぶと思うよ
http://www.fltk.org/newsgroups.php?gfltk.bugs+T
もう既に報告済みだったらスマソ
0593デフォルトの名無しさん
2011/07/12(火) 22:31:33.80FLTKの作法は知らないけど、
ウィザード形式の紙芝居遷移をするなら、メインウィンドウの中でパネルを入れ替えたりするのが
王道のような。
それかメインウィンドウを1個どどんと置いて、そこを軸にサブ画面を表示ってスタイルとか。
(必ずメインウィンドウを最後に閉じる)
0594585
2011/07/13(水) 09:42:00.04自分で寿命を管理できないんだわ。
アプリ自体はずっと存在して、DLLのみ何回もロード/アンロードが繰り返される。
1回目で落ちたことはない。落ちるなら2回目以降。
サンプルを見てもメインウィンドウのdeleteはおこなわずにアプリを終了してるので、
FLTK自体こういう使い方(new/deleteを繰り返す)は想定してないようだ。
これではちょっと使えないので、また振り出しに戻ってツールキット探すぜ。
FOXは何かキモイからgtkmmあたりを攻めて見る。Gtkだから物は確かだろう。
0595デフォルトの名無しさん
2011/07/13(水) 09:55:00.54それはお前がいけないんだろ。
たとえばLIBで組み込んだら、GUI終了したらメモリ完全解放され、次の起動に影響を及ぼさない。
DLL化するときの初期化に失敗してるんだろ。
0596585
2011/07/13(水) 17:17:45.92アプリ側が間違えている可能性はあるがクローズだからわかんね。
多分ほかの(FLTKを使わない)プラグインでそういうエラーは聞いたことがないので多分大丈夫だと思うよ。
そしてgtkmmデカすぎワロタ。いったいくつdllを同梱させる気だよ。
プラグイン単体で配布して、VisualStuidoの再配布可能パッケージと
gtkmmインストールしてね、というのもなあ...
どこかに理想のウィンドウツールキットはないものか。
0597デフォルトの名無しさん
2011/07/13(水) 20:29:43.25Qt4はイケメンだがデブ
wxWidgetsは不細工だがスマート
0598デフォルトの名無しさん
2011/07/13(水) 23:53:55.93ところで>>585の文を読む限りWindowsだけの話に思えるんだが
このスレの範疇のツール使う意義って何なの?
0599デフォルトの名無しさん
2011/07/14(木) 00:02:03.57別プロセスで動かせばとりあえず動くんじゃね?
抜本的解決ではないが
0600デフォルトの名無しさん
2011/07/14(木) 07:32:38.510601デフォルトの名無しさん
2011/07/14(木) 10:23:28.32C++Builder、Qtあたりがよさそう。
0602585
2011/07/14(木) 11:17:38.23gtkmmでGUIを作ってみたけど、やはり2回目以降にアクセス違反その他のエラーが出る。
詳細は違うがFLTK2, FLTK1.3, gtkmm-2.6のすべてで2回目以降にエラーが出るので、
これはもうツールキットの問題ではなく呼び出し元のアプリが悪いようだ。
他人のプラグインは恐らくWin32API直叩きだが、それはめんどいので無理。
出るとしたら2回目以降だからあきらめるしかないだろう。
0603デフォルトの名無しさん
2011/07/14(木) 11:39:25.590604デフォルトの名無しさん
2011/07/15(金) 11:26:03.910605デフォルトの名無しさん
2011/07/15(金) 21:16:54.940606デフォルトの名無しさん
2011/07/15(金) 21:27:24.920607デフォルトの名無しさん
2011/07/16(土) 22:20:36.160608デフォルトの名無しさん
2011/07/16(土) 22:46:14.71(なぜかその上のWindow相対になる)
すでに改善項目としてあがっているが。。。
0609デフォルトの名無しさん
2011/07/21(木) 11:50:23.620610デフォルトの名無しさん
2011/07/21(木) 11:50:41.240611デフォルトの名無しさん
2011/07/21(木) 19:23:37.25元々テキストエディタだけでも作成出来るほど手軽だし、
これだけ広く使われているだけあって、ツールも沢山揃っているし、
ベンダーやフレームワークに依存したお作法を強制される事もないし、
ドキュメントも沢山あって、自分以外の人間がメンテするのも容易だし、
動かすのも簡単だから、誰が相手でも気軽に配布出来るし、
今後遠い将来を考えても無くなる事はないし、規格の更新も活発だし、
周辺インフラの充実具合も半端無いし、大抵のサービスはお金も掛からないし、
色々考えると良い事しかなくて、便利に使ってるわ。
0612デフォルトの名無しさん
2011/07/22(金) 02:53:38.04同意する点もあるが
それ以上にツッコミどころ満載なんだが……
皮肉?
0613デフォルトの名無しさん
2011/07/22(金) 02:58:46.270614デフォルトの名無しさん
2011/07/22(金) 03:18:04.22>自分以外の人間がメンテするのも容易
>誰が相手でも気軽に配布出来る
>今後遠い将来を考えても無くなる事はない
>規格の更新も活発
>大抵のサービスはお金も掛からない
この辺かなぁ
個人の感想と言えばそれまでだけど
0615デフォルトの名無しさん
2011/07/22(金) 03:19:46.320616デフォルトの名無しさん
2011/07/22(金) 08:37:23.640617デフォルトの名無しさん
2011/07/26(火) 03:38:23.72あまりの見た目のダサさに我慢できなくなってきた・・・
0618デフォルトの名無しさん
2011/08/12(金) 13:25:54.03ツールキット変えたらかっこよくなるかな?
http://www.picamatic.com/show/2011/08/12/08/24/7772591_346x367.png
0619デフォルトの名無しさん
2011/08/12(金) 13:52:17.590620618
2011/08/12(金) 14:06:05.990621デフォルトの名無しさん
2011/08/12(金) 14:10:32.900622デフォルトの名無しさん
2011/08/12(金) 14:21:25.57fltk俺も使ったことあるが見た目に我慢できなくて、
結局juce library使ってる
金払わないとgplなのがネックだが
0623618
2011/08/12(金) 14:46:04.630624デフォルトの名無しさん
2011/08/12(金) 20:41:51.12http://www.rawmaterialsoftware.com/portal.php
これかー。
7万円ってえらく高いけど、Qtとかに比べてもいいのかな。
0625デフォルトの名無しさん
2011/08/13(土) 00:22:35.26金払ったん?
0626デフォルトの名無しさん
2011/08/13(土) 01:05:34.00かなりjavaライクというか、
Componentを継承して、Listenerを継承して、というカンジで使う
かなり分かりやすい、と思った。
GUI以外にもpngやjpeg、スレッド,ogg,zip,json,xmlとか色々いたりつくせりだった
LookAndFeelを設定しないと日本語がでないところ、
Tマクロがboostと競合したところがイラッとした。
ドキュメントやヘッダのコメントが本当に丁寧で色々助かる。英語だけど
ただ商用ライセンスは高いよなぁ gpl2がダメならあきらめるしかない。
てか見た目がイイ
qtは一回インストール失敗してから使ってないからわからないなぁ
0627デフォルトの名無しさん
2011/08/13(土) 07:13:47.79やっぱり有料で使うのはちょっとって感じかぁ。
0628デフォルトの名無しさん
2011/08/13(土) 07:21:02.22Qt同様ダメなんだろうか
0629デフォルトの名無しさん
2011/08/13(土) 11:17:24.82単に製品版でコンパイル仕直しゃいいんじゃないの?
GPL配布分はGPLのままだけど。
0630デフォルトの名無しさん
2011/08/13(土) 23:33:56.38Qtはそれもだめってことになってるからさ
0631デフォルトの名無しさん
2011/08/13(土) 23:41:30.90>金払わないとgplなのがネックだが
の事なら、Qt は LGPL だよ
0632デフォルトの名無しさん
2011/08/14(日) 00:47:40.50「*GPLで作って後から製品購入したのでは、*GPLにしかできない」
ってところさ
0633デフォルトの名無しさん
2011/08/14(日) 01:36:03.04サポートが欲しいなら LGPL 用のサポートメニューが用意されてるみたいよ
0634デフォルトの名無しさん
2011/08/15(月) 16:35:31.040635デフォルトの名無しさん
2011/09/20(火) 01:31:39.87これ使って書いたプログラムってソースコード開示する必要あるの?
教えてエロい人!!
0636デフォルトの名無しさん
2011/09/20(火) 03:16:22.040637デフォルトの名無しさん
2011/09/20(火) 22:46:45.77【GUI】wxWidgets(旧wxWindows) その5【サイザー】
http://hibari.2ch.net/test/read.cgi/tech/1270793556/
0638デフォルトの名無しさん
2011/09/25(日) 12:30:27.270639デフォルトの名無しさん
2011/09/26(月) 11:05:57.350640デフォルトの名無しさん
2011/10/01(土) 20:03:54.420641デフォルトの名無しさん
2011/10/01(土) 20:58:00.240642デフォルトの名無しさん
2011/11/03(木) 01:04:21.10C++のラッパーもあるなぁと思ったら、そっちは2005年で止まってた
IUP自体は使い易いんだろうか? C++用に自分で書くしかないかぁ
かと思えば、go用のラッパーがあったり
0643デフォルトの名無しさん
2011/11/03(木) 09:07:02.05さすがに改善されたのかな
0644デフォルトの名無しさん
2011/11/04(金) 11:29:11.30GTKは糞
0645デフォルトの名無しさん
2011/11/04(金) 12:42:47.030646デフォルトの名無しさん
2011/11/11(金) 13:43:32.38xforms の *.fd 形式って、fltk の fluid でも読込みこませられるみたい。
0647デフォルトの名無しさん
2011/11/11(金) 20:27:51.520648デフォルトの名無しさん
2011/11/12(土) 16:15:25.410649デフォルトの名無しさん
2011/11/20(日) 11:13:03.480650デフォルトの名無しさん
2011/11/24(木) 17:39:58.460651デフォルトの名無しさん
2011/11/24(木) 21:19:46.290652デフォルトの名無しさん
2011/11/25(金) 00:04:19.570653デフォルトの名無しさん
2011/11/25(金) 10:42:15.78Objective-C
■ このスレッドは過去ログ倉庫に格納されています