facebook twitter hatena line google mixi email
★お気に入り追加


  • 1
  •  
  • 2010/04/09(金) 15:12:36
クロスプラットフォーム 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【サイザー】
http://pc12.2ch.net/test/read.cgi/tech/1214657360/

ここまで見た
  • 111
  •  
  • 2010/11/27(土) 13:14:50
便乗して質問してもいいかな?

wxMBConvとwxCSConvの違いって何?
ヘルプ見てもよくわからん…

ここまで見た
  • 112
  •  
  • 2010/11/27(土) 13:26:57
>>111
wxMBConv は、変換系の抽象クラス。
wxCSConv は wxMBConv を継承した具象クラスで、 >>106 みたいに任意のエンコーディングとの変換を行う。
wxMBConvUTF8 も wxMBConv を継承した具象クラスで、 UTF-8との変換を行う。

ここまで見た
  • 113
  • 111
  • 2010/11/27(土) 13:34:03
>>112
なるほど。ありがとう。

ここまで見た
  • 114
  • 107
  • 2010/11/27(土) 15:03:23
http://ja.pastebin.ca/2003497
少なくともUbuntu 10.10では、wxCSConvでちゃんとcp932からUTF-8への変換ができたよ。
Debian etch とか古すぎて使う気にならないけど。

ここまで見た
  • 115
  •  
  • 2010/11/27(土) 17:00:22
>>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
  •  
  • 2010/11/27(土) 17:17:40
C++ の勉強からやり直せ

ここまで見た
  • 117
  •  
  • 2010/11/27(土) 17:40:21
xchmのコード変更完了!
おかげさまで変更箇所が50行が4行になり、かなりすっきりしました。

相談に乗って頂いた方、大変有難うございました。

ここまで見た
  • 118
  • 107
  • 2010/11/27(土) 18:21:41
fmapbaseの中にwxFONTMAP_CP932のエンコーディング名として最初にWINDOWS-932という
文字列が登録されていて、iconv にはこの名前のエイリアスが登録されていないから iconv に
失敗する、、、んだけど、iconv_open に失敗したらWINDOWS-932の次のCP932が利用されるように
見える。なのに失敗してる。

深追いはしてないからどこでコケてるのか判らないけど、とりあえず wxCSConv にはエンコーディング名を
直接渡したほうが、その名前が直接 iconv に渡るから落とし穴が少なそう。

ここまで見た
  • 119
  •  
  • 2010/11/27(土) 18:27:01
なるほど。ありがとう。

ここまで見た
  • 120
  •  
  • 2010/11/27(土) 18:41:10
>>118
あー、そういうことでしたか、なるほど。
感謝!

ここまで見た
名前を間違えて107にしてしまった。
>>117 xchm の修正って、本家にフィードバックする予定ありますか?
Linuxでもchmファイル読めたら便利そう。

ここまで見た
  • 122
  •  
  • 2010/11/27(土) 22:36:15
>>121
フィードバックの予定は特に無いです。
というか本家、まだ生きてるんだろうか?

Ad-hocだけど、ここにパッチ貼っときます。
これでコンテンツと索引がちゃんと日本語で表示されるようになります。
検索の日本語対応は、ぱっと見かなり難しそうだったので保留中です。
むしろ誰かやって下さい…。

ちなみに、Linuxでchm読むだけでしたら他にもいくつかビューアがあるようですよ。
ご参考まで。

ここまで見た
  • 123
  •  
  • 2010/11/27(土) 22:37:06
+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
  •  
  • 2010/11/27(土) 22:39:25
+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
  •  
  • 2010/12/01(水) 16:15:11
wxPythonでとあるチャットのクライアントを作っているのですが
wx.(Rich)TextCtrlでは打ち消し線は使えないのでしょうか?

ここまで見た
  • 126
  •  
  • 2010/12/03(金) 00:13:26
>>125
wxFONTFLAG_STRIKETHROUGHを指定したフォントを適用してやるとかで
できるんじゃない?


ここまで見た
  • 127
  •  
  • 2010/12/04(土) 15:45:14
ありがとうございます。

font = wx.FFont(8, wx.DEFAULT, wx.FONTFLAG_STRIKETHROUGH)
self.target.SetFont(font)

FONTFLAG_STRIKETHROUGHを指定してみたのですが、打ち消し線が表示されません。

ここまで見た
  • 128
  •  
  • 2010/12/05(日) 00:26:59
wxWidgets2.8.xに実装されているウィジェットの表示サンプル一覧とかないですかね?
サンプルを実行してみないとどのように表示されるのか判らないのはかなり不便・・・('A`)

ここまで見た
  • 129
  •  
  • 2010/12/05(日) 02:32:55
demosも一緒にインストール汁

ここまで見た
  • 130
  •  
  • 2010/12/06(月) 23:39:23
>>127
ttp://trac.wxwidgets.org/ticket/9907
打ち消し線が有効化されるパッチ。
ただし2.9。


ここまで見た
  • 131
  •  
  • 2010/12/25(土) 00:41:50
>>130
遅れましたが、ありがとうございます。
wxWidgets用のパッチのようなのですが、
wxPythonに適用させる方法がわかりません・・・

ここまで見た
  • 132
  •  
  • 2011/01/01(土) 17:37:18
Androidに対応してくれないかなぁ・・・

ここまで見た
  • 133
  •  
  • 2011/01/02(日) 03:08:38
AndroidやiPhoneもそうだけど、Mac対応(wxCocoa)もしっかりして欲しい。
このままじゃ何時まで経っても64bit化出来ない。
やっぱり企業の後ろ盾がないプロジェクトはきついかもね。

ここまで見た
  • 134
  •  
  • 2011/01/15(土) 01:11:15
Qtは人気あるのに、こっちは盛り上がらないね。

ここまで見た
  • 135
  •  
  • 2011/01/15(土) 01:25:48
QtはLGPLがヤダ

ここまで見た
  • 136
  •  
  • 2011/01/15(土) 01:32:35
>>134
枯れてるからね

ここまで見た
  • 137
  •  
  • 2011/01/15(土) 14:18:26
ほとんど同じ時期じゃね?
wx Initial release 1992
Qt Initial release 1992; 19 years ago
wxの敗因は、やっぱ製品として売り出してないからじゃね?

ここまで見た
  • 138
  •  
  • 2011/01/15(土) 20:08:32
Android => Java, Google
gtk,Mono => Suse, Microsoft
Qt => Nokia, Google, Intel
wxwidget => ???

ここまで見た
  • 139
  •  
  • 2011/01/15(土) 20:12:46
何の矢印だよ、それ。

ここまで見た
  • 140
  •  
  • 2011/01/18(火) 00:04:15
wxRubyノート - ListCtrl を使ってサムネイル一覧を表示してみる - Alone Like a Rhinoceros Horn
ttp://d.hatena.ne.jp/h1mesuke/20100427/p1
のコードを動かしたいのですが日本語パスが使える状態で動かせません

Ruby 1.8.7+wxRuby 2.0.1
 動作するけど日本語を含むパスが認識しない
 (Ruby 1.8.xがUTF-8のパスを処理出来ないためっぽい
 S-JISだと今度はwxRubyがパスを認識出来ない)

Ruby 1.9.2+wxRuby 2.0.1
Ruby 1.9.1+wxRuby 2.0.1(mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe)
Ruby 1.9.1+wxRuby 2.0.0(mingw32-ruby-1.9.1-wxruby-2.0.0-setup.exe)
 RubyはUTF-8のパスを処理出来るけど
 >@thumb_list.clear_all
 のところで固まる

日本語パスが使える状態で動作させる方法があったら教えてください
よろしくお願いします

ここまで見た
  • 141
  •  
  • 2011/01/18(火) 06:48:23
ttp://codepad.org/SaG84FKe

ここまで見た
  • 142
  • 140
  • 2011/01/23(日) 01:33:16
レスありがとう。ってPython!?Σ(゚Д゚)
わざわざ書き直してくれたのに申し訳ないけどRubyでコーディングしたいので・・・

とりあえずいじり回していたら思いついた案
1.Ruby 1.8系を使用。wxImage::load_streamを使う
  ファイルの自動判別が出来ない
2.Ruby 1.8系を使用。Rubyのファイルパスを扱うメソッドをUTF-8に対応するように再定義
  数が多くコーディング量が多い。デバッグも大変
3.RubyでwxPythonを使う
  まだ実験していない。動いたとしても関連ライブラリのサイズがでかくなりそう?
どれもイマイチだ(´・ω・`)

ここまで見た
  • 143
  •  
  • 2011/01/23(日) 03:01:42
Ruby知らんけど、単に文字コード変換するんじゃダメなの?

ここまで見た
  • 144
  •  
  • 2011/01/23(日) 17:59:40
コントロールに画像使うとリソース食うから
サムネにはお勧めできない

ここまで見た
  • 145
  •  
  • 2011/01/23(日) 19:23:43
GUIやるならPythonの方が良いと思うけどなぁ。
Windowsと日本語はもちろんだけど、>>140のBlog見てるとスレッド周りにも
問題あるみたいだし。

ここまで見た
  • 146
  •  
  • 2011/01/23(日) 20:59:01
>サムネイルを作成する間ウィンドウがブロックしないよう、サムネイルの作成は別スレッドで行っている。
>(ただし、サンプルということで、排他制御は一切やっていない)
>
>イベントループのあるメインスレッドからのスレッド切り替えが円滑に行われるよう、
>メインスレッドではタイマーを使って定期的に Thread.pass している。
>
> Wx::Timer.every(100) do
> Thread.pass
> end
>
>これが必要になる理由については次のエントリでやる予定。

謎のコード

ここまで見た
  • 147
  • 141
  • 2011/01/23(日) 21:11:49
>>142
べつに謝らんでもええよ
漏れは困ってへんから


ここまで見た
  • 148
  •  
  • 2011/01/23(日) 21:38:27
>>146
ttp://d.hatena.ne.jp/h1mesuke/20100508/p1
ここのコメ欄の方が怖いぞ。

ここまで見た
  • 149
  •  
  • 2011/01/24(月) 05:23:51
Ruby使ってないから気にしない

ここまで見た
  • 150
  •  
  • 2011/01/27(木) 23:54:02
wxWidgetsでアニメ(not 動画ファイル。MNG or 連番PNGを想定)を表示したいのですが
単に表示されている画像をインターバルで書き換えていく方法だとフリッカーが出てしまいます
再描画と画像の書き換えの同期が取れていないためだと思いますが同期させる方法が判りません
何か良い方法があったら教えてください。よろしくお願いします

ここまで見た
  • 151
  •  
  • 2011/01/28(金) 01:18:19
ソース貼れ

ここまで見た
  • 152
  •  
  • 2011/01/28(金) 23:04:25
>>150
wxBufferedPaintDC使え。

ここまで見た
  • 153
  • 150
  • 2011/01/30(日) 00:53:07
レスthx

>>152
なるほどそう言うのがあるのか。試してみます

ここまで見た
  • 154
  •  
  • 2011/01/30(日) 16:14:40
2.9.1が出てから音沙汰無いな

ここまで見た
  • 155
  • 150
  • 2011/01/31(月) 00:06:45
>>152
フリッカーを無くせました。ありがとうございました

ここまで見た
  • 156
  •  
  • 2011/02/05(土) 22:36:59
>>154
ttp://wx.ibaku.net/changelog/
連日どんどん更新されてるけど音沙汰ない?

ここまで見た
  • 157
  •  
  • 2011/02/11(金) 06:24:01
前スレがやっと埋まったぽい。埋めた人お疲れさま。

ここまで見た
  • 158
  •  
  • 2011/02/11(金) 23:54:18
つうか次スレ立てるの早過ぎだろ

ここまで見た
  • 159
  •  
  • 2011/02/13(日) 21:55:32
このライブラリタダ?

ここまで見た
  • 160
  •  
  • 2011/02/18(金) 08:33:59
EVT_LEFT_DCLICK で bind して処理しようとすると
EVT_LEFT_UP EVT_LEFT_DCLICK が同時に来るみたいなのですが
EVT_LEFT_DCLICK だけ受け取るにはどうすれば良いでしょうか?

ここまで見た
  • 161
  •  
  • 2011/02/18(金) 20:45:41
>>160
wxMouseEventのLeftDClickで判別すればいいんじゃないの?

ここまで見た
  • 162
  •  
  • 2011/02/18(金) 21:35:20
GoogleIME使ってるんだが、TextCtrlで未変換文字列とか変換候補とかが表示されないのは仕様か?
MSIMEならちゃんと表示された

お絵かきランド
フリックゾンビ
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email
おすすめワード