トップページtech
981コメント348KB

【GUI】wxWidgets(旧wxWindows) その3【サイザー】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/09/09(土) 00:06:30
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)について語りましょう。

本家
 http://www.wxwidgets.org/
wxWindows日本語プロジェクト
 http://wxwindowsjp.sourceforge.jp/
Let's wxWidgets
http://dot-gray.s33.xrea.com/
(*)準備中(*)
http://www.geocities.co.jp/SiliconValley-Cupertino/8526/
wxWindowsで始めるC++ GUIプログラミング
http://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/
dW : Linux : wxWindowsの概要
 http://www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
 http://www.idg.co.jp/sw/back/200102/20010219_01_report.html
0285デフォルトの名無しさん2007/04/10(火) 22:18:40
>>278
悪いけど俺にはとてもそうは思えないし、エンコード決め打ちなんて
俺の基準からすると作法がなっていない。
0286デフォルトの名無しさん2007/04/10(火) 22:19:53
>>284
いいからしばらく黙ってろって。襤褸が出まくってる。
0287デフォルトの名無しさん2007/04/10(火) 22:25:18
>>285
> エンコード決め打ちなんて俺の基準からすると作法がなっていない。
そういう「気分」「好み」でしか語れないのか?
技術者なら、Unix方式に比べてどういう具体的な問題・欠陥があるか語れよ。
0288デフォルトの名無しさん2007/04/10(火) 22:27:47
>>287
散々書いたじゃん。今まで何読んでたの?
鬱陶しいから横から煽るのは止めてくれ。
あと >>284 みたいな見当違いの事書くのも勘弁な。
0289デフォルトの名無しさん2007/04/10(火) 22:29:16
>>288
> 散々書いたじゃん
「Windowsも完璧ではない、Windowsも同じ」以上のことは書いてない気が
するが?
0290デフォルトの名無しさん2007/04/10(火) 22:32:23
今ある環境を*肯定*して最大公約数的なものを
提供するのがwxWidgetsだと思うのだが。

OS批評がしたいならOS板に行ってくれないかな。
0291デフォルトの名無しさん2007/04/10(火) 22:39:22
>>284はそんなに見当違いか?

テキストとバイナリを区別せずただのバイト列として扱うのが
伝統的なUnixおよびCの文化だ。
実際にはそうした愚直で単純なやり方ではマルチバイトテキストを
扱う上で大きな問題を引き起こす。
無論UnixおよびCでそうでないプログラムを書くことは可能だが、
それに対するサポートレベルがWindowsに比べて非常に低い。

Windowsはテキストを明確に区別する。ほぼ全てのテキストを受け渡しする
APIには、Ansi版とUnicode版が存在し、APIユーザ=プログラマは、
自分のプログラムに適したストラテジーによってそれらを使い分けることが出来る。
Ansi版を使う場合はUnixのロケールモデルに近くなり、それらの切り替えは容易だ。
正しくWindowsの作法に従って書かれたプログラムなら、OSに渡るテキストは
全てUTF-16だ。
そうした世界では、もともとm17n対応であり、SJISの2byte目が引き起こす
伝統的な下らない問題とも無縁だ。
ファイルシステム内のファイル名も一貫しており、どんなコードページで
実行していようが全てのファイルを正しく扱える。
テキストを意識し、テキストを正しく扱っているから出来ることだ。

Unixは「何でもあり」と一見自由のようなことを言っていて、
実際にはエラーを起こしがちで問題の多い解でしかないわけだ。
ちょうど行毎にエンコード形式の異なるテキストファイルのように。
0292デフォルトの名無しさん2007/04/10(火) 22:41:05
>>291
ガンガレ
もっとガンガレ
0293デフォルトの名無しさん2007/04/10(火) 22:59:47
>>289
書いて無くても書いたんだよ!
0294デフォルトの名無しさん2007/04/10(火) 23:01:57
案外ここ住人いたんだなあ
なんだかうれしいよ
0295デフォルトの名無しさん2007/04/10(火) 23:24:59
ここまで俺の自演
0296デフォルトの名無しさん2007/04/10(火) 23:31:07
いやいや、オレオレ
0297デフォルトの名無しさん2007/04/10(火) 23:40:31
VC++ 2005 express edision(無料のやつ)

wx_dll.dswをコンパイルすると
MessageBox@16が見つからないとかいうエラーが出てdllが生成されないんだけど
なんじゃこりゃ
0298デフォルトの名無しさん2007/04/11(水) 00:27:41
普通の質問になると黙るのがワロス
0299デフォルトの名無しさん2007/04/11(水) 01:16:44
ダメ文字と半端バイト、エンディアン、改行の扱いで問題なければ別にどうでも良いよ
……Windows&SJIS/UTF-16が苦手にするところだなぁ。WindowsもUTF-8(N)にならんかね?
0300デフォルトの名無しさん2007/04/11(水) 01:22:32
>297
ちゃんとWindowsの開発環境整えてる?Platform SDKとか。
0301デフォルトの名無しさん2007/04/11(水) 01:28:18
>>300
libがなかったらそれ以前にlibが無いってエラーが出るからね
その辺はちゃんとやってる
wx.dswのほういわゆる静的リンクは問題なくコンパイルできる
DLLのほうがだめ
0302デフォルトの名無しさん2007/04/11(水) 07:49:05
>>299
どこでも UTF-16 は負の遺産と化してるね
0303デフォルトの名無しさん2007/04/11(水) 12:00:37
Javaも.NETもTclもICUもUTF-16だけどな。
ファイルやネットワークで使用するデータ交換形式としては無論UTF-8が
望ましいが、マルチバイト処理を必要とするから、内部コードとして
使うにはUTF-32のほうがいいよ。
UTF-16はまぁ中途半端の観は否めないが、内部コードとして使っている分には
それほど大きな不満はないな。

内部コードとしてのUTF-8の問題は、マルチバイト処理を必要とするだけでなく、
全部char*になってしまうということ。これは一見単純で良いようだが、
Unicodeデータかどうかの識別がつきにくく、プログラミング言語の
オーバーロード機能なども利用しにくくなってしまう。
0304デフォルトの名無しさん2007/04/11(水) 13:04:20
>>303
内部コードにUTF使うか?
エンディアン無視してUCSそのままだろ。
0305デフォルトの名無しさん2007/04/11(水) 16:58:30
>>303
エンコーディングの問題とプログラミング言語の問題も分離できないくせに
偉そうなフリしてて笑えるw
0306デフォルトの名無しさん2007/04/11(水) 17:35:01
ここは何のスレ?
0307デフォルトの名無しさん2007/04/12(木) 19:06:05
ねぇ、2.6.3のサンプルでpenguinサンプルをビルドして動かしてみたんだけど、
ウィンドウを閉じようとしたら「ハンドルされていないエラーが発生しました」とかいうエラーが
出てしまう。他のOpenGL使うサンプルもみんなそうなんだけど、これってwxWidgetsのバグ?
03083072007/04/13(金) 14:14:50
>>307
原因がわかったぽい。
NVIDIAの提供しているデバッグ用ドライバだとエラーになるっぽい。
通常のGeForceドライバだとエラーにならなかった。

まさかドライバで動作が違うとはね。
0309デフォルトの名無しさん2007/04/13(金) 21:16:38
wxPythonで使ってるんだけど、いわゆるショートカットキー(ホットキー)って
どうやって実装するの?
wxAcceleratorKeyはメニュー用のようだし、wxKeyEventはフォーカスされた
ウィンドウにしかトリガーしない。
リファレンスにもそれっぽい方法は見当たらなかったのだけど。
0310デフォルトの名無しさん2007/04/13(金) 21:24:15
メニューのファイル(F)の"Alt+F"みたいなの?
それだったら"ファイル(&F)"でできるけど。
0311デフォルトの名無しさん2007/04/13(金) 21:50:37
>>310
いや、違うだろ。
グローバルホットキーのことでしょ?
OS依存度高そうだな。
03123072007/04/13(金) 22:01:38
>>308
と思ったら、普通のGLUTアプリでもこけた。
こりゃwxWidgetsとは全然関係のない話で、単にドライバの仕様な予感。
スマンカッタ・・・。
03133092007/04/13(金) 22:18:52
>>311
それもだけど、当面はアプリケーションごとのCtrl+Zで取り消し、みたいなやつ。
wxMenu.Appendでitem="Undo\tCtrl+Z"とすればできるけど
これだとメニューを出せない場合に困るし、どうしたらよいものかと。
0314デフォルトの名無しさん2007/04/16(月) 16:11:20
質問です。
条件によってUIを機能しない(ボタンだったら表示が薄くなって押せなくなる)ように
するにはどうすれば良いのでしょうか。
wxWidgetsのサンプルではEVT_UPDATE_UIというイベントを使っているようですが、
真似して試してみたところ上手く行きません。
0315デフォルトの名無しさん2007/04/16(月) 16:31:43
Disable()
0316デフォルトの名無しさん2007/04/20(金) 16:19:35
ttp://www.averdevelopment.com/python/wxAGG.html
面白いの見つけた(windows限定みたいだし余り魅力的ではないかも…)
でも
dc = AggDC(wx.PaintDC(self))
b = aggBrush(self.dc.GetBrush())
p = aggPen(self.dc.GetPen())
みたいに使用するのは簡潔でいいと思うけど

def aggBrush(wxBrush):
def aggPen(wxPen):
を使うたびにどこかで定義しないといけないとか、これなら
素直にGDI+を使ったほうが良いかなという気もしないでもない。

というか日本語資料が一件しかないしな…
0317デフォルトの名無しさん2007/04/22(日) 13:01:11
そんなもん使うことあるか?
ゲーム作るんならどにみちバッファ直接書いたほうが早いぞ
DirectXより早いぞ
0318デフォルトの名無しさん2007/05/05(土) 02:07:54

誰か、コレを和訳してないかな?

Cross-Platform GUI Programming with wxWidgets
0319デフォルトの名無しさん2007/05/05(土) 06:39:51
wxWidgetsによるプラットホーム非依存なグラフィカルユーザインターフェイスプログラミング

してみたけど。
0320デフォルトの名無しさん2007/05/05(土) 11:16:14
ああ流石に寒いかなと思ってやらなかったのに…
0321デフォルトの名無しさん2007/05/05(土) 22:59:17
だれか、これで2chブラウザつくらないのかな?
0322デフォルトの名無しさん2007/05/06(日) 01:33:23
メリットは?
0323デフォルトの名無しさん2007/05/06(日) 01:41:18
弱酸性です。
0324デフォルトの名無しさん2007/05/06(日) 02:00:32
>メリット

ネタになるだろ?

だれかやって味噌〜
0325デフォルトの名無しさん2007/05/06(日) 02:25:38
C#の方が簡単だよ
0326デフォルトの名無しさん2007/05/06(日) 02:48:26
>>324
ネタと言うか宣伝だわな
0327デフォルトの名無しさん2007/05/06(日) 06:59:32
そんなあふれたもん作ってもしょうがないぽ
0328デフォルトの名無しさん2007/05/06(日) 09:40:40
あふれた?
0329デフォルトの名無しさん2007/05/06(日) 15:18:54
wxPythonなら Monarchってブラウザがあったらしい
ttp://monarch.sourceforge.jp/
0330デフォルトの名無しさん2007/05/06(日) 18:26:03
輝けジャンケル(Woo! Ohowo!!)空高く(Owo!!)
技と力と心が通う ザビタン(hehe!!)
         イビル(hehe!!)ガブラ(Woo!Ohooho!!)
うなれジャンケル! アクサイザー3!!
0331デフォルトの名無しさん2007/05/06(日) 19:42:18
なんやねん
0332デフォルトの名無しさん2007/05/06(日) 20:14:11
これの代わりになるものをみんなで作ろう!!
0333デフォルトの名無しさん2007/05/06(日) 20:16:53
おちつけ!!!!
0334デフォルトの名無しさん2007/05/06(日) 20:25:59
行く道ひとつ Ohowo!! ただひとつ
これが われらの 生きる道

アクサイザー!(Zanzan zazan!) アクサイザー!(Zanzan zazan!)
アクサイザー3!!
0335デフォルトの名無しさん2007/05/06(日) 21:27:25
これって、あまり人気がないのか?
0336デフォルトの名無しさん2007/05/10(木) 03:49:37
wxSocketBase::Callbackが2.8で完全に削除されてるけど
コマンドアプリでイベント処理する場合にはどうすれば?
自作クラスにイベントハンドラを作る方法ってあるの?

ちなみにプログラムの特性上スレッドは却下、同期処理も却下
0337デフォルトの名無しさん2007/05/10(木) 04:31:27
EVT_SOCKET(id, func)
0338デフォルトの名無しさん2007/05/10(木) 05:09:20
自己解決した

ふふり
0339デフォルトの名無しさん2007/05/11(金) 20:01:03
みんなもっと使おうぜ!!
便利なんだから(?)
0340デフォルトの名無しさん2007/05/11(金) 22:58:07
wxDateTimeについて

システムの時刻とアプリケーションの時刻を独立して管理したいんだけど
wxDateSpanとwxTimeSpanをwxDateTime::Nowに加算すればいいわけですね
問題はアプリケーションで管理すべき時刻とシステム時刻の差の計算はどうすればいいの?
wxDateSpanとwxTimeSpanを2個のwxDateTimeの差から計算するには?
0341デフォルトの名無しさん2007/05/11(金) 23:24:29
あ、自己解決w
0342デフォルトの名無しさん2007/05/12(土) 16:44:23
これ、人気ないですか?
0343デフォルトの名無しさん2007/05/12(土) 20:18:49
どうしてそう思うの?
0344デフォルトの名無しさん2007/05/12(土) 21:01:48
まだ何も思ってないのでは
0345デフォルトの名無しさん2007/05/12(土) 21:53:13
中身が人気無いというより

コンパイルに数時間かかるし
ドキュメントはほとんど英語しかないし
容量が1G以上いくし
内部構造まで解析できないとバグと仕様の区別が付けられないから不安定だし

まあようするに厨房には無理w
0346デフォルトの名無しさん2007/05/12(土) 22:33:32
メリットは何ですか?
0347デフォルトの名無しさん2007/05/12(土) 22:47:36
環境に左右されない。
でも、コンパイルは各環境で行わないといけない。

MFCの代わり?
(似てるし)
0348デフォルトの名無しさん2007/05/12(土) 23:51:09
>容量が1G以上いくし

まじっすか・・・
0349デフォルトの名無しさん2007/05/13(日) 01:23:23
メリットは

MFCライクだけどMFCをさらに洗練したような感じになってること
完全クロスプラットフォームだからネットワーククライアント関係を作るなら便利
完全に無料だからライセンスを一切気にする必要がない
多国語サポートとかとにかく機能はすさまじく充実してるけどクラス設計が洗練されてて覚えやすい
0350デフォルトの名無しさん2007/05/13(日) 01:30:20
クラス設計が洗練されているというのは
クラスの命名規約やパラメータのパターンやイベント処理方法がすべて統一されているから
ダイアログの表示の仕方を覚えると、フレーム作ったりMDI作ったりする方法がなんとなく想像できる
ちょっとそれらしい名前のクラスリファレンスを見るだけでダイアログを表示する方法と同じ方法で
いろんなものが表示できる
0351デフォルトの名無しさん2007/05/13(日) 17:04:37
デメリット

英語が出来ないと辛い
0352デフォルトの名無しさん2007/05/13(日) 19:36:07
C++のコード読めないとつらい。

当方、wxPython使い。
0353デフォルトの名無しさん2007/05/13(日) 20:49:24
GUI以外のシステム依存機能が大量に入ってて便利な反面
使わない機能も勝手に付いてきて重い
0354デフォルトの名無しさん2007/05/14(月) 00:01:36
重くは無い
でかいけどw
0355デフォルトの名無しさん2007/05/14(月) 01:55:39
wxJoystickを使ってゲームパッドで操作するアプリを作成中なのですが、
ボタンの押下はポーリングでスキャンする方法しかないのでしょうか??
ボタンを長押ししたりすると、連打してるようになるし、
ボタンをちょっとだけ押しても反応しない時があるので困ってます。。

ボタンが押された時にだけイベントを発生させることはできないのでしょうか?
0356デフォルトの名無しさん2007/05/14(月) 02:41:26
wxJoystick::SetCapture
0357デフォルトの名無しさん2007/05/14(月) 10:06:15
すごく・・・おおきいです
0358デフォルトの名無しさん2007/05/14(月) 13:49:10
大きい・・・のか
0359デフォルトの名無しさん2007/05/14(月) 21:10:12
英語が出来ないので、断念 ⇒ Turbo C++ 使い方が良くわからないので断念 ⇒ WinAPIでガリガリ書く
みんなが辿る道
0360デフォルトの名無しさん2007/05/14(月) 21:22:29
英語つっても文学作品じゃないんだから嵩が知れてるでしょ。
やっぱりデカイのが痛い。
0361デフォルトの名無しさん2007/05/14(月) 21:33:18
>>360
デカイと痛いのか。。。

力を抜けよ。
0362デフォルトの名無しさん2007/05/14(月) 21:43:01
Turbo C++ で十分
0363デフォルトの名無しさん2007/05/14(月) 21:45:43
アッー!
0364デフォルトの名無しさん2007/05/14(月) 21:45:59
>>361
いやまて、チ○コじゃなくて、オパーイかも知れんぞ。
0365デフォルトの名無しさん2007/05/14(月) 22:22:07
>>364
そっちだって、でかいとジャンプするだけで痛いよ?
0366デフォルトの名無しさん2007/05/14(月) 23:01:20
>>359
それはつまり,C++を理解できてない人が打ちのめされたあげく,
Cだけで書こうと思い立つもCすらよく理解できていないからハンドラの扱いが
よくわからなくてWinAPIのサンプルをコピペしてダイアログ作って
テキストボックスに身長を入力したら標準体重を表示するだけの
プログラムの計算ルーチンだけを書いていたら頭の中でガリガリなった
ような気がする状態のことですね。あるある。
0367デフォルトの名無しさん2007/05/15(火) 01:46:53
wxScintillaの内部で利用しているScintillaをさ1.62から
1.71以上にしたいんだけど、どうすればいいの?
0368デフォルトの名無しさん2007/05/15(火) 03:07:02
DLLにすればでかくないw
しかしDLLを作るには英語力が必要w
0369デフォルトの名無しさん2007/05/15(火) 03:35:10
メモリに読み込んだらサイズは一緒
0370デフォルトの名無しさん2007/05/15(火) 04:08:22
メモリ量なら.Netは誰にも負けないw
0371デフォルトの名無しさん2007/05/15(火) 10:30:44
wxPython使ってるんでサイズ的には只のテキストファイルだ
0372デフォルトの名無しさん2007/05/15(火) 20:22:52
py2exe使うとどえりゃーことになるぜ
0373デフォルトの名無しさん2007/05/15(火) 20:42:07
パネル一個のアプリが50MBytes超えるしな。
0374デフォルトの名無しさん2007/05/15(火) 20:46:30
まじめにDLLとReleaseモードを組み合わせたパターンだと
ランタイム含めても2MBいくかいかないかだけどな
本体はよっぽとすさまじいシステムでもない限りせいぜい500kbくらいか
0375デフォルトの名無しさん2007/05/15(火) 21:32:13
>>373
それpy2exeの話?すげーなそれは・・・
0376デフォルトの名無しさん2007/05/15(火) 23:21:42
いわば、pythonとwxpythonの本体もまとめてexeに入れてしまうらしいからね
0377デフォルトの名無しさん2007/05/16(水) 01:35:24
今どき50MBくらいへでもないじゃん。
0378デフォルトの名無しさん2007/05/16(水) 15:39:21
そういう問題じゃないだろ・・
0379デフォルトの名無しさん2007/05/16(水) 16:02:13
わざわざPythonを使う理由がわからん
マゾか?w
C++でもJavaでもいいのにw
0380デフォルトの名無しさん2007/05/16(水) 19:19:46
その3つの中でPythonしか知らないからだよっ!
0381デフォルトの名無しさん2007/05/16(水) 22:34:24
C++ も Java も REPL が無いのが辛い。俺にとってはかなり致命的。
あと C++ は変則的過ぎるから気持ち悪い。
0382デフォルトの名無しさん2007/05/16(水) 22:37:38
統制がとれていないのをマルチパラダイム言語とか言ってごまかしてるからな。
俺はそのカオスさも嫌いじゃないが
0383デフォルトの名無しさん2007/05/16(水) 23:03:59
ちなみにwxJavaScriptってのもあるぞw
0384デフォルトの名無しさん2007/05/17(木) 00:29:48
>>382
あれは、ごまかしてるんじゃない。開き直ってるんだ。
■ このスレッドは過去ログ倉庫に格納されています