【GUI】wxWidgets(旧wxWindows) その3【サイザー】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/09/09(土) 00:06:30本家
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
0271デフォルトの名無しさん
2007/04/10(火) 21:10:27お、俺がもう一人居る。あんたが >>261 だとすると、俺は誰だw
何にせよ >>261 の書き込みは破壊力抜群だったみたいで何より。
>>262 には悪い事したけど、まともな人はもう居ないと思ってた。
>>265
あんたプログラマだったの?
プログラマは平日昼間から 2ch やれて羨ましいなあ。
エンコーディング情報は環境変数からとって来るから良いんだよ。
あんたが思ってる様なカオスの世界では無いよ。
0272271
2007/04/10(火) 21:13:42NTFS や HFS+(どちらも UTF-16) で、行儀の良いアプリであれば
そのエンコーディングに従って文字列を格納してくれる。勿論、zip
の例の様に、人間にとって valid な文字列を生成出来ない場合も
あるし、ファイル名が ASCII である事を前提に書かれたプログラム
も存在している。
一方で、エンコーディングが環境に合わせて変わるのが UNIX 方式。
ファイルシステムの数も扱うロケールの数も沢山あるし、OS 自体も
色んな種類があるので入力には寛容に作られている。行儀の良い
アプリならロケールを見てきちんとデータを変換してくれる。勿論
入力が ASCII のみを想定している様なプログラムもあって、8 bit
clean じゃないコマンドも残っていたりする。
どちらの方式でも言えるのは、人間にとって valid じゃない文字列を
生成するのは簡単だという事。valid じゃない文字列を生成する
プログラムが良いか悪いかは別として、そういうプログラムが存在する
事は間違いない。だとすると、エンコーディングを決め打ちして満足
しているのは抜けてるんじゃないかなあというのが俺の意見。
Windows な人が共感出来るかどうかは別として、論理としては理解
出来るように書いているつもりだけど、どうよ?
0273デフォルトの名無しさん
2007/04/10(火) 21:52:01> エンコーディング情報は環境変数からとって来るから良いんだよ
環境変数はユーザ毎、プロセス毎、それどころかプロセス実行中にも
変化し得る揮発性のデータでしょ。実際、
$ LANG=C man foo
のように、一時的にLANGを変えてコマンドを実行するようなことは
日常茶飯事のはずだ。
環境変数が指し示すのはあくまで「プロセスの実行環境」であって、
「ファイル名が何でエンコードされているか」ではない。それらは
全く別のものなのに、一体それでなぜ「良いんだよ」と言えるのか。
・ファイル名のエンコーディング方式が固定化されているか
・ファイル名のメタデータとしてエンコーディング方式が取得/設定できるか
以外に正しい解は無いよ。そんなこと、分かりきってるだろうに。
0274デフォルトの名無しさん
2007/04/10(火) 21:57:11> 論理としては理解出来るように書いているつもりだけど、どうよ?
あなたがUnix方式の穴/不備に故意に目を瞑っていることだけはよく理解できる。
そして、「完璧な方式など無い」と主張することで、そこから目をそらさせようと
しているわけだ。
1. エンコーディング固定化方式
2. エンコーディングが可変で、形式をメタデータとして保持する方式
を比較するなら分かる。
どちらにも得失はあるが、「まともな」やり方だ。
Unixはそのいずれでもない。可変で、形式情報が失われてしまう。
Zipと同じだよ。
0275271
2007/04/10(火) 21:57:12ファイル名が何でエンコードされてるかは重要じゃない。
ファイル名のバイト列をどの文字コードで解釈したいと
ユーザが指定しているかが分かれば良い。
エンコードを決め打ちしても当然例外は発生するんだから
正しい解なんて存在しないんだよ。それに気付ければオケ。
0276デフォルトの名無しさん
2007/04/10(火) 21:59:53馬鹿でもいいから、限界まで頑張って。
0278デフォルトの名無しさん
2007/04/10(火) 22:01:44Unix方式よりずっとマシだ、といっているだけだ。
0279デフォルトの名無しさん
2007/04/10(火) 22:01:47お前は >>261 なんだろ...
自分の役割を忘れるな
0280デフォルトの名無しさん
2007/04/10(火) 22:03:58>ファイル名が何でエンコードされてるかは重要じゃない。
>ファイル名のバイト列をどの文字コードで解釈したいと
>ユーザが指定しているかが分かれば良い。
環境変数という荒くて大雑把な手段では、実際に個々のファイル単位に
エンコーディングを指定することは出来ないし、インタラクティブな
プログラムばかりではない。
問題が大きいのに相変わらず故意に目をつぶりまくっているな。
0281デフォルトの名無しさん
2007/04/10(火) 22:05:43それなら君は Windows ユーザじゃないってことだ。
0282デフォルトの名無しさん
2007/04/10(火) 22:06:57キミ、面白すぎ
Windowsマンセー、欠陥など一切認めないって信者以外はWindows使っちゃ
いけないのネ
0283デフォルトの名無しさん
2007/04/10(火) 22:09:28物事を面白がれるのはいいことだと思うよ。
現実と架空の区別さえついていれば。
0284デフォルトの名無しさん
2007/04/10(火) 22:10:06煩わされてきた日本人であるならば、
名前なんてただのバイト列でいいよ、エンコーディングなんてどうでもいいよ、
なんてことは言えない筈だぞ。
UnixとCの時代遅れな設計がいかに多くの下らない「日本語対応パッチ」のような
adhocな生産物を意味出してきたことか。
0285デフォルトの名無しさん
2007/04/10(火) 22:18:40悪いけど俺にはとてもそうは思えないし、エンコード決め打ちなんて
俺の基準からすると作法がなっていない。
0286デフォルトの名無しさん
2007/04/10(火) 22:19:53いいからしばらく黙ってろって。襤褸が出まくってる。
0287デフォルトの名無しさん
2007/04/10(火) 22:25:18> エンコード決め打ちなんて俺の基準からすると作法がなっていない。
そういう「気分」「好み」でしか語れないのか?
技術者なら、Unix方式に比べてどういう具体的な問題・欠陥があるか語れよ。
0288デフォルトの名無しさん
2007/04/10(火) 22:27:47散々書いたじゃん。今まで何読んでたの?
鬱陶しいから横から煽るのは止めてくれ。
あと >>284 みたいな見当違いの事書くのも勘弁な。
0289デフォルトの名無しさん
2007/04/10(火) 22:29:16> 散々書いたじゃん
「Windowsも完璧ではない、Windowsも同じ」以上のことは書いてない気が
するが?
0290デフォルトの名無しさん
2007/04/10(火) 22:32:23提供するのがwxWidgetsだと思うのだが。
OS批評がしたいならOS板に行ってくれないかな。
0291デフォルトの名無しさん
2007/04/10(火) 22:39:22テキストとバイナリを区別せずただのバイト列として扱うのが
伝統的な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ガンガレ
もっとガンガレ
0293デフォルトの名無しさん
2007/04/10(火) 22:59:47書いて無くても書いたんだよ!
0294デフォルトの名無しさん
2007/04/10(火) 23:01:57なんだかうれしいよ
0295デフォルトの名無しさん
2007/04/10(火) 23:24:590296デフォルトの名無しさん
2007/04/10(火) 23:31:070297デフォルトの名無しさん
2007/04/10(火) 23:40:31で
wx_dll.dswをコンパイルすると
MessageBox@16が見つからないとかいうエラーが出てdllが生成されないんだけど
なんじゃこりゃ
0298デフォルトの名無しさん
2007/04/11(水) 00:27:410299デフォルトの名無しさん
2007/04/11(水) 01:16:44……Windows&SJIS/UTF-16が苦手にするところだなぁ。WindowsもUTF-8(N)にならんかね?
0300デフォルトの名無しさん
2007/04/11(水) 01:22:32ちゃんとWindowsの開発環境整えてる?Platform SDKとか。
0301デフォルトの名無しさん
2007/04/11(水) 01:28:18libがなかったらそれ以前にlibが無いってエラーが出るからね
その辺はちゃんとやってる
wx.dswのほういわゆる静的リンクは問題なくコンパイルできる
DLLのほうがだめ
0302デフォルトの名無しさん
2007/04/11(水) 07:49:05どこでも UTF-16 は負の遺産と化してるね
0303デフォルトの名無しさん
2007/04/11(水) 12:00:37ファイルやネットワークで使用するデータ交換形式としては無論UTF-8が
望ましいが、マルチバイト処理を必要とするから、内部コードとして
使うにはUTF-32のほうがいいよ。
UTF-16はまぁ中途半端の観は否めないが、内部コードとして使っている分には
それほど大きな不満はないな。
内部コードとしてのUTF-8の問題は、マルチバイト処理を必要とするだけでなく、
全部char*になってしまうということ。これは一見単純で良いようだが、
Unicodeデータかどうかの識別がつきにくく、プログラミング言語の
オーバーロード機能なども利用しにくくなってしまう。
0304デフォルトの名無しさん
2007/04/11(水) 13:04:20内部コードにUTF使うか?
エンディアン無視してUCSそのままだろ。
0305デフォルトの名無しさん
2007/04/11(水) 16:58:30エンコーディングの問題とプログラミング言語の問題も分離できないくせに
偉そうなフリしてて笑えるw
0306デフォルトの名無しさん
2007/04/11(水) 17:35:010307デフォルトの名無しさん
2007/04/12(木) 19:06:05ウィンドウを閉じようとしたら「ハンドルされていないエラーが発生しました」とかいうエラーが
出てしまう。他のOpenGL使うサンプルもみんなそうなんだけど、これってwxWidgetsのバグ?
0308307
2007/04/13(金) 14:14:50原因がわかったぽい。
NVIDIAの提供しているデバッグ用ドライバだとエラーになるっぽい。
通常のGeForceドライバだとエラーにならなかった。
まさかドライバで動作が違うとはね。
0309デフォルトの名無しさん
2007/04/13(金) 21:16:38どうやって実装するの?
wxAcceleratorKeyはメニュー用のようだし、wxKeyEventはフォーカスされた
ウィンドウにしかトリガーしない。
リファレンスにもそれっぽい方法は見当たらなかったのだけど。
0310デフォルトの名無しさん
2007/04/13(金) 21:24:15それだったら"ファイル(&F)"でできるけど。
0311デフォルトの名無しさん
2007/04/13(金) 21:50:37いや、違うだろ。
グローバルホットキーのことでしょ?
OS依存度高そうだな。
0312307
2007/04/13(金) 22:01:38と思ったら、普通のGLUTアプリでもこけた。
こりゃwxWidgetsとは全然関係のない話で、単にドライバの仕様な予感。
スマンカッタ・・・。
0313309
2007/04/13(金) 22:18:52それもだけど、当面はアプリケーションごとの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:430316デフォルトの名無しさん
2007/04/20(金) 16:19:35面白いの見つけた(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してみたけど。
0320デフォルトの名無しさん
2007/05/05(土) 11:16:140321デフォルトの名無しさん
2007/05/05(土) 22:59:170322デフォルトの名無しさん
2007/05/06(日) 01:33:230323デフォルトの名無しさん
2007/05/06(日) 01:41:180324デフォルトの名無しさん
2007/05/06(日) 02:00:32ネタになるだろ?
だれかやって味噌〜
0325デフォルトの名無しさん
2007/05/06(日) 02:25:380326デフォルトの名無しさん
2007/05/06(日) 02:48:26ネタと言うか宣伝だわな
0327デフォルトの名無しさん
2007/05/06(日) 06:59:320328デフォルトの名無しさん
2007/05/06(日) 09:40:400329デフォルトの名無しさん
2007/05/06(日) 15:18:54ttp://monarch.sourceforge.jp/
0330デフォルトの名無しさん
2007/05/06(日) 18:26:03技と力と心が通う ザビタン(hehe!!)
イビル(hehe!!)ガブラ(Woo!Ohooho!!)
うなれジャンケル! アクサイザー3!!
0331デフォルトの名無しさん
2007/05/06(日) 19:42:180332デフォルトの名無しさん
2007/05/06(日) 20:14:110333デフォルトの名無しさん
2007/05/06(日) 20:16:530334デフォルトの名無しさん
2007/05/06(日) 20:25:59これが われらの 生きる道
アクサイザー!(Zanzan zazan!) アクサイザー!(Zanzan zazan!)
アクサイザー3!!
0335デフォルトの名無しさん
2007/05/06(日) 21:27:250336デフォルトの名無しさん
2007/05/10(木) 03:49:37コマンドアプリでイベント処理する場合にはどうすれば?
自作クラスにイベントハンドラを作る方法ってあるの?
ちなみにプログラムの特性上スレッドは却下、同期処理も却下
0337デフォルトの名無しさん
2007/05/10(木) 04:31:270338デフォルトの名無しさん
2007/05/10(木) 05:09:20ふふり
0339デフォルトの名無しさん
2007/05/11(金) 20:01:03便利なんだから(?)
0340デフォルトの名無しさん
2007/05/11(金) 22:58:07システムの時刻とアプリケーションの時刻を独立して管理したいんだけど
wxDateSpanとwxTimeSpanをwxDateTime::Nowに加算すればいいわけですね
問題はアプリケーションで管理すべき時刻とシステム時刻の差の計算はどうすればいいの?
wxDateSpanとwxTimeSpanを2個のwxDateTimeの差から計算するには?
0341デフォルトの名無しさん
2007/05/11(金) 23:24:290342デフォルトの名無しさん
2007/05/12(土) 16:44:230343デフォルトの名無しさん
2007/05/12(土) 20:18:490344デフォルトの名無しさん
2007/05/12(土) 21:01:480345デフォルトの名無しさん
2007/05/12(土) 21:53:13コンパイルに数時間かかるし
ドキュメントはほとんど英語しかないし
容量が1G以上いくし
内部構造まで解析できないとバグと仕様の区別が付けられないから不安定だし
まあようするに厨房には無理w
0346デフォルトの名無しさん
2007/05/12(土) 22:33:320347デフォルトの名無しさん
2007/05/12(土) 22:47:36でも、コンパイルは各環境で行わないといけない。
MFCの代わり?
(似てるし)
0348デフォルトの名無しさん
2007/05/12(土) 23:51:09まじっすか・・・
0349デフォルトの名無しさん
2007/05/13(日) 01:23:23MFCライクだけどMFCをさらに洗練したような感じになってること
完全クロスプラットフォームだからネットワーククライアント関係を作るなら便利
完全に無料だからライセンスを一切気にする必要がない
多国語サポートとかとにかく機能はすさまじく充実してるけどクラス設計が洗練されてて覚えやすい
0350デフォルトの名無しさん
2007/05/13(日) 01:30:20クラスの命名規約やパラメータのパターンやイベント処理方法がすべて統一されているから
ダイアログの表示の仕方を覚えると、フレーム作ったりMDI作ったりする方法がなんとなく想像できる
ちょっとそれらしい名前のクラスリファレンスを見るだけでダイアログを表示する方法と同じ方法で
いろんなものが表示できる
0351デフォルトの名無しさん
2007/05/13(日) 17:04:37英語が出来ないと辛い
0352デフォルトの名無しさん
2007/05/13(日) 19:36:07当方、wxPython使い。
0353デフォルトの名無しさん
2007/05/13(日) 20:49:24使わない機能も勝手に付いてきて重い
0354デフォルトの名無しさん
2007/05/14(月) 00:01:36でかいけどw
0355デフォルトの名無しさん
2007/05/14(月) 01:55:39ボタンの押下はポーリングでスキャンする方法しかないのでしょうか??
ボタンを長押ししたりすると、連打してるようになるし、
ボタンをちょっとだけ押しても反応しない時があるので困ってます。。
ボタンが押された時にだけイベントを発生させることはできないのでしょうか?
0356デフォルトの名無しさん
2007/05/14(月) 02:41:260357デフォルトの名無しさん
2007/05/14(月) 10:06:150358デフォルトの名無しさん
2007/05/14(月) 13:49:100359デフォルトの名無しさん
2007/05/14(月) 21:10:12みんなが辿る道
0360デフォルトの名無しさん
2007/05/14(月) 21:22:29やっぱりデカイのが痛い。
0361デフォルトの名無しさん
2007/05/14(月) 21:33:18デカイと痛いのか。。。
力を抜けよ。
0362デフォルトの名無しさん
2007/05/14(月) 21:43:010363デフォルトの名無しさん
2007/05/14(月) 21:45:430364デフォルトの名無しさん
2007/05/14(月) 21:45:59いやまて、チ○コじゃなくて、オパーイかも知れんぞ。
0365デフォルトの名無しさん
2007/05/14(月) 22:22:07そっちだって、でかいとジャンプするだけで痛いよ?
0366デフォルトの名無しさん
2007/05/14(月) 23:01:20それはつまり,C++を理解できてない人が打ちのめされたあげく,
Cだけで書こうと思い立つもCすらよく理解できていないからハンドラの扱いが
よくわからなくてWinAPIのサンプルをコピペしてダイアログ作って
テキストボックスに身長を入力したら標準体重を表示するだけの
プログラムの計算ルーチンだけを書いていたら頭の中でガリガリなった
ような気がする状態のことですね。あるある。
0367デフォルトの名無しさん
2007/05/15(火) 01:46:531.71以上にしたいんだけど、どうすればいいの?
0368デフォルトの名無しさん
2007/05/15(火) 03:07:02しかしDLLを作るには英語力が必要w
0369デフォルトの名無しさん
2007/05/15(火) 03:35:100370デフォルトの名無しさん
2007/05/15(火) 04:08:22■ このスレッドは過去ログ倉庫に格納されています