1 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 15:12:36 .net] クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)についてのスレ。 本家 ttp://www.wxwidgets.org/ wxWindows日本語プロジェクト ttp://wxwindowsjp.sourceforge.jp/ Cross-Platform Programming with wxWidgets ttp://wxwidgets.info/ Let's wxWidgets ttp://dot-gray.s33.xrea.com/ wxWindowsで始めるC++ GUIプログラミング ttp://www.h3.dion.ne.jp/~k5_n/wxwin/ wxWidgets でクロスプラットフォーム GUIアプリを作ろう ttp://0xcc.net/pub/uu-2004-08/ 前スレ 【GUI】wxWidgets(旧wxWindows) その4【サイザー】 pc12.2ch.net/test/read.cgi/tech/1214657360/
33 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:49:06 .net] gtkより歴史が古いことに驚愕
34 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:04:39 .net] gtkは糞
35 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:10:45 .net] >>34 頑張って置き換えてくれ
36 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 03:29:19 .net] gtkしかよう知らん.あれは糞なのか? qtとwxだとどっちが糞なんだ
37 名前:デフォルトの名無しさん [2010/06/24(木) 04:07:38 .net] ライセンス的には一部デフォルト設定から機能オフしないといけないけどwxが自由度高い
38 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 02:27:34 .net] >>37 その辺の話ってどこかにまとまってたりしますか?
39 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 02:56:56 .net] bf109.seesaa.net/article/9267915.html
40 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 07:39:43 .net] スレ2にまとめがあったけど GPL - コピペしてもリンクしても感染 LGPL - 動的リンクすれば影響しないが、静的リンクやコピペでは感染 wx - バイナリになっていれば煮ても焼いてもいい。コピペでは相変わらず感染 ということでいいのかな。 >>37 は知らないがどういうこと?
41 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:12:48 .net] >>40 wxが余計に解らない LGPLをゆるくしたものじゃね?
42 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 14:10:16 .net] 567 デフォルトの名無しさん [sage] 2009/10/17(土) 02:23:53 ID: Be: www.wxwidgets.org/about/newlicen.htm The wxWindows Licence is essentially the L-GPL (Library General Public Licence) wxWindows ライセンスは 本質的にはLGPL QtがLGPLになって企業サポートがついたいま wxWindowsに利点があるのだろうか?
43 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 02:01:41 .net] wxそのものに手を加える場合はLGPL。 単に自分のアプリを作るためのライブラリとして考える場合はバイナリで 自由に使える。ソースコードつけなくてもリンクしようが配布しようが自由。
44 名前:名無しさん@そうだ選挙に行こう [2010/07/11(日) 15:48:10 .net] はじめまして。 wxWidgets(wxWindows)日本語ドキュメントプロジェクトの方々に連絡を取った所 既に更新停止しているとの事なので、プロジェクトを移管して頂きSourceForge.netで 新たにプロジェクトを作りました。これからv 2.8 の翻訳を完成に向けて開始したい と思っています。 https://sourceforge.net/projects/wxwidgetsjpdoc/ 翻訳作業の出来る方募集中です。どうぞご参加ください。
45 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 01:13:45 .net] そうなのかー、乙です。 wxはポータブルなんで、日本でももうすこし広がるといいですね。
46 名前:デフォルトの名無しさん mailto:sage [2010/07/24(土) 21:05:36 .net] wxErlang って組み込みになったのか。 www.erlang.org/doc/apps/wx/ Erlang/OTP R13A (2009-04-03) から、公式配布物に含む。 (最新はR14A)
47 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 04:18:08 .net] Rubyスレで聞いたけど判る人がいないっぽいのでこちらに・・・ wxRuby 0.6.0betaを使ったアプリをwxruby.so同梱で配布する場合に適用されるライセンスは どのようになりますか? バイナリファイルでの配布なら?任意のライセンスを適用出来るみたいですが インタプリタ系の言語でバイナリファイルでの配布とか言われても難しいですし・・・ (exerbで配布したとしてもexeファイルの実態はインタプリター+ソースコードだし) よろしくお願いします
48 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 05:47:16 .net] orz = 3
49 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 16:52:17 .net] そういうのわ御社の法務部で聞いてください
50 名前:デフォルトの名無しさん [2010/07/27(火) 22:18:14 .net] すみません、誰か教えてください。 wxFormBuilderで作成されたForm内のm_textCtrlXXへの参照・代入ってどうやればいいんですか? 環境はVC++です。
51 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 22:40:10 .net] 内容を読み書きしたいってことかな ttp://docs.wxwidgets.org/stable/wx_wxtextctrl.html GetValue、GetLineText SetValue、AppendText この辺りだろう、ってか公式のリファレンスに網羅されてるからすぐ見たほうがいいよ
52 名前:50 [2010/07/27(火) 23:11:48 .net] お返事ありがとうございます。 wxFormBuilderで作成されたクラスがMyFrame1として、 MyFrame1::m_textCtrl28->SetValue(s); とかやってみたけど、ビルドが通ってくれないのです。 (申し訳ございません、C++よくわかってない人です) wxFormBuilderの場合、ここみたいに wiki.wxformbuilder.org/Tutorials/UsingSubclass サブクラス化してアクセスするのが正解なのでしょうか。 試してみたけど、なんか上手くいかないんです。
53 名前:50 [2010/07/27(火) 23:19:29 .net] いちおう追記しておきますが、wxFormBuilderベースでプログラム作って、ボタンを押して反応するところまでは成功しまています(一日かかりましたが)。 文字列操作しようとしたらまたハマってしまって困っているのです。
54 名前:デフォルトの名無しさん mailto:sage [2010/07/28(水) 08:55:09 .net] インスタンス化されたMyFrame1からアクセスしないと駄目です MyFrame1 frame; frame->m_textCtrl28->SetValue(wxT("moji")); この場合外側からのアクセスなのでm_textCtrl28のpermissionはpublicになってないといけない クラスの扱いはC++の基本なのでまずそちらから勉強した方がライブラリの理解も早くなります
55 名前:デフォルトの名無しさん mailto:sage [2010/07/28(水) 08:57:31 .net] ごめん3行目ミスw frame.m_textCtrl28->SetValue(wxT("moji"));
56 名前:50 [2010/07/28(水) 19:27:53 .net] おおお! MyFrame1 frame; としてみたところ、 frame. の入力で frame.m_textCtrl28->SetValue までVCの補完が効くようになりました! いけるかなと思ったのですが、ビルドしてみると 「'MyFrame1' : クラス、構造体、共用体に既定のコンストラクタがありません。」 のエラーになってしまいます。 なにはともあれ真理に近づきつつあるようです。ありがとうございます。 C++の勉強します。
57 名前:デフォルトの名無しさん mailto:sage [2010/07/28(水) 19:49:01 .net] MyFrame1 frame; frame = new MyFrame1(NULL); frame->m_textCtrl28->SetValue(wxT("moji")); じゃだめ?
58 名前:50 [2010/07/28(水) 21:25:03 .net] >>57 ありがとうございます。 やはり 「'MyFrame1' : クラス、構造体、共用体に既定のコンストラクタがありません。」 になってしまいます。 コードが継ぎ足し実験しまくりなのが不安なので、シンプルなコードで最初か らやり直してみようと思います。
59 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 01:38:24 .net] MyFrame1 *frame = new MyFrame1(NULL); じゃない?newを受けるのはポインタ というかもう少しC の勉強してからのほうがいいと思ふぞ
60 名前:50 [2010/07/29(木) 02:40:00 .net] >>59 ありがとうございます。 まだ継ぎ足し実験コードのままなのですが、試してみました。 MyFrame1 *frame = new MyFrame1(NULL); frame->m_textCtrl28->SetValue(wxT("moji")); としてみたところ、 「protected メンバ (クラス 'MyFrame1' で宣言されている) にアクセスできません。」 というエラーが。 m_textCtrl28をprotectedメンバで宣言しているのはwxFormBuilderが吐き出し たコードで、これはwxFormBuilderとしては「編集しちゃアカん」そうなので すが、m_textCtrl28をpublicメンバで宣言するように直したところ、ビルドが 通りました。でもSetValue(wxT("moji"))の効果はありませんでした。 うーん、勉強します。シンプルなコードでも試してみます。
61 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 02:52:29 .net] 日記
62 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 02:55:30 .net] 君にとっては新たな発見なのかも知れないが ここ見てるひとは当たり前過ぎてただのノイズ wx やりたいのは解るがしばらく我慢して もう少し C++ の勉強してから改めて取り組んだ方が良い
63 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 14:33:27 .net] C++のクラスの複雑さは異常
64 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 03:08:25 .net] Windows XP上のmingw+msys(最新安定板)でmakeしたのですが、ld: final link failed memory exhausted エラーでリンクに失敗します。wxMSW(安定板)とwxWidgets-2010-06-30 物理メモリーは2G近くの空き、システムドライブも20G近く空いています。 ネットでエラーを調べてLDFLAGSに-Wl,--no-keep-memoryを追加してみましたが同じ所でエラーになりました。 誰かタスケテorz
65 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 03:51:24 .net] 無視してもう一回make
66 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 04:50:27 .net] >>65 既に3回くらいやりましたが駄目でしたorz
67 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 05:51:56 .net] 3回とも同じ結果? 同じ場所で止まる?
68 名前:64 mailto:sage [2010/09/06(月) 06:18:57 .net] >>67 wxmsw291u_core_gcc_custom.dllを作成中にエラーになるのは同じで、その中でcould not read symbols: Memory exhaustedが起こる、読み込み中のオブジェクトファイルは違う事があるようです。
69 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 06:45:03 .net] cleanしちゃだめだぞ
70 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 09:26:15 .net] ビルドごとにディレクトリ作ったか?configureは試したか?
71 名前:64 mailto:sage [2010/09/06(月) 21:25:58 .net] 色々と調べたので中間?報告 ttp://comments.gmane.org/gmane.comp.gnu.mingw.devel/3728 多分、同じ現象が報告されていてgcc4.5では起きて4.4では起きないようです。 但しPF使用量を調べると、Win上のメモリ上限の遥か手前で落ちていました。 msysのデフォルトのulimitの仮想メモリの上限が約2GBでこれに抵触したようです。 現在msys上でrootを取得してulimitを変更する方法を検索中です。 ・・・msysはsuが壊れてるとかイミフ(ry >>69 cleanはconfigureの--enable-debugフラグを変更した時にしかしていません。 その他はLDFLAGSのみを変更してmakeを試しました。 >>70 ディレクトリは変更していません。configureをやり直した場合はcleanで対応しました。 wxWidgetsではなくてmsys固有の問題の可能性があります。 その場合にはmingw相談室で質問後結果報告させて頂きますね。<その方が良いですよね?自信がないです・・・。
72 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 23:53:29 .net] なんかサイザーの処理が最適化されていないのか、複雑なレイアウトを組むと 再描画に凄く時間が掛かる。 何か回避策や対策などがあるようならば教えてください。
73 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 17:43:04 .net] wxを窓から捨てる
74 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 17:55:13 .net] RADツール使ってサイザーやスペーサーを極力使わない構造を見つける
75 名前:72 mailto:sage [2010/09/07(火) 22:55:14 .net] リサイズしないウィンドウにしても、再描画時にサイザーの計算を しているっぽいので、そこをもう計算させないっていう様な設定が 出来たらしたいのです。 結局、複雑にサイザー使ってボタンとかびっちり詰め込むと サイザーの計算が重くなるのは仕方ないなとも思うので、 固定さえ出来れば問題なくなるはずです。
76 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 23:10:11 .net] 各コントロールごとに座標を想定してたりしないか?そういう使い方するもんじゃない ボックス系のサイザーとグリッド系のサイザーを適切に使えば綺麗にまとまるし さほど重くもならないと思うんだけど
77 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 23:22:25 .net] あとコントロール、サイザー共にExpandとStretch(proportion)はちゃんと個別に見直すべき そのあとでBorder、埋めきれないとこはSpacer
78 名前:デフォルトの名無しさん mailto:sage [2010/09/09(木) 09:58:14 .net] wxFormBuilder 3.1 Python対応 C++で日本語でもANSIで吐けるようになってるのを確認
79 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 02:13:45 .net] >>76 ちょっと見直してみたら、ボックスサイザーを入れ子にしてる所があるな。 そういうのは、グリッド系にすべきって事かな。
80 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 04:07:42 .net] サイザーごときで重くなるって 100個とか1000個単位で びっしり詰めてるのか?
81 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 11:58:53 .net] とりあえず、コントロールは100個近く詰まってはいる。 動作が重いというか、ウィンドウを(最小化などから)表示した時に 普通はパッというぐらいの速度で表示されるけど、それがパラパラっと コントロールが配置されるのが見えるって感じ。
82 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 12:03:53 .net] >>78 wxFormBuilderって物凄く安定しているのがスゲーと思った。 こういうのって不安定なものが多いから感心した。 ちなみに、Windows版。
83 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 14:23:13 .net] 以前に作ったコントロール90くらいのダイアログ見つけたからwxFormBuilder通して見てみたけど C2D E6600でもこの程度では特に重いとは感じない、というか変化がない SS見せてくれたら試しに組んでみてもいいよ
84 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 07:11:45 .net] 透過GIFを背景画像の上にぺたぺた貼り付けたいんだけど、透過GIFを入れたwxStaticBitmap を配置するだけだと背景色で透過部分がfillされます。styleをTRANSPARENTにしても効かない。 ウィンドウのDCを取得して、wxDC::DrawBitmapで地道に描かないとだめですかね?
85 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 11:28:09 .net] styleをTRANSPARENT SetMaskColour
86 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 01:51:53 .net] wxTextCtrlでカーソル位置にテキストを挿入するのってどうやるのが楽? GetInsertionPointの前後で分割して、入れたい値を合成して 再挿入、ってやったけど どうも改行があると値がずれるようなんで困ってて。
87 名前:86 mailto:sage [2010/10/18(月) 02:20:13 .net] 自己解決。Replace使えば良かったのか。 スレ汚しすまんかった。
88 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 02:32:29 .net] >>86-87 普通にWriteTextで キャレット位置に挿入(選択状態なら置換)出来るのでは?
89 名前:86 mailto:sage [2010/10/20(水) 23:19:42 .net] >>88 ……その通りでした。 ちゃんと隅々までドキュメント読むべきでした。 遅くなったけどどうもありがとう。
90 名前:81 mailto:sage [2010/10/31(日) 01:33:07 .net] >>83 その後、同一マシン上のVMwareでWindows2000とWindows7を実行して試してみたら、 Windows7上では同じ遅さだったけど、Windows2000ではめっちゃ速かったから 少なくともサイザーが遅いって事はなさそう。 ただ、VS2010上でビルド出来ないし、新しいプラットフォームの追従はあまり 早くないね。3.0が出てくれれば解決するのかな。
91 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 01:53:11 .net] >>90 単にスワップ起こしてるだけじゃねーの? 2GB程割り振って検証してみたら?
92 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 17:17:26 .net] >>90 VS2010のx64でビルドして使ってるけど、特においらの範囲では問題ないな。 VC6プロジェクトがVS2010で変換できないってことなら、VC2005か、VC2008で変換してからVS10で開けば通るよ。 2.9.xならVC8,VC9用のプロジェクトもある。
93 名前:90 mailto:sage [2010/11/03(水) 00:56:36 .net] >>92 > VS2010のx64でビルドして使ってるけど、特においらの範囲では問題ないな。 再描画の時に「パッ」じゃなくて「パラ」って感じなんで、まぁ問題っていうほど じゃないんだけどね。 > VC6プロジェクトがVS2010で変換できないってことなら、VC2005か、VC2008で変換してからVS10で開けば通るよ。 なるほど、その手があるのか。ありがとう。
94 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 05:11:47 .net] wxURLのProxy処理にバグがある・・・? GETしたいURL: www.google.com/ 使うProxy: localhost:8080 このとき、Proxyへリクエストヘッダを見てみると GET www.google.com/ HTTP/1.0 Host: localhost になってて、Proxyがlocalhostの/を取りに行こうとする。 RFCをちゃんと読んでないのでこれも正しいのかもしれないけど、 一般的なブラウザだと GET www.google.com/ HTTP/1.0 Host: www.google.com になってる。 送信先がhttpならHostをwww.google.comに書き換えないといけない (実際そうしてみたら手元の環境では動く)と思うんだが、俺間違ってる? 一応最新のソースをTrunkから落としてきてるけど、こんな単純なところでミス してたらテスト通らないだろうし… 俺が何かくだらないミスしてる気がしてならないので、誰かツッコミ入れて下さい。
95 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:25:39 .net] >送信先がhttpならHostをwww.google.comに書き換えないといけないと思うんだが、俺間違ってる? あってる
96 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:31:27 .net] wxURL_NOHOST
97 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:34:21 .net] これかな yomi.mobi/read.cgi/pc8/pc8_tech_1097524712/515-
98 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:54:08 .net] wxRIchTextCtrlの日本語インライン入力パッチありませんか?
99 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 18:39:00 .net] おや規制明けてる。 >>98 もう解決してる気がするけど、OS毎で処理系が全く異なる上、 日本と中国と韓国くらいしか影響がないのでそんな便利なパッチはたぶん無い。 RichTextはわからんが、Win上のwxStyledTextCtrlと同じなら、 MSWWindowProcをオーバーライドして、 WM_IME_STARTCOMPOSITION、WM_IME_COMPOSITIONあたりを捕捉、 Caretの位置から自分で逐次IMEの位置情報を変更してやればいいと思う。 しかし上でwxURLの話もされてるけど、HTTP通信周りの処理、 結構ボロボロだなコレ。 そういう用途で使ってるユーザがほとんどいないんだろうが・・・。
100 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 19:22:29 .net] UI以外の部分でwx使う意味ってあんまりないからじゃない?
101 名前:デフォルトの名無しさん [2010/11/24(水) 19:51:50 .net] そうか
102 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 23:22:37 .net] もう誰か作ってるだろと探したけど wxOnigurumaとか無かった。残念。
103 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 07:32:10 .net] 詳しい方ちょっと教えて下さい…。 ちょっと前からxchmというヘルプビューアを日本語表示できるようにしているのですが、 ShiftJIS->Unicodeの変換がうまくいきません。 一応wxString、wxMBConv、wxCSConv、wxEncodingConverterのリファレンスと ヘッダにある関数の組み合わせは一通り試したつもりですが、変換されるはずが 変換されなかったり、Initに失敗したりと散々です。 結局g_convert関数(GLibのiconvラッパー)で逃げましたが、wxWidgetで 書かれているソースに突如異物混入みたいで非常に美しくありません。 動作はしたので後は趣味の問題ですが、なんとかならないでしょうか? 環境はDebian、wxWidgets 2.6.7.1です。
104 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 21:51:03 .net] 2.9のドザーな俺にはアドバイスはできんが、 この辺で問題視されてる「wxMBConv はいくつかのサブクラスを持っていて、 こいつらはことごとく wchar_t の内部表現が UCS であることを仮定してる。」 あたりが原因じゃないのか? ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13
105 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 23:29:00 .net] >>104 早速感謝。 あー、そのページ、自分も見ました。 今ネット上にある日本語ページの中では一番内容が濃そうでしたね。 wxWidgetsが文字コード回りで大分無茶をしてるらしいことだけは判りました。 実際、文字コード変換には一旦wchar_t型を経由しないとならんのですけど、 charのSJIS->MB2WC->WC2MB とかやると、SJISでもUTF8でもない謎コードになっちゃうんですよね。 ちなみに、前スレでもWin使いの方が全く同じ趣旨の質問されてましたけど、 結局やはりWinAPIでなんとかしたらしいですね。 やっぱり無理ですかねぇ…。
106 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 00:43:27 .net] wchar_t の中身がUCS前提なのはこの場合問題じゃないだろ… >>104 の言っているUnicodeって、具体的に何?wxはUnicodeビルドで、wxStringにしたいの? SJISからwxStringにしたいのなら、 wxString s(sjis_string, wxCSConv('cp932')); を試した? コード出さないで質問しても、エスパーじゃない限り回答できないよ。
107 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 02:06:26 .net] >>106 あ、書き忘れてましたね、すいません。 入力はマルチバイト(char)のShiftJIS、欲しい出力はマルチバイト(char)のUTF-8で、 wxはDebian etchのものなのでUnicodeビルドです。 上のコードはもちろん試しました。 で、そこからどうすればchar型のUTF-8が得られるのか、もしくは別の方法を使うべき なのかで悩んでいるのが現状です。 ちなみに、成功例はこちら #include <glib.h> char *utf8_str = g_convert(sjis_str, -1, "utf-8", "cp932", NULL, NULL, NULL); で、これと同等のことをwxで行うにはどう書けばいいか?という質問です。 (この前後にwxベースのコードとやりとりするための処理が入るのですが、それが また汚いので、できれば回避したいです…)
108 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 08:39:35 .net] 言い訳はいいから問題起こしてる例のコードだせよ
109 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 11:28:57 .net] >>108 えー、失敗コードはもう全部消しちゃったんですよね…。 てか、ここまでの説明で判る方は判るし、判らん方はそこまででしょう。 この場合、頑張って失敗コード再現しても結果は後者だと思うので、No thank you.
110 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 11:41:57 .net] エスパーのかたのみお答えください
111 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 13:14:50 .net] 便乗して質問してもいいかな? wxMBConvとwxCSConvの違いって何? ヘルプ見てもよくわからん…
112 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 13:26:57 .net] >>111 wxMBConv は、変換系の抽象クラス。 wxCSConv は wxMBConv を継承した具象クラスで、 >>106 みたいに任意のエンコーディングとの変換を行う。 wxMBConvUTF8 も wxMBConv を継承した具象クラスで、 UTF-8との変換を行う。
113 名前:111 mailto:sage [2010/11/27(土) 13:34:03 .net] >>112 なるほど。ありがとう。
114 名前:107 mailto:sage [2010/11/27(土) 15:03:23 .net] ja.pastebin.ca/2003497 少なくともUbuntu 10.10では、wxCSConvでちゃんとcp932からUTF-8への変換ができたよ。 Debian etch とか古すぎて使う気にならないけど。
115 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:00:22 .net] >>114 多謝!! こっちでも試してみましたけど、できた!?ばかな!? 記憶を頼りに前回のコードと比較してみたら、違いが判りました。 OK: wxCSConv(wxT("cp932")) NG: wxCSConv(wxFONTENCODING_CP932) …こいつら違う意味なのかよ!? ちなみに、後者だとSJISでもUTF-8でもないデータになりました。 で、wxWidgetsのソースを読んでみました。 wxCSConv::wxCSConv(const wxChar *charset) { ... m_encoding = wxFontMapperBase::GetEncodingFromName(charset); } wxCSConv::wxCSConv(wxFontEncoding encoding) { ... m_encoding = encoding; } で、wxFontMapperBase::GetEncodingFromName(wxT("cp932"))は87でした。 wxFontEncodingはenumなので、じゃあ87はなにかというと、 wx/fontenc.h: wxFONTENCODING_MAX, // highest enumerated encoding value うん、意味が判らないんですが、これってwx使ってる方からしたら常識だったりしますか? それと間違えてました、使ってるのはetchでなくlennyでした、スイマセン。
116 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:17:40 .net] C++ の勉強からやり直せ
117 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:40:21 .net] xchmのコード変更完了! おかげさまで変更箇所が50行が4行になり、かなりすっきりしました。 相談に乗って頂いた方、大変有難うございました。
118 名前:107 mailto:sage [2010/11/27(土) 18:21:41 .net] fmapbaseの中にwxFONTMAP_CP932のエンコーディング名として最初にWINDOWS-932という 文字列が登録されていて、iconv にはこの名前のエイリアスが登録されていないから iconv に 失敗する、、、んだけど、iconv_open に失敗したらWINDOWS-932の次のCP932が利用されるように 見える。なのに失敗してる。 深追いはしてないからどこでコケてるのか判らないけど、とりあえず wxCSConv にはエンコーディング名を 直接渡したほうが、その名前が直接 iconv に渡るから落とし穴が少なそう。
119 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 18:27:01 .net] なるほど。ありがとう。
120 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 18:41:10 .net] >>118 あー、そういうことでしたか、なるほど。 感謝!
121 名前:106=114=118 mailto:sage [2010/11/27(土) 20:54:49 .net] 名前を間違えて107にしてしまった。 >>117 xchm の修正って、本家にフィードバックする予定ありますか? Linuxでもchmファイル読めたら便利そう。
122 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:36:15 .net] >>121 フィードバックの予定は特に無いです。 というか本家、まだ生きてるんだろうか? Ad-hocだけど、ここにパッチ貼っときます。 これでコンテンツと索引がちゃんと日本語で表示されるようになります。 検索の日本語対応は、ぱっと見かなり難しそうだったので保留中です。 むしろ誰かやって下さい…。 ちなみに、Linuxでchm読むだけでしたら他にもいくつかビューアがあるようですよ。 ご参考まで。
123 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:37:06 .net] +diff -urN xchm-1.17.orig/src/bitfiddle.inl xchm-1.17/src/bitfiddle.inl +--- xchm-1.17.orig/src/bitfiddle.inl 2010-11-27 17:21:37.000000000 +0900 ++++ xchm-1.17/src/bitfiddle.inl 2010-11-27 18:00:13.000000000 +0900 +@@ -194,10 +194,10 @@ + return wxEmptyString; + + if(enc != wxFONTENCODING_SYSTEM) { +- wxCSConv convFrom(wxFONTENCODING_ISO8859_1); +- wxCSConv convTo(enc); +- +- return wxString(input.mb_str(convFrom), convTo); ++ if (enc == wxFONTENCODING_CP932) ++ return wxString(input.To8BitData(), wxCSConv(wxT("cp932"))); ++ else ++ return wxString(input.To8BitData(), wxCSConv(enc)); + } + + return input;
124 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:39:25 .net] +diff -urN xchm-1.17.orig/src/chmfile.cpp xchm-1.17/src/chmfile.cpp +--- xchm-1.17.orig/src/chmfile.cpp 2010-11-27 17:21:37.000000000 +0900 ++++ xchm-1.17/src/chmfile.cpp 2010-11-27 19:35:02.000000000 +0900 +@@ -1056,10 +1056,8 @@ + #endif + topic = CURRENT_CHAR_STRING(combuf); + #if wxUSE_UNICODE +- else { +- wxCSConv cv(_enc); +- topic = wxString((const char *)combuf, cv); +- } ++ else ++ topic = translateEncoding(CURRENT_CHAR_STRING(combuf), _enc); + #endif + } +
125 名前:デフォルトの名無しさん mailto:sage [2010/12/01(水) 16:15:11 .net] wxPythonでとあるチャットのクライアントを作っているのですが wx.(Rich)TextCtrlでは打ち消し線は使えないのでしょうか?
126 名前:デフォルトの名無しさん mailto:sage [2010/12/03(金) 00:13:26 .net] >>125 wxFONTFLAG_STRIKETHROUGHを指定したフォントを適用してやるとかで できるんじゃない?
127 名前:デフォルトの名無しさん mailto:sage [2010/12/04(土) 15:45:14 .net] ありがとうございます。 font = wx.FFont(8, wx.DEFAULT, wx.FONTFLAG_STRIKETHROUGH) self.target.SetFont(font) FONTFLAG_STRIKETHROUGHを指定してみたのですが、打ち消し線が表示されません。
128 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 00:26:59 .net] wxWidgets2.8.xに実装されているウィジェットの表示サンプル一覧とかないですかね? サンプルを実行してみないとどのように表示されるのか判らないのはかなり不便・・・('A`)
129 名前:デフォルトの名無しさん [2010/12/05(日) 02:32:55 .net] demosも一緒にインストール汁
130 名前:デフォルトの名無しさん mailto:sage [2010/12/06(月) 23:39:23 .net] >>127 ttp://trac.wxwidgets.org/ticket/9907 打ち消し線が有効化されるパッチ。 ただし2.9。
131 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 00:41:50 .net] >>130 遅れましたが、ありがとうございます。 wxWidgets用のパッチのようなのですが、 wxPythonに適用させる方法がわかりません・・・
132 名前:デフォルトの名無しさん mailto:sage [2011/01/01(土) 17:37:18 .net] Androidに対応してくれないかなぁ・・・
133 名前:デフォルトの名無しさん mailto:sage [2011/01/02(日) 03:08:38 .net] AndroidやiPhoneもそうだけど、Mac対応(wxCocoa)もしっかりして欲しい。 このままじゃ何時まで経っても64bit化出来ない。 やっぱり企業の後ろ盾がないプロジェクトはきついかもね。