[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/05 01:38 / Filesize : 262 KB / Number-of Response : 969
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2006/09/09(土) 00:06:30 ]
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)について語りましょう。

本家
 www.wxwidgets.org/
wxWindows日本語プロジェクト
 wxwindowsjp.sourceforge.jp/
Let's wxWidgets
dot-gray.s33.xrea.com/
(*)準備中(*)
www.geocities.co.jp/SiliconValley-Cupertino/8526/
wxWindowsで始めるC++ GUIプログラミング
www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
namazu.org/~satoru/pub/uu-2004-08/
dW : Linux : wxWindowsの概要
 www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
 www.idg.co.jp/sw/back/200102/20010219_01_report.html

655 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 09:51:47 ]
>>654
自分も探しましたよ。ストールマンの呪縛から逃れるために^^

そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。

656 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:28:10 ]
たしかにコンソールで日本語打ちたいと思うケースはあまりない


657 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:05:57 ]
> cd C:¥デスクトップ¥夏休みの宿題¥プロジェクト1¥宇宙シミュレータ
> bigbang.exe 初期値1.xls > 結果1.xls

658 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:46:08 ]
後々ターミナルからアクセスすることを考えると日本語ファイル名は打つのめんどくさいから付けない

659 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:48:26 ]
ubuntuの「デスクトップ」をどうにかしてください

660 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:58:16 ]
>>658
自分で作らなくても、仕事だと嫌ほど受け取る。


661 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:52:22 ]
>>655
あとは Tecla というのもあるよ
マルチバイトが使えるかは知らないけど…

www.astro.caltech.edu/~mcs/tecla/

662 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:17:58 ]
>>659
ディレクトリ名書き換えれたけど

663 名前:デフォルトの名無しさん [2008/02/17(日) 02:32:40 ]
2.8.7リリースされてるけど最近は流行ってないの?

てかスレ違い?



664 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:33:33 ]
ごめん微妙に誤爆

665 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 04:03:32 ]
というか、流行ってた頃ってあったの?

666 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:01:23 ]
気づかずにお世話になってる人はいると思うがね
vlcとか

667 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:57:27 ]
vlcねぇ〜
あれってなんであんなにバイナリのサイズが小さいの?
VCとかで作ってるとどんなに気を使ってもMBサイズの大きさになってしまう・・・


668 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:01:05 ]
libwxwidgets_plugin.dll
2.66 MB (2,793,984 bytes)

こういうカラクリ

669 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:55:57 ]
あー、もしかしてライブラリをビルドするときにDLLでビルドすればいいのか
納得しました

670 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:15:57 ]
実行ファイルさえ小さければDLLが多少でかくてもそんなに文句は出ないという
意外と盲点かもしれないね

671 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:25:28 ]
てかサイズ大きくてもいいからDLL1ファイルだけってできないん?

672 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:45:30 ]
MONOLITHICのSHAREDじゃ駄目なのか。
試したことないが。

673 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 18:56:33 ]
wxWidgets用のRADツールはWinでならどれ使うのが良いでしょうか?



674 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:28:21 ]
どれを、と言うほど選択肢あるのか?

wxGlade, wxFormBuilder, wxDesigner, wxSmith, VisualWx...

あ、結構あるなw

675 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:39:39 ]
wxWorksってのも違うの?

676 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:38:31 ]
比較サイト見っけた
wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features

677 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:59:22 ]
いやいや、DLL分けた分起動遅くなるだけじゃん。
Linuxのように、ディス取り標準ビルドの共有ライブラリが一つあってそれが基準になるなら良いけど、
Windowsではオレオレビルドのdllがまかり通るからstaticリンクが無難。

678 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:17:48 ]
wxってsetup.hでビルドオプション変更できるみたいだけど、
Linuxで共有ライブラリのビルドオプションが気に入らなかったら、
staticリンクにしろってことでいいのかな?

679 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:10:38 ]
>>678
UN*X 系は RUNPATH や LD_LIBRARY_PATH で対処する方が多いんじゃないかな。
wx みたいな、でかいライブラリを static にする事は殆ど無いと思うよ。

680 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:10:25 ]
wxPythonの2.6なのですが、
gridの任意のセルに、Ctrl押し下げ+マウスの左クリックイベントを送りたいのですが
どのようにすればいいですか?
だれかとっかかりだけでも教えてください。お願いします。

681 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:00:16 ]
wxDev-C++いれてみたけど
かなり頑張ってるな。


682 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:04:15 ]
wxwidgetsってエラーが出てコンパイルできねーんだけどやる気あんのか中の人。

683 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:08:42 ]
>>682
おまえはやる気あんのか?



684 名前:デフォルトの名無しさん [2008/02/24(日) 10:02:28 ]
C言語でクロスプラットフォームなGUIプログラミングしようと思ったら
wxWigets or QT or GTK どれが良いですか?

wxWigets の環境をうまく作れなかったので、QT入れてみたのですが・・・。

685 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:26:47 ]
初体験するなら、恋人、ナンパ娘、風俗嬢の誰がいいですか?
恋人をうまく作れなかったので、風俗嬢に挿れてみたのですが・・・。

686 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:31:45 ]
>>684 が挙げた3つの中でC言語なのはGTK+だけ

687 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:55:18 ]
妹に一緒にお風呂に入ろうと誘われたんですがどうすればいいですか?

688 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:11:32 ]
>>685
初体験なのに3つも選択権をもっているような人は
このスレに来てはいけません

>>687
具体的に何を迷っているのか分からない。
なぜ考える必要があるの?

689 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:07:33 ]
妹=42歳(千代大海似)

690 名前:デフォルトの名無しさん [2008/02/24(日) 19:56:56 ]
wxを使ってMindmapエディタを自作したいと思ってるんですが、
複数のテキストボックス(サークル)間にリンクを張って
表示するのに便利なモジュールってありますか?
# うまく説明できなくてすみません。

snapshotを見ると、UML図を書けるようなアプリはあるようですが、、、

691 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:22:27 ]
そんな程度の考えでマインドマップ作ろうってのは無謀な気がするが
それはおいとくとして、
けっこうプラットフォームによってまちまちな部分があるので、
マルチプラットフォームを考えてるなら、ありもののパーツで
なんとかならない場合はwxはやめといた方がいいかも。
たとえばマインドマップとかペイントソフトとかだとキャレットの操作が必要になると
思うけど、Win版はちゃんとネイティブのキャレットを操作してるが
GTK版なんかは自前でキャレットらしき棒を描く場所を変更してるだけ。

692 名前:デフォルトの名無しさん [2008/02/25(月) 00:33:32 ]
wxGladeのTextCtrlのlayoutプロパティでoptionっていう項目がありますが、これってなんの値なんでしょうか??

693 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:06:09 ]
>>692
最近のはproportionと呼び名が変わったようだ。
>>523 の説明がわかりやすいと思う。



694 名前:デフォルトの名無しさん [2008/02/25(月) 09:50:19 ]
親ウィンドウと子ウィンドウを連動しようと思い。
親ウィンドウのMoveEventから
子ウィンドウのMoveを呼び出したのですが、
エラー落ちしてしまいます。

何か方法があるのでしょうか?

695 名前:692 [2008/02/26(火) 01:20:38 ]
>>693さん
なるほど。523見てなんとなく分かりました。
ありがとうございました。

696 名前:694 mailto:sage [2008/02/26(火) 08:35:58 ]
コンストラクタ内でMoveEventが呼ばれ(たぶんCenter関数)
その時にはまだ子ウィンドウが生成されてなかった。

しかも初期化が完了してない無効なポインタだったので
当然エラーということだった

コンストラクタで始めに関数が呼ばれる前に
事前初期化してないとエライことになる可能性があるという教訓でした。


697 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:20:52 ]
メニューのフォントを変更しようと思い、
wxMenuBarにフォント設定したけど反映されない・・・
なぜ・・・

698 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 09:25:53 ]
wxMenuBar

wxWindowsを継承しるのになんでそのフォント使わないで
インラインで別のフォント使うのか理解できん。



699 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 11:01:34 ]
早くwx-usersに要望を出す作業に戻るんだ

700 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:31:15 ]
メニューバーが自前で描画するモノなんかあったっけ?

701 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:38:09 ]
wxWidgetsってWindows Mobile環境でも動作するんでしょうか?
あと、その場合、バインディング言語(wxPython等)でも利用可能なんでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 09:36:44 ]
wxpyce.wikispaces.com/

703 名前:701 mailto:sage [2008/03/01(土) 09:55:26 ]
>>702
サンクスです。



704 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:02:32 ]
あるウィンドウのZオーダーを動かしたい(一番手前に表示したい)
のですがどうやればいいのでしょうか?
よろしくお願いします。

705 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:36:52 ]
>>704
Raise()

706 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:51:07 ]
2年以上開発版のままだったCode::Blocksが2/28に8.02をリリースしてた。
www.codeblocks.org/


707 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:52:50 ]
使えそう?

708 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:22:07 ]
>>705
できました。ありがとうございました

709 名前:706 mailto:sage [2008/03/03(月) 20:05:07 ]
>>707
Fedora8で昔使ってみたときのプロジェクト試してみたけど、
Buildしたときのerrorとwarningが入れかわってる気がする。一応動いたけど。
ちょっと前にチェックしてたけど、
2、3日に一回くらい開発版だしてて追いつけなかったからリリースをまってた。
いろんなOSで動くところが好きなので、そのうち本格的に使うかも。
macportsにもきてた。


710 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:37:13 ]
wxGladeで画面を作成しているのですが、
widgetを配置する画面(Frameをダブルクリックして出てくる画面)に、
配置してあるボタン等が収まりきらなくなりました。
しかしながら、Previewで見るときちんと全部収まっています。
Panelを削除するとこの現象は出ないのですが、どこか作り方が
おかしいのでしょうか?
どなたか教えてください。


711 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:50:20 ]
>>710
Previewの方が正しい。
wxGladeを立ち上げ直すと直ることもある。
けど,まあそんなもんだと思っている。

712 名前:710 mailto:sage [2008/03/04(火) 23:36:30 ]
>>711
レスありがとうございます。
そうですか。
Panelを捨ててしまうと、タブ移動が出来なくなるので困っていました。
wxGladeのバージョンアップに期待というところでしょうか?
sizerの入れ子の数とかでおかしくなるのかなー。

713 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:00:25 ]
wxRubyでXRCでGUI部分作って、メニューアイテムやら押したときにメッセージボックスを表示させたいんだがどうやればいいんだ?

ボタンを対象にfind_window_by_name('TEST')とかやって
evt_button(@update.get_id){
Wx::message_box("テストだよ", "test", Wx::OK | Wx::ICON_INFORMATION, self)
}
とかするとちゃんとメッセージボックスやらが出せるんだけど
find_window_by_name('MENUBAR')とかやってもnilが返ってきてしまうんだ…



714 名前:デフォルトの名無しさん [2008/03/15(土) 16:01:46 ]
下がってるのであげてみることにする

ちなみにwxRubyについてるサンプルソース読むと、XRCのサンプルでもコード上でメニューバーとか追加してた

715 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:02:14 ]
事故解決した
Wx::Frame#get_menu_bar
ちぅのがあるのね…

716 名前:デフォルトの名無しさん [2008/03/16(日) 09:00:11 ]
widestudioとどっちがいいですか??

717 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:25:52 ]
どっちがいいか言い切れるんならもう片方は消滅してるよ

718 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 02:22:43 ]
wx-gladeでseparate for each classというオプションにチェックを入れてコードを吐かせてみたのですが
wxAppクラスを継承したMyAppクラスの宣言部がmain.cppとして一個増えただけでした。

www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_0.html
このページみたいにモジュールを分割していきたいのですが、wxTextCtrlを継承させる予定のwxTextCtrl2クラスのコードを別ファイルで吐かせたりするにはどうすればよいのでしょうか。


719 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 01:24:25 ]
長らく使ってないけど
wxTextCtrl2っていうCustom Widgetを作るんじゃなかったかな

720 名前:デフォルトの名無しさん [2008/03/18(火) 16:17:05 ]
EditDlg *dlg = new EditDlg(this);
dlg->ShowModal();
dlg->Destroy();

メニューの実行で、上記を実行していますが、
最後のDestroyでアプリが落ちてしまいます。
Destroyは不要ですか?

環境は、Mac OS X 10.4 /wxMac-2.8.7を使っています。

721 名前:720 mailto:sage [2008/03/18(火) 16:28:26 ]
もう少し状況が分かりました。

ダイアログのシステムボタンで閉じる → ×
Close()で閉じる → ×
Hide()で閉じる → ○

つまり、閉じ方によって、ウィンドウのDestroyが呼ばれるかどうかが決まるんですね?

詳しい方、情報もしくは、同意よろorz

722 名前:デフォルトの名無しさん [2008/03/19(水) 14:39:14 ]
wxWidgetsの環境変数で、
ファイルのパスのデリミタや、
実行ファイルのディレクトリを
取得できますか?

723 名前:デフォルトの名無しさん [2008/03/19(水) 16:01:40 ]
argv[0]を参照する方法はありますか?



724 名前:723 mailto:sage [2008/03/19(水) 16:07:02 ]
みつけますた ---> ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxappargv

725 名前:723 mailto:sage [2008/03/19(水) 16:29:58 ]
で、wxAPPのインスタンスってダイアログ側からどうやって取るんでしょう?


726 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:33:30 ]
::wxGetApp

727 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:44:51 ]
thx!>>726
orz

728 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 13:36:28 ]
>>722
デリミタは、wxFileName::GetPathSeparator()

実行ファイルディレクトリは、
wxFileName exepath(wxStandardPaths::Get().GetExecutablePath());
wxString exedir = exepath.GetPath();
でexedirに入る。


729 名前:718 mailto:sage [2008/03/20(木) 19:48:39 ]
>>719さん
レスありがとうございます。試してみます!
お礼遅れてすいません。


730 名前:729 mailto:sage [2008/03/20(木) 19:58:09 ]
と・・調べてみたのですが、custom widgetsってwx-gladeのパレットに新しい項目追加するような感じで自分でカスタムしなければいけないのですね。
これだとクラス継承する毎にパレットに追加しなくてはならなくなりますよね。。(当然ですが)

クラス継承して使いたい場合、みなさんどうやってコードを書いているのでしょうか??
自分で継承して作ったクラスを全部wx-Gladeで描画できるようにするのはけっこう面倒くさそうですし・・
あんまりファイル分割しない方がいいんでしょうか。
それとも、wx-gladeはあんまり使わない、とか・・


731 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:29:23 ]
wx-gladeはあんまり使わない

732 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:50:35 ]
wxFormBuilderがおすすめ
適当なコントロールから継承したカスタムコントロールやウィンドウなら、
継承元の見た目で作って、クラスを指定してヘッダファイル名まで指定できる。

733 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:55:02 ]
>>728
有難うございます。まだ調査している最中だったので助かりました。

>>732
そうなんですか。。。
知らなかったのでwxDev C++ を使ってますorz





734 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:19:46 ]
Windows環境だと、
>std::string str;
>wxString wstr = str;
と書けるんですが、
wxMacだと、
>wxString wstr = str.c_str();
と書かないとコンパイル通らないみたいです。

何でだろ。。。

735 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:09:27 ]
ユニコードを使ってるかどうかかな?

736 名前:734 mailto:sage [2008/03/21(金) 16:19:02 ]
あ、なるほど。>>735

wxMacは、環境設定でユニコードをオンにしてmakeしたようなかすかな記憶。
Windows版は、wx-debcppをインスコしただけだったような記憶。

この問題って難しい問題ですね。

737 名前:デフォルトの名無しさん [2008/03/21(金) 23:32:17 ]
すみません。初心者です。
wxDev-C++で作成したコードをLinuxでコンパイルできますか?
できるとしたら、makefileは自作ですか?
分かる方がいましたらよろしくお願いします。

738 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 23:59:59 ]
自作でもいいが、autotools(automake/autoconf)あたりがおすすめ

739 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:43:56 ]
wxが採用してるbakefileがいいんじゃないの。

740 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 10:55:32 ]
>>738 >>739
ありがとうございます。試してみます。
まず、configure自体を知らないとダメなんでしょうね。勉強します。

741 名前:730 mailto:sage [2008/03/23(日) 13:31:54 ]
情報ありがとうございます!
wxformbuilder、インストールしてみようと思ったのですが

Dependency is not satisfiable libwxbase2.8-0

とエラーが出てインストールできず・・

libwxbase2.8-0の再インストールとかしてみたのですがダメでした。
解決方法分かる方いらっしゃったら教えて頂けるとありがたいのですが・・

742 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:07:53 ]
wxのC言語バインディングってないのかのう?

743 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:26:47 ]
>737
wx-configを調べてみて
wxConfigクラスではなくてwx-configってコマンド



744 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:26:51 ]
>>741
とりあえず、ver3 RC8を落として、解凍すればインストールいらないのでは?
downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
wxFormBuilder.exe起動したら動いたよ?ソースからビルドしようとしてる?

745 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:33:15 ]
>741
ちょいと使ってるOS回りの詳細を書いてくれ
なんとなくLinuxじゃないかと思うが、だとすっとdistroとバージョンは?

746 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:59:32 ]
wxDev-C++でデバッグしていて、ブレイクポントの2、3ステップ先で止まる
んですけど、こういうもん?Code::Blocksの方が使いやすいですかね?(Windowsです)

747 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:01:31 ]
>>741
>Dependency is not satisfiable libwxbase2.8-0
の時点でUn*x系だろうけど…
wxがちゃんと動いてるなら自前でビルドした方が良いんじゃないか?

748 名前:730 mailto:sage [2008/03/23(日) 22:34:56 ]
ご親切にありがとうございます!

OSはUbuntuで7.10です。wxWidgets自体は動いてます。

downloads.sourceforge.net/wxformbuilder/wxFormBuilder_v3.0.56-RC8-archive.exe?download
の方、試しに落として起動しようとしてみたのですが、エラーが出て起動できませんでした。

自分が落とそうとしていたのはこっちです。
sourceforge.net/project/downloading.php?group_id=135521&use_mirror=jaist&filename=wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb&93744357

こっちの方をダウンロードすると勝手にgdebi-gtkというので開かれ、パッケージインストーラというのが出るのですが、そこで

Dependency is not satisfiable libwxbase2.8-0

と言われます。

ubuntuforums.org/showthread.php?t=536984
とか
www.developpez.net/forums/showthread.php?t=369200 (イタリア語・・?)
とか見て色々試してみたのですが、解決しません・・

wxwidets の導入に手間取って、色んなパッケージのインストールとアンインストールを繰り返しまくってたのでなんか完全にインストールできてない状態になっているのかなと思ったのですが、libwxbase2.8-0をSynapticで完全削除後再インストールしても状況変わらず・・。

sudo apt-get install libwxbase2.8-0 でも 既に最新のパッケージです と言われてしまう状態です。


749 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:25:04 ]
>>748
ダウンロードしたら、パッケージのあるディレクトリ行って
%sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
みたいな感じじゃなかったか
…物凄い基本だった気がするが、Linuxやめちゃったからよく覚えてないや

つーかWindowsバイナリ走らせようとするなwwww

750 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:25:44 ]
Linuxじゃない、Debianだ

751 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:27:41 ]
debでインストールしようとするならubuntuスレで聞け

./configure & make & sudo make install
ならこのスレでもok...か?

752 名前:730 mailto:sage [2008/03/25(火) 00:08:06 ]
レスありがとうございます。
Linux初心者なもので・・ご親切にありがとうございます。

sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
これをやってみると、

wxformbuilder は以下に依存 (depends) します: libwxbase2.8-0 (>= 2.8.7.1) ...しかし:
システム上の libwxbase2.8-0 のバージョン は 2.8.4.0-0ubuntu3 です。

のようなエラーが出ました。どうもlibwxGtkとかlibwxbaseのバージョンが古かっただけみたいです汗
再インストールするのがめんどくさいのでwxformbuilderの方のバージョンを前のにしてインストールしてみたら今度は成功しました。
wxWidgetsのソース群はsynapticでインストールしたのですが、レポジトリが最新じゃないのですね・・

というわけで、解決しました。
微妙にスレ違いすいません&ありがとうございましたm(_ _)m


753 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:13:28 ]
wxWidgetsのUTF-8版はありますか?



754 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:22:01 ]
>>753ググレカス
www.wxwidgets.org/wiki/index.php/Development:_UTF-8_Support

755 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 02:19:49 ]
すみません。wxDev-C++でBreakPointに止まってくれないのですが、そういう症状出たことある人いますか?
バージョンは6.10です。VB感覚で作成できそうなので、残念です。
もしwxDev-C++が候補から外れると、
Code:Blocksを使ってみようかと重うのですが、そちらはちゃんとデバッグできますか?

756 名前:753 mailto:sage [2008/03/27(木) 08:58:47 ]
>>754
ありがとう。
UTF-8は目標ですか。

AnsiToUnicode/UnicodeToAnsiみたいな関数が欲しいですが、
wxWidgetsにあるんだろうか。。。

>>755
そういう症状でます。
自分の場合、ターゲットOSのデバッガでデバッグできました。
デザイン用のGUIエディタと割り切って、デバッグIDEは別のものにしてみたら?

757 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 10:08:28 ]
何でwxWidgetsだけで何でもかんでもやろうとするんだ・・・

758 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:24:28 ]
>>756ググレ(ry
・・・っていうかAPIリファレンスくらい目を通しておけ
wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxstring.html#wxstringwcstr

UTF-8の事だけど、試してないから正確なことはわからないが
未完成なだけで、一応使えるんだろ?
これから使うんだったら報告よろ



759 名前:756 mailto:sage [2008/03/27(木) 11:53:38 ]
>>758
さんくす。

実際にwxConvUTF8.使ってるサイトハッケソ
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html
今すぐ動作させてみます。



関係ないけど、マニュアルのuft8_strを使うとコンパイルエラー、みたいな。

760 名前:756 mailto:sage [2008/03/27(木) 13:42:08 ]
>wxString SBuf;
>SBuf = "UTF-8文字列";
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);
>SBuf = wxConvUTF8.cMB2WC(SBuf);
>wxMessageBox(SBuf, wxT("SBuf"), wxOK);

2番めメッセージで、空文字になってるようなorz


761 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:01:21 ]
Windows上で使っています。
wxWidgetsでIMEを制御する方法があったら教えてください。

TextCtrlにフォーカスが移ったらIMEがONになる、などの使い方がしたいです。

762 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:23:15 ]
>>760
気分転換にデバッガで追ってみた
原因はよくわからんが文字列に日本語が入ってるのがいかんらしい
"UTF-8String"で問題なかった

>>761
公式にはないようだから
自分で作るか適当に探してみ

あとwxTextCtrlはデフォで日本語入力ができるから
IMEが制御できてもあんまり意味ないとおも

763 名前:761 mailto:sage [2008/03/27(木) 17:36:16 ]
>>762
ありがとうございます。
数値を入れるTextCtrlではIMEが自動でOFFになる、と説明すればよかったです。
ググっても出てこないので、自作の道を考えてみます。



764 名前:760 mailto:sage [2008/03/27(木) 18:10:35 ]
>>762
調査ありがうとうございます。
言われるとおり日本語があるかないかで動作変わるみたいです。

ソースの日本語表記の問題ではないことを確かめるため、
コントロールから日本語入れてみました。

>wxString SBuf = WxEditPath->GetValue();
>SBuf = wxConvUTF8.cMB2WC(SBuf);

これで、Editに"aaa"と入れると、SBufは"aaa"で、sizeが3でした。
しかし、"あああ"と入れると、SBufは""でsizeは0。
日本語入れると動作しないUTF-8コンバートだなんて(><)


765 名前:760 mailto:sage [2008/03/27(木) 18:44:31 ]
>wxUSE_UNICODE
を定義してコンパイルすると、

>catch (std::logic_error &e) {
> wxMessageBox(wxT(e.what()), wxT("Error"), wxOK);
>}

といったwxMessageBoxがコンパイルエラー起こすんですが、何でですか?
ソースコードのファイルはSJISですが関係あるのかなぁ。


766 名前:760 mailto:sage [2008/03/27(木) 18:53:43 ]
あれ、wxDev-C++で、新規プロジェクトを作った直後wxUSE_UNICODEをつけてmakeすると、
コンパイルは通るけど、リンクエラーだ。
なんか難しいなorz

767 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:59:21 ]
>>766
wxDev-C++なんてよくわからないもの使わないでVC++を使ってください

768 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 22:22:51 ]
>>765
ソースがSJISならwxConvUTF8は使えないと思う

769 名前:755 mailto:sage [2008/03/27(木) 23:57:05 ]
>>756
ありがとうございます。デザインだけwxDev使えば良いんだね。
そういう使い方もあったか。

770 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 07:02:56 ]
>>764
根本的にわかってないなあ。overviewとかリファレンスとか読めよ。
なんでこう手探りでやろうとするかね。

c??2?? というのは MB, WC, WX があって、MBはマルチバイト文字列、
WCはwchar、WXはwxChar。
wxWidgets的にはwcharとwxCharは違う。陽にwcharを操作する状況でない限りはWXを使うべき。で、
wxConvUTF8.cMB2WC
はUTF-8表現されたマルチバイト文字列からwcharへの変換。
そこにWindowsでANSIビルド使ってるならSJISか? を渡せば変換に失敗して
何も出てこないのは当たり前の話。

>> 765
> >wxUSE_UNICODE
> を定義してコンパイルすると、

それはwxをビルドするときの設定で定義されるものだ。必要ならANSIビルドと
unicodeビルドと両方入れて、wx-configのオプションによって使い分けるんだよ。

771 名前:764 mailto:sage [2008/03/28(金) 09:28:54 ]
ありがとう。>>770

文字変換関数のみはunicodeビルドをするしかないですね。

>wx-configのオプションによって使い分けるんだよ。

難しいorz

772 名前:764 mailto:sage [2008/03/28(金) 09:32:44 ]
>wx-configのオプションによって使い分けるんだよ。

あ、wxConfigオブジェクトとwxAppオブジェクトの連携かと思って劇しく難しいのかと思ったら、
コンパイルのコマンドラインの話ですね?

なら、文字変換関数のみ別プロジェクトでwxUSE_UNICODEを定義してコンパイルしてオブジェクトモジュールを作っとくだけですよね。

その後、>>766 のリンクエラーを対処すれば終わり?

773 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 15:58:39 ]
そんなうまくいくかどうかわからんような小細工は
ここで質問してるような奴がやることじゃないと思うがなあ。



774 名前:764 mailto:sage [2008/03/28(金) 16:12:19 ]
その通りかもしれない。

wxWigetsの文字変換はやめときます。

ドズで動作するのは、ICUだけですか?
iconvは動作しませんよね。

775 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:27:03 ]
iconvはない。でもWindowsならOS自体に変換APIがあったと思うけど。詳細は忘れた。

776 名前:デフォルトの名無しさん [2008/03/28(金) 19:56:57 ]
windowsならmlang.dllが使える。
iconvのI/Fがいいなら

ttp://gtklab.sourceforge.jp/iconvmlang/index.html
なんかどう?


777 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 20:28:23 ]
もしかして、新Mac板にいたwx君なのか?

778 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 12:27:39 ]
ListCtrlを使っているのですが、MFCでいうオーナードローとかカスタムドローって
できないのでしょうか?
描画時のイベントやメソッドが見つからないのですが・・・


779 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:32:18 ]
wxFormBuilder使ってみたのですが、C++Editorでソースをいじってみようとしたら、文字の書いたり消したりが全くできませんでした。(ショートカットメニューのCopy と Select ALLだけが動く・・)
これはバグではなくて、wxFormBuilderはそういうもんなのでしょうか?
ショートカットメニューにcutとかpasteとかもあるのにdisableになっている感じなので、バグのような気がするのですが・・。

780 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 08:47:27 ]
>>776
それ、良いですね。

何でかというと、wxDev使ってるせいで、デザイン中はWinなんです。
そこで、iconvでWinとUNIX系と同じコードにできるなんて理想。

781 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:16:01 ]
wxLocalのオブジェクトってグローバルであるのでしょうか?
どうやって取得すれば。。。

それとも自分でnewするもんでしょうか。

782 名前:781 mailto:sage [2008/03/31(月) 18:45:34 ]
なんか分らないけど、
>include
して、
>wxLocal::メソッド
と書くと、
コンパイル&動作しました。

グローバルオブジェクトなのか、スタティックメソッドなのかどっちかでしょう。

783 名前:デフォルトの名無しさん [2008/03/31(月) 19:25:03 ]
>wxLocale::GetSystemEncodingName()
>windows-932

この値は、iconv_openで使う文字列でしょうか?



784 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:05:31 ]
>>782-783
理解できないまま、推測だらけでコーディングするのは良くないよ
自分で試したり、質問する前にちゃんとドキュメント読んだり、検索してる?

785 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 23:51:05 ]
似たような事を別スレで言われてMac板へ向かった彼じゃないか?

786 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 02:05:32 ]
>>778
wxListCtrl - Ownerdraw: msg#00755

osdir.com/ml/lib.wxwindows.general/2004-01/msg00755.html
で質問している外人さんがいるけれど、答えは「自作リストコントロールを作りました」になっています。

しかし、
jaist.dl.sourceforge.net/sourceforge/wxwindows/changes-2.8.7.txt
ここを見ると、「Support right-aligned/centered owner drawn items in wxListCtrl」と書いてあるので、何かやり方があるのかも。

787 名前:デフォルトの名無しさん [2008/04/01(火) 16:04:23 ]
wxMac(Mac OS X)で、
システムメニューのHelpを押したときの処理を書く方法はありますか?
もしくはシステムメニューのHelpの下にサブメニューを作りたいです。

(IDEはwx-Dev C++ですが、手書きで良いので)

788 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 00:31:40 ]
すみません。 eclipse + CDT + MinGW + wxWidgets の環境構築の方法を解説したサイトはありますか?
ちなみにOS は Windows XP です。
古い情報は何件か見つけたのですが、うまくいきませんでした。



789 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:30:04 ]
>>787
www.wxwindows.org/docs/faqmac.htm#aboutmenu
ここに書いてあるみたいだけど、英語だからワカンネー (´・ω・`)

790 名前:787 mailto:sage [2008/04/02(水) 10:44:08 ]
サンクス>>789

ググる翻訳でうっすらと分かる感じです。
とりあえず、Menu IDを合わせると動くのかなぁ。

----------
アップル社はどのような標準をサポートしてwxmacメニュー項目については、ヘルプメニューですか?
wxwidgetsがないため、特定のAPIには、 [ ヘルプ ]メニューまたはメニュー項目については、 Mac OSのポートが使用する静的変数を助けるためのいくつかのエンジンを的確に判断する:

・それを前提としてメニュー項目については、 ヘルプメニュー部分です。
・ [ ヘルプ ]メニューのタイトルは、保存されwxapp : : s_machelpmenutitlenameと、デフォルトの" &ヘルプ"が、それを変更することができますし、お客様の特定のコンストラクタをメニューのタイトルです。
・メニューアイテムのID については、保存されwxapp : : s_macaboutmenuitemid 、 wxid_aboutデフォルトでは、変更することもできますが、お客様のニーズに合わせている。
・wxwidgets 、他のアイテムは、 [ヘルプ]メニューに追加されると、マックOS ヘルプ ]メニューの翻訳文のお申込みのためのIDは透過的に処理されます。

791 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 12:18:01 ]
wxpython だったらできた。

ttp://www.harukaze.net/~haruka/wxpython/wxpy09.html
を参考に、

self.HelpMenu = wx.Menu()
ID100 = wx.NewId()
self.HelpMenu.Append(ID100, u"ヘルプ", "help") #Helpメニューの下にプルダウンされる内容
MyMenuBar = wx.MenuBar()
MyMenuBar.Append(self.HelpMenu, "&Help") #Helpメニューを追加する
self.Frm.SetMenuBar(MyMenuBar)
self.Frm.Bind(wx.EVT_MENU, self.Alert, id=ID100)

とした。
About の方は、wx.ID_ABOUT で指定しても動かなかった

792 名前:787 mailto:sage [2008/04/02(水) 12:50:31 ]
>>791
wxpythonででも、出来るってことは出来るってことだね。

そのままC++コードに移せそうですね。

ま、最悪、wxpythonをデバッガでトレースか。

793 名前:788 mailto:sage [2008/04/02(水) 23:31:49 ]
windows版 eclipseでは、wx-configを指定したらダメなんでしょうか。



794 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:22:32 ]
wxFormBuilderで、既に存在しているウィジェットを継承したクラスをwxFormBuilder上で作って、
そのクラスをや他のクラスを含んだコードをクラス毎に1ファイルずつ分割して吐かせたいのですが、どうすればできるでしょうか??

subclassやらcustom control などの情報を探して色々やってみたのですが分かりませんでした。
どなたか教えていただけると幸いです。


795 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 10:47:50 ]
wxMacを使っていますが、デバッグコンパイルでさえ実行ファイルが92KBしかありません。
多分、ランタイムが必要なコンパイルとなってると思うのですが、
スタティックリンクにするための手順をご存知の方教えて頂けないでしょうか?

796 名前:デフォルトの名無しさん [2008/04/04(金) 17:42:29 ]
 ↑
この内容ヨロ!

797 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:24:41 ]
Mac板で聞くほうがいいんじゃね?

798 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:27:39 ]
 ↑
あんまり回答こないYO!

799 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:33:29 ]
何が原因かわからないけど、もうちょっと問題の切り分けをしたほうがいいんじゃね?
wxWidget の問題なのか、C++なのか、XCode なのかとかさ。

800 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
するどいですね。
XCode使ってます。

逆に言うと、全く皆目見当つかなくて、切り分けできないので質問なげてます。
切り分け出来たら、あとはリファレンスとか何とか手に入れて全パターン試すだけですもんね。

ライブラリの構築(--disable-sharedですか?)の失敗なのか、
プロジェクトのmakeのコマンドラインが悪いのか。。。

801 名前:795 mailto:sage [2008/04/04(金) 18:48:38 ]
もしくは、バンドルするDLLを特定できれば良いのですが。。。

802 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:58:07 ]
XCodeでどう設定されてるかわからんけど、
wx-config --static=yes --libs
で出てくるオプション指定するとどうかな

使ってる共有ライブラリを特定するには
otool -L バイナリファイル名
で出てくる

803 名前:794 mailto:sage [2008/04/04(金) 19:07:00 ]
放置されっぱなしの794ですが、分かる方いらっしゃいましたらこちらも教えていただけると幸いです。

795さんうらやますぃ



804 名前:795 mailto:sage [2008/04/04(金) 19:15:39 ]
サンクス。

>wx-config --static=yes --libs
「他のリンクフラグ」に入れましたが、ダメみたいです。(入れ方が悪いのかも。いろいろ試してみます。)

>otool -L バイナリファイル名
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.3)
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 63.0.0)
/System/Library/PrivateFrameworks/ZeroLink.framework/Versions/A/ZeroLink (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

こんな感じです。多杉orz

805 名前:795 mailto:sage [2008/04/04(金) 19:36:51 ]
プロジェクトのオプションが、
>ライブラリ検索パス
>フレームワーク検索パス
が空文字でした。

これが問題なのかな?

806 名前:795 mailto:sage [2008/04/04(金) 19:47:29 ]
検索パスは空ですが、
プロジェクトのメンバーにライブラリファイル
>mac-ansi-release-static-2.8
がちゃんと入っていました。

逆に、
>*.a
ファイルまで入ってるため、ダイナミックリンクになっちゃうのかな?

807 名前:795 mailto:sage [2008/04/04(金) 19:58:03 ]
やっぱり、*.aファイルも無いと動作しません。

リリースビルドを行うと、
>/usr/bin/ld: can't locate file for: -lwx_base_carbon-2.8
というエラーになりましたorz

808 名前:デフォルトの名無しさん [2008/04/04(金) 22:57:30 ]
>>794
もっと図太くならないと。バンバンageながら、質問やら状況を795並みにするんだ。
恥ずかしくなんか無い!!


809 名前:転載せざるをえない mailto:sage [2008/04/04(金) 23:05:24 ]
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称ではない。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。

810 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:11:06 ]
wx-config --static=yes --libs
をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ
というか一体どうやってビルドできるところまで設定したのよ

811 名前:デフォルトの名無しさん [2008/04/04(金) 23:20:44 ]
エスパーって(w
794がかわいそうすぎる

812 名前:794 mailto:sage [2008/04/04(金) 23:26:42 ]
>>808 さん
ありがとうございます。

神経細いわけではないと思うんですが笑、
状況を詳しく書こうと思っても、エラーが出るとかじゃないですしOSどうこうってわけでもなく、単純に使い方が分からないってだけなのでこれ以上説明できることが何もないのです・・。

wxFormbuilder使えば、wxFormbuilder上で既存のウィジェットを継承したクラスを作成できると思っているのですが、そもそもそれが間違っているのでしょうか??

ていうか809は俺のこと言ってるんですかね?汗


813 名前:809 mailto:sage [2008/04/05(土) 02:55:06 ]
あぁ御免、誤爆だな
そういや開いてから3時間ぐらい放置してたわ

…それだけだと何なので、
wiki.wxformbuilder.org/Tutorials/UsingSubclass
こういうことではないの?



814 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 09:25:00 ]
>>794
wxFBではクラスを作ることはできないので、自分で作るしかない。
ただ、作ったクラスを使うことはできる。適当にコントロールを置いて、プロパティのところに、includeするヘッダとクラス名を書けば
そのクラスを使うようにはなるが、コンストラクタへの引数やスタイルなどのプロパティは置いたコントロールに依存するので、paneあたりを
継承すれば、wxWindowあたりを継承したコントロールなどにも対応できる。

MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
ウィンドウやダイアログごとに別ファイルにしたいなら、作者に要望を出すとか、ソース公開されてるから自分で変えるとか・・・

815 名前:794 mailto:sage [2008/04/05(土) 13:54:14 ]
レスありがとうございます。

> 813 さん
そのページも見たのですが、どうもサブクラスに使う名前とヘッダーファイルを指定できるだけのような感じがして、求めているものじゃない感じでした。


> 814 さん
>>wxFBではクラスを作ることはできないので、自分で作るしかない。
>>MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
やっぱりそういうものだったのですか。
情報ありがとうございました。

逆に、継承クラスを書いたり、クラス別にファイルを吐き出してくれたりするwx関連のRADツールみたいなものはないのでしょうか??


816 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 19:23:00 ]
>>815
自分でコードを書いて作ったコントロールを
wxFormBuilder上でフォームに貼ることならできるみたい。
wiki.wxformbuilder.org/Tutorials/CreatingCustomWidgets

これだけ調べて出てこないということは、
wxでは、コントロールはコードで書く必要があるのではないかと。

817 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:58:12 ]
自分もRADツール使おうと思って色々探していて、
wxFormbuilder か wxDev C++ っていうのが一番よく見かけるような気がしたのでどちらかにしようかと思っているのですが、それぞれどういった特徴があるんでしょうか??
なんか上のやりとり見ているとの実際使ってみても何ができて何ができないのかすぐに分からなそうな気がしたので、詳しい方に教えてもらう方が早いかと思いました。
よろしかったらどなたかご教示ください。

818 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:05:35 ]
wxFormBuilderはRADツールではない。

819 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:50:10 ]
RAD なら wxForms がいいかも。
ただし Borland/CodeGear C++ Builder 用のアドインだけど。

820 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:11:03 ]
>>819
それ使って上での話?
C++Builderなら使ってるんだけど、
wxWidgetsは心機一転、別のIDE(wx-dev)にしちゃったおorz

821 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:50:41 ]
>>820
いや、使ってない。
Web 上の資料を見て「RAD じゃん!」と思ったので。

822 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 13:57:35 ]
自分は Python な人なので、GUI 作成には XRCed を使ってます。

823 名前:795 mailto:sage [2008/04/09(水) 13:59:07 ]
>>810
有り難うございます。出力されました。

-L/MyDev/wxMac-2.8.7/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime
/MyDev/wxMac-2.8.7/lib/libwx_mac_richtext-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_aui-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_xrc-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_mac_qa-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_html-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_mac_adv-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_mac_core-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_base_carbon_xml-2.8.a
/MyDev/wxMac-2.8.7/lib/libwx_base_carbon_net-2.8.a /MyDev/wxMac-2.8.7/lib/libwx_base_carbon-2.8.a
-framework WebKit -lwxregex-2.8 -lwxexpat-2.8 -lwxtiff-2.8 -lwxjpeg-2.8 -lwxpng-2.8 -lz -lpthread -liconv

>というか一体どうやってビルドできるところまで設定したのよ

XCodeにFinderからてきとーにD&Dしました。



824 名前:815 mailto:sage [2008/04/09(水) 14:24:18 ]
>>816さん
うーむないのしょうかね・・
レスありがとうございましたm(_ _)m

825 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:05:59 ]
>>823
頼むから、内容を細切れにして、いろんなスレでマルチで聞くのはやめてくれ。
誘導元か、関連するレスのリンクを貼ってくれないと状況が理解できない。
そんなんだと、根本的な問題の原因を見抜けなくてドツボにはまるかもよ。

826 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:14:28 ]
原因を解決する気があればこうも糞みたいな書き込みを続けないって。


827 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:35:35 ]
>>822
俺はRubyな人だけどXRCedが一番使いやすいと思ったわ

828 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 07:55:35 ]
いいよね

829 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:00:42 ]
>>822 wxGlade はだめなの?

830 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 21:18:14 ]
Gladeは安定性が低い

831 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:21:30 ]
windows Home, MinGW 5.1 wxMSW2.8.7 で開発しています。

簡単なGUIハローワールド程度のプログラムならコンパイルできる状態なのですが、
普通に g++ sample1.cpp sample2.cpp `wx-config --cppflags --libs`
とした時に、リンク時に、
undefined reference to `wxWindow::RegisterHotKey(int, int, int)'

undefined reference to `wxWindow::UnregisterHotKey(int)'
などのエラーが出るソースがあります。(コンパイルには成功しているみたいです。)

ググってみたのですが、情報が少なく解決できていません。(英語苦手というのもあります汗)
www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-39,GGLJ:ja&q=undefined+reference+to+%60wxWindow%3a%3aRegisterHotKey%28int%2c+int%2c+int%29%27

解決方法分かる方いらっしゃいましたら、教えていただけると幸いです。


832 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:37:29 ]
すいません追記です。
上記のソースは1つのLinux環境と2つのWindows home 環境で試したのですが、Linux環境ではリンクにも成功してビルドできるのですが、Windows Home 環境では両方ともリンクに失敗します。
なので、WindowsにインストールされているwxMSWで設定がおかしいところがあるのかなと思うのですが・・


833 名前:831 mailto:sage [2008/04/11(金) 18:54:27 ]
すいません自己解決しました。

wx-config --libs で使うライブラリがmsys の /usr/lib
になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
/usr/lib にコピーするだけで解決しました。
wxWidgetsインストール時のバグだったんでしょうか。。




834 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:31:28 ]
>>829
wxGlade は、次の2点が理由で好きではないのです。

1. 自分の書いたコードと自動生成されたコードがまざるのが不安
2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。

特に2番は、複数マシンで開発をしているときに困ります。

835 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:41:34 ]
>>833
>wx-config --libs で使うライブラリがmsys の /usr/lib
>になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。

prefix指定しなかったのならデフォルトで /usr/local/lib にインストールされる。それが普通。
あと別に /usr/lib になければいけないなんてことはなくて
コンパイル時に -L/usr/local/lib つければいいだけ。
wx以前にgccの使い方の話なんでその辺勉強してみるといいかも。

836 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:57:03 ]
>>834
>1. 自分の書いたコードと自動生成されたコードがまざるのが不安
C++で使ってるけど,wxGladeの吐く.cpp, .hとは別のファイルにそれから
派生したクラスを定義して,実装は派生クラスに書いて,wxGladeの吐く
コードとはほぼ完全に分離できている。

>2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
.wxgからの相対パスで指定すればOKかと。

837 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 05:51:46 ]
>>835
wx-config って、その -L とかを自動で指定してくれるスクリプトのはずなんだよ。
それが必要なパスを吐かないなら、設定に問題がある。
インストールがうまくいかなかったんじゃないかな。

838 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 10:58:54 ]
>>834
自分は Python 形式で書き出しているので、
書き出されたファイルの一部に手を加える必要があります。
(最低でも ID 宣言とか)

相対パスで指定できるのは知らなかったです。
試してみます。

839 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:18:32 ]
>>837
ど素人なのすが、Windowsではwx-config は msys上でしか使えませんか?
eclipse上で指定したいのですが無理ですか?

840 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:54:53 ]
バッチファイル作ってラップするとか
@c:\msys\1.0\bin\sh.exe --login -c "wx-config %*"
こんな感じでwx-config.batとか作るといいかもしれない
eclipseでバッチファイルをそのままオプションに指定できるのかどうかはわからないが

841 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:02:18 ]
wxPythonで画像変形の高速化を行ないたい
のですがwxImageの画像データを直接取得する
方法はありませんか。GetData,SetDataでは
コピーしか渡らないようでうまく行きません。
PIL,Pygameによる画像変形は転送がネックに
なり高速になりませんでした。
PyOpenGLでは画像を直接取得できそうなのですが
画像が大きくなる(2048*2048)とリソースで
問題が出るようで試していません。
御教示お願いします

842 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 18:43:25 ]
>>841
wxImageのGetDataならピクセルデータを直接得られるはずだよ。
少なくとも、自分のところではそうなってる

843 名前:841 mailto:sage [2008/04/14(月) 01:39:36 ]
>>842
Python上で出来ました?
言葉が足りなかったので補足しますと、
wxImageの画像アドレスを知りたいのです。
ctypesでGetDataから渡された文字列を
強制的に書き換えても画像に反映されないので
コピーが渡されているようです。

高速化するにはDLLから直接書き換えるしか手が
なさそうなのですが、やっぱり無理
かなぁ。メニューのフォントサイズ変えるため
MenuItem.SetFontしたら落ちるし、前途多難…



844 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 03:11:03 ]
>>843
wx.ImageのGetDataBufferはダメだった?

845 名前:843 mailto:sage [2008/04/14(月) 17:22:28 ]
>>844
御回答有難うございます。
GetDataBufferってあったんですね。_core.py見なおしたら
見つかりました。返却値はbufferオブジェクトですね。
str()はありますがアドレスは隠蔽されてるみたいです。
Pythonからのアクセスはかなり快適で面白いオブジェクト
でしたが…残念。

答えていただけそうなのでもう1件お尋ねします。
wxBitmapを大量に格納しようとするとすぐ落ちて
しまいます。wxImageでは問題無いのでシステムリソースに
格納してるのかとも思っているのですが、その
限界を知る方法がよく分りません。御存知の方が
いましたら御教示お願いします。

846 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:52:08 ]
Python から wxDC を渡してやって、
DLL 側で画像描画をできないだろうか…と
ちょっと思ったり。

ファイルからの Bitmap の読み込みも DLL 側でやる感じで。

847 名前:843 mailto:sage [2008/04/14(月) 22:50:17 ]
GetDataBufferの件でやっと気付いた。
bufferオブジェクトってインタラクティブな状態で
見ると実体アドレスが出てる。bufferオブジェク構造体から
アドレスを拾えるみたいです。ctypesで直接書き込んで
確認できました。pyrex使えばなんとかなる…かも
教えていただき有難うございました。

>>846
ちょっと似たことをPILのImageWin.Dibでやってみました。
描画はPILからwxでwxのDCにPILからpasteする方法です。
結果はクリッピングがとても面倒で実用になりません
でした。pythonオブジェクトはpyrexで簡単に
拾えるかもしれませんが私の能力では実現は厳しそうです。


848 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:07:29 ]
ちょっとお尋ねしたいのですが、ubuntuでwxWidgetsを使って開発していたソースをWindowsの方に移してコンパイルしようとすると、文字化けしました。
ソースの文字コードがUTF-8だったので、UbuntuではwxWidgetsの文字コードがデフォルトでUTF-8になっていて、WindowsではUTF-8ではない(多分S-JIS?)ということだと思うのですが、結局Windowsでは文字コードは何で開発するのがいいんでしょうか?
どういう観点から考えて決めればいいのか分からないので、ご助言頂けると幸いです。


849 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:09:40 ]
>>848
wxWidgets をインスコする際に UTF-8 モードか ANSI モード(すなわち日本語だと shift jis モード)か選択出来るので、
クロスプラットホームのために wxWidgets をつかってるなら使うプラットホームでそれを同じにしておいたほうがいいです。

どっちにするかですが、これからの時代は何も考えず UTF-8 にしておくのがよいと思います。単に業界の趨勢なので。


850 名前:848 mailto:sage [2008/04/16(水) 00:01:26 ]
>>849さん
やはりUTF-8ですか。
,/configure のときに --enable-unicode でいいのですよね。

レスありがとうございましたm(_ _)m

851 名前:850 mailto:sage [2008/04/18(金) 12:54:56 ]
すいません
./configure --enable-unicode
でmake し直したのですが、
やはりUTF-8のソースをビルドするとインターフェース部分のマルチバイト文字が化けてしまいます。
どうすればUTF-8のソースを文字化けせずにビルドできるようになるでしょうか?

Windows Home
wxWidgets 2.8.7 です。

どなたか教えていただけると幸いです。


852 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 17:47:58 ]
コンパイラにUTF-8を認識させなければならない。BOMありUTF-8にできるならファイルを変換すべきだが、gccでは使えなくなる。
VCならBOM有りの場合にはshift jisに変換後にコンパイルしてくれる。当然、埋め込んだ文字列はMBCSのShift_JISになる。
そこで、Shift_JIS->UTF-8への変換をプログラムでやる必要がでてくる。
もう一つの方法は全て英語で書きASCIIにして、.po/.moファイルを作成しi18nにより日本語を表示する。
この場合全てasciiなので、UTF-8とShift_JISは同じものとなるので、特に問題は生じない。

853 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:37:55 ]
というかポータビリティーのために wx を使っているのなら、
そもそもマルチバイト文字列をソースコードに書き込むのは
ポータビリティー上良くないということを認識しましょう。
コンパイラによって扱いが変わってくるので。

将来誰かが非日本語版のを作る場合とかも考えて、
(オープンソースなら誰か勝手にやるだろうし、会社でやってても
中韓国語版をつくることになるかもしれない)
ソースは ascii にして、wx の国際化機能をつかってやるのが吉。

ちょっと手間でも、いま払っておいた手間が後で
格段に仕事を節約することになります



854 名前:843 mailto:sage [2008/04/19(土) 01:58:58 ]
>>864
言われた意味がよくわかりました。ConvertToBitmapが
滅茶苦茶遅い!本気でImageからDCに直接描き込もうか
とも考えましたが、別の解決策があったので止めました。
でもScaleやRotateの出力先くらい指定できた方が
扱い良さそう。

実験としてwxPython用のコンボリュ−ション行列と
YUV操作関数作ったけど…誰も要りませんよね

855 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 03:49:33 ]
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

856 名前:854 mailto:sage [2008/04/19(土) 05:03:13 ]
>>855
直接wxImageをPythonからいじるノウハウについて
言ってるだけですよ。swig通してオブジェクトを
いじれれば質問もせずに済んだんですけど

857 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:34:24 ]
>>864のすばらしいアドアイスにwktk

858 名前:854 mailto:sage [2008/04/19(土) 23:09:46 ]
>>3のコピペは個々の解決法は不要という事ですね。
wxImageからDCに直接描画するwxPythonライブラリも
作ったけど御忠告に従います。有難うございました。

859 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:27:47 ]
>>858

いや、>>3 のコピペは「作ったのに公開しない人」を皮肉ったもので
悩まずどんどん公開すべきという意味だと思います。

860 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:32:53 ]
口だけで実は何も作ってない奴が成果物提示を要求された時の逃げ口上だろ。

861 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:21:39 ]
pc8.2ch.net/test/read.cgi/tech/1097524712/664
664 名前:デフォルトの名無しさん [sage]: 2006/01/09(月) 04:46:55
wxWidgetsのwxScintilla(wxStyledTextCtrl)に手を加えているのですが
意見をもらえないのでしょうか?
www.geocities.jp/full_sarcasm/testedit.html

開発途中のWindows版バイナリです。

車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

862 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 12:25:27 ]
>>839
遅いけどこんなんあった
miteidesu.seesaa.net/article/93929180.html


863 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:21:52 ]
>>862
おぉぉぉ。すばらしい。明日試してみます!



864 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:03:40 ]
Eclipse CDT と MinGW でwxWidgets使ったプロジェクトの開発しているのですが、gdbでデバッグしようとすると、頻繁にエラーが出て落ちます。

同じ症状のかたいらっしゃるでしょうか?
wxWidgets と gdbは相性が悪いのだろうか・・


865 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:08:21 ]
Linux上では全然問題ないよー
MinGW固有の問題かな?

866 名前:864 mailto:sage [2008/04/25(金) 00:34:38 ]
むーそうですか。。ありがとうございます。


867 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:41:33 ]
docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここを見るとwxFileConfigクラスのインスタンスを宣言する時は、引数にwxInputStreamクラスのオブジェクトが必要なようなのですが、
wxInputStreamクラスのインスタンスはどのように宣言すればいいのでしょうか??
docs.wxwidgets.org/2.6/wx_wxinputstream.html#wxinputstreamctor
ここを見ると creates dummy input sream となっていてよく分かりません。
設定ファイルに使うファイルのパスを何かしらの方法で引数のwxImputStreamクラスのオブジェクトの中に入れておかなければいけないと思うのですが・・
wxwindowsjp.sourceforge.jp/docs/html/wx/wx464.htm
ここも見てみましたが、探している情報は載っていないように感じました。
どなたか教えて頂けると幸いです。


868 名前:845 mailto:sage [2008/04/25(金) 23:36:24 ]
大量のwxBitmap格納で落ちる事への自己レスです。
私の環境はWin98だったのですが、この場合内部で
DIBもしくはDDBを作成する為システムリソースを
食い潰す事が原因のようです。Win9xはリソース上限が
2M程度と聞きますが実際はよく分りません。
Win上でスクリプトからなら大量の画像はwxImageで
管理した方がよさそうです。

wxのソースをみてたらwxImageの処理があんなに
遅い訳がわかります。せめてAlphaの有無で
ループを別けてくれれば拡縮とかは少しは速く
なりそうなんですが…。

869 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:58:00 ]
まだ Win 98 なのなら、XP 売っているうちに買っておいたほうが良いよ >>868

870 名前:845 mailto:sage [2008/04/26(土) 00:51:40 ]
>>869
そう出来ればいいですねぇ…
リソース浪費するのは同じなのでWin2000以後も
この件に付いては気をつけたほうが良いとも
思います。ソースを追っていませんし管理方法に
詳しくありませんが、wxはDIBとDDBを使い分けてる
ようでDDBならVRAMの容量が処理能力に直結する
気がします。

871 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 05:17:33 ]
>>867
wxFileInputStreamで開けばいい。

872 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:32:15 ]
>>870
Vista WDDM以降、DDBはDIBみたいに振る舞うので注意。

873 名前:845 mailto:sage [2008/04/26(土) 18:13:24 ]
>>872
勉強になりました。
M$の言い分としてはVistaが動かせるようなPCなら
気にする事ではないんでしょうねぇ。



874 名前:867 mailto:sage [2008/04/26(土) 19:59:52 ]
>>871 さん
ありがとうございます。wxFileInputStreamなんてクラスがあるんですね。

ただ、また疑問点が出てきてしまいました。
www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_2.html
ここを見て設定ファイル周りのコードを書いていたのですが、
そもそもwxFileConfigのコンストラクタの引数型が
docs.wxwidgets.org/2.8.6/wx_wxfileconfig.html#wxfileconfigctor
ここに書いてあるものと全然違うことに気付きました。
そもそもアプリケーションの設定ファイル周りの機能を作るにはwxFileConfigクラスを使うので正しいのでしょうか?
www.h3.dion.ne.jp/~k5_n/wxwin/memo/ver0_2.html
この資料は大分古いようなので・・(自分はwxwidgets2.8.7を使ってます)

ちなみにこの資料に書いてある通りに書くと、
wxFileConfigクラスのインスタンスのRead関数は正常に動くのですが、Write関数が正常に動きません・・
コンパイルは成功しているのですが、Write関数で設定ファイルを更新しようとしても何も更新されません。。

どなたかアドバイス頂けると幸いです。


875 名前:デフォルトの名無しさん [2008/04/27(日) 08:11:31 ]
MacのwxPythonでwx.MessageDialogのアイコンがどれ選んでも蛇が入ったロケットみたいなアイコンなんですがバグでしょうか?

876 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 10:02:27 ]
仕様です

877 名前:874 mailto:sage [2008/04/28(月) 12:19:09 ]
874です。
wxFileConfig::Write(); が、コンパイルには成功するのに正常に動作しない問題が解決しました。

正常に動かないときは

wxFileConfig* m_pConfig
..略..
m_pConfig->Write(wxT("sample"), 10);

のように、wxFileConfigのポインタからアロー演算子でWriteメソッドにアクセスしていたのですが、

wxFileConfig m_Config(コンストラクタの引数);
m_Config.Write(wxT("sample"), 10);
のように、ポインタにせずドット演算子でWriteメソッドにアクセスすると、書き込みに成功しました。

これはwxWidgetsのバグなんでしょうか??
どなたか同じ症状の方はいらっしゃるでしょうか?

878 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:15:54 ]
ポインタだけで実体作ってなかったとかいうオチは許さんぞ。

879 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:16:20 ]
>>877
そんなバグは聞いたことがない。
m_pConfigの実体を確保し忘れてるとか、多分そんなのが原因だと思う。

880 名前:874 mailto:sage [2008/04/28(月) 15:38:11 ]
・・・
#include "wx/wx.h"
#include "wx/config.h"
#include "wx/fileconf.h"

wxString config_file = wxGetCwd();
#if defined(__WXMSW__)
config_file += "\\";
#else
config_file += '/';
#endif
config_file += APP_CONFIG_FILE; // APP_CONFIG_FILEはdefineマクロ

wxFileConfig* m_pConfig = new wxFileConfig(
wxEmptyString,
wxEmptyString,
config_file,
wxEmptyString,
wxCONFIG_USE_LOCAL_FILE);

int dt = 10;
m_pConfig->Write(wxT("sample"), long(dt));


newで実体確保できてますよね??(おそるおそる)
これをビルドしようとするとコンパイルもリンクもできるんですが、
m_pConfig->Write(wxT("sample"), long(dt));
の部分を実行しても何も起きないんです。
Read();は普通に動くんですが・・


881 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:57:16 ]
ちゃんとdeleteしないと書き込まれないんじゃないか?

882 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:20:22 ]
Flush()しない場合はデストラクタで書き込まれる、とあるな。
両方やってないから書き込まれない。

883 名前:874 mailto:sage [2008/04/28(月) 16:39:36 ]
>>881さん
>>882さん

レスありがとうございます。

Write(); のあと Flush(); でいけました!まじありがとうございます!

Flushが必要、という情報が見つけられないのですが、よろしかったらソースを教えて頂けないでしょうか??
あと、「両方やってないから書き込まれない」の「両方」とは、Flush(); と、あともう1つは何でしょうか??




884 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:45:51 ]
>>883
>>882 を読んでそれが何かわからないようならC++を勉強しなおした方がいい

885 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:48:43 ]
>>883
「両方」じゃなくて「どちらも」の間違いだった。どちらかでも行えば書き込まれる。
あと、人に聞くまえにリファレンスを読め。


886 名前:874 mailto:sage [2008/04/28(月) 17:18:22 ]
docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbaseflush

permanently writes all changes (otherwise, they're only written from object's destructor)
部分だったんですね。。

docs.wxwidgets.org/stable/wx_wxconfigbase.html#wxconfigbasewrite
こっちのWrite();のリファレンスの方には
write the specified value to the config file
ってあるので、Write();だけでファイルに書き込めるのだと思っていました。全く分かりませんでした。。

ありがとうございましたm(_ _)m


887 名前:851 mailto:sage [2008/05/02(金) 23:40:36 ]
>>852 さん
>>853 さん
めちゃくちゃ遅くなってすいません・・
レスありがとうございましたm(_ _)m
なんか書き込んだと思ったら書き込んでなかった?ようです><
すいませんm(_ _)m

888 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:24:28 ]
wxPythonの質問なんだけど、ここで大丈夫?
勉強し始めたばかりなんですが、トップフレームにボタンを作って、
このボタンを押すと、別スレッドで重い処理を実行させて、終わったら
「終わりました。」てメッセージボックスを表示させるプログラムを書いてます。

別スレッドのなかでwx.MessageBox("終わりました。","")を実行すると、
Windowsでは普通に表示されてOKボタンでメッセージボックスが閉じますが、
Linux(GTK)だとメッセージボックスが表示されますが、固まってしまいます。

WindowsとLinuxどちらの動作が正常なんでしょうか?
(wx.Frameなどを継承していない)別スレッドのクラスからwxを使っていいのでしょうか?

889 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:56:05 ]
どっちが正常ってか、Windowsで固まらないのはまぐれ
docs.wxwidgets.org/stable/wx_threadfunctions.html#wxmutexguienter

890 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:18:36 ]
>>889
ありがとうございます。
やっぱり何も対策を取らないと固まるんですね^^;
wx.MessageBox("終わりました。","")の手前にwxMutexGuiEnter()を書いて、
直後にwxMutexGuiLeave()を書いて試しましたが、wxMutexGuiEnter()で
固まってしまいました。たぶんMutexの初期化?が足りないのかもしれません。

wiki.wxpython.org/LongRunningTasks
ここを参考にwx.PostEventを使って、Windows&Linuxで思い通りの動作になりました。

891 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 07:22:33 ]
windows xp MinGW環境ですが、openGLを使いたいと思い、
config.gccのopenglのオプションを有効にしてgccでコンパイルしました。
openGL用のライブラリがリリース版とデバッグ版の2つできたのですが、
2つともファイルサイズが40kb程度しかありません。
これで正しくライブラリができているのでしょうか?

892 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:11:45 ]
wxStringオブジェクトを走査して特定の文字列が何回出てくるか調べたいんですが、それ用の関数ってないですよね??


893 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:24:10 ]
>>891
GLCanvasってレンダリングコンテキストのハンドリングぐらいしかやってないんじゃないかな。それだけならそんなもんじゃないかなぁ。




894 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:56:39 ]
>>892
>それ用の関数ってないですよね??
質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
自分が既に調べてみつからなかったんだけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
API レファレンスを読めばみつかる API もみつからない。

というのは別にして、wxString::find(const wxString&,size_t) ではだめなの?

895 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:59:56 ]
なんという紳士

896 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:04:29 ]
>>894の優しさに泣いた!

897 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:28:37 ]
>>894にならほ(ry

898 名前:892 mailto:sage [2008/05/27(火) 02:09:22 ]
レスありがとうございます。

>>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
>>自分が既に調べてみつからなかったんだけど ... ということをアピールして、

う、こういう聞き方、あまりよろしくないのですかね??
単純に「ありませんか??」だとググれと言われてしまうし、かと言って毎回なんか質問書き込む度に既に調べて分からなかったので質問しましたってのは正直億劫だったのでこんな感じの聞き方になっていましたが・・

wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
でもwxString::Cmpとforとif使ってなんとかなったので、質問したこと自体は解決しました。

>API レファレンスを読めばみつかる API もみつからない。
これはなんでですか??
この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。

899 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:25:57 ]
>>898
>毎回なんか質問書き込む度に既に調べて分からなかったので質問しました

答える側になった事を考えれば分かると思うが、これが正解
事前に何を調べて自分としてはどう思っていて何が疑問なのかを丁寧に書く
これしか無いよ

900 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:32:59 ]
>>898
解決したならいいけどCmp()でどんなコードを書いたの?

901 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:13:25 ]
>>898
>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
この「ですよね??」という聞きかたが良くないです。
自分はこの API は既に知っているけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
この API が使える API であるということを認識出来ない。

自分はこれまで最初にマッチした部分のインデックスが返ってくるだけだと思っていたんだけれど、
相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
と謙虚に考えられなくなるわけです。相手に言われたら、
自分を疑って、もういちど自分で API レファレンスを読んでみればわかるはずで、
こうやって小言を言われる必要もなくなるわけです。というのが、
> この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
>突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。
への返答です。
僕は自分自身が、「ですよね?」「じゃないんですか?」と言いたくなったら、
まず自分を疑うことにしています。
その言葉を発した時点で、考えるのを放棄しているからです。

というのはいいとして、wxString::find(const wxString&,size_t) とわざわざ
オーバーロードしてある引数までかいてあるのは何故だとおもいますか?
それはそのバージョンをつかうと、第二変数でどこから調べるかが指定出来るからです。
そうするとそれを繰り返し呼べばいいわけです。
ちなみに find が大文字か小文字かも違います。
docs.wxwidgets.org/2.8.6/wx_wxstring.html#wxstringat
をみてください。

902 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:24:20 ]
ためになる話のような気がするから
あとでゆっくり読むぜ

903 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:45:34 ]

   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ゆっくりしていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´





904 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 10:02:58 ]
なんか知らんが賢人が降臨したようだな

905 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:52:47 ]
賢人って… >>903 のこと?

906 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:45:13 ]
当たり前だろ

907 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:56:55 ]
馬鹿野郎俺に決まってるだろ

908 名前:892 [2008/05/27(火) 22:50:50 ]
レスありがとうございます。

>ちなみに find が大文字か小文字かも違います。
これに気づいてませんでした。C++互換というやつがあったんですね・・。

>相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
これはもちろん考えてます。が、それでも完全に見逃していました。。

wxString::find(const wxString&,size_t) でいけそうです。ありがとうございます。

が・・

>>それ用の関数ってないですよね??
>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
これは分かるんですが・・

>>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
>この「ですよね??」という聞きかたが良くないです。
これはではどう聞けばよかったんでしょう?
これ以外に聞きようが無い気がするんですが・・


909 名前:892 [2008/05/27(火) 22:55:44 ]
>>900
こんなの書いてました汗

wxString str_wk;
int count;
wxString source = "なんか色々";
int length = sourceのデータ長
for (int i = 0; i < length; i++){
str_wk = source.Mid(i, 6);
if (0 == str_wk.Cmp(wxT("sample"))){
count++;
}
}

910 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:10:59 ]
>>908
ですよね?と聞く前に、wxString のメンバ関数一覧を再確認すればよかったんじゃないかな。たぶん。

911 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:47:43 ]
>>901のエントリについては、何か考えさせられた。

○(調べたけどわかんなかったので)ありませんか?
△(調べずに)ありませんか? … (ググれと言われる)
×ないですよね? … (ないんですよ。そうでしょう?(同意求む)的な感じ)

って感じなのかな。

912 名前:892 [2008/05/27(火) 23:55:56 ]
>>910
再確認して、その上で分からなかった(見逃してた)んです。
なので、言ってしまえば回答に直結するレス頂いてそれでも気づかなかった自分がバカだったってだけの話なのですが汗


913 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:03:07 ]
その人は嫌み言ってるだけだと思うので気にしないでいいと思うよ
まあふと疑問がでてドキュメント見たときに、
そのクラスのあんま関係なさそうだけど他のメソッドもついでに
全部勉強しておいてやろうとかいう感じでやってればスキルもあがるんじゃないでしょうか。



914 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:19:55 ]
これって、64bit対応してるかな?
コンパイラが64bitなら無問題?

915 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 11:55:45 ]
すくなくとも wxMac は対応してない。なぜなら GUI が Carbon で、それには 64bit 版がないから。

916 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:15:03 ]
え”〜、Carbonは64bitには亡くなるのぉ???

wxCocoaの完成を待つしか無い???

917 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:53:48 ]
>>916
いまんところの Apple の発表は、 Carbon の GUI 部分は 64 bit にしない、Carbon の非 GUi 部分は 64 bit にする、とのことだけど、まあすぐ気の変わる会社だから誰にも分かりません

Qt はもう方針転換して、Cocoa で組みなおしてます。もう Cocoa 64 bit のβ版がでてるはず。

wxMac はメンテナンスはされてるけど、ドキュメントから何から激烈に古いのでこれを機会に wxCocoa を誰か頑張ってくれ。

918 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:03:15 ]
wxGTKはMacでは動かないの?

919 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:10:59 ]
wxGTK は OS X 上で X11 を立ちあげて、そのなかで動くというのは可能
Windows でも cygwin とかでX11 サーバをいれとけば wxGTK も動くというのと同じ状況です
OS X の WindowServer は X11 ではないので。
まあ X11 は標準でついてくるけど。

920 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:49:29 ]
正直 OS X で X11+GTK とか勘弁してくれって感じだ…

921 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:31:32 ]
Mac で Xアプリが動くってのはオマケだね。

クリップボードさえX専用クリップボードだったり、
Windowsの16ビットアプリケーションより連携悪い。

922 名前:デフォルトの名無しさん [2008/05/30(金) 16:00:05 ]
wxStreamToTextRedirectorを使っているんですが、
cout << で、マルチバイト文字が化けて表示されてしまいます。

同じような症状の方、また解決方法を分かる方いらっしゃいましたらご教示いただけると嬉しいです。
ちなみにwxMSWをunicodeモードでインストールして使っています。

923 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 16:03:51 ]
自分の書き込みを何度も読み返すといいよ。



924 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:12:39 ]
Code::Blocksのスレが無いので、ここに書かせてくれ。
Code::Blocksのバグなんだ。興味ない人は無視してくれ。
詳細はチラ裏に書いたので、もし偉い人がいたら、本家にバグ報告してほしい。

ここからチラ裏

日本語のMac OS X上のCode::Blocksで、新規プロジェクトをウィザードで作ろうとすると、「Script compile error」というのが出る。
これは、Code::Blockが、ウィザードを記述してるスクリプト(Squirrel)を読み込むときに、U+005CがU+00A5に変換される(ファイルがShift-JISとして読み込まれる)のが原因。
src/sdk/scriptingmanager.cppの中にある、ScriptingManager::LoadScriptがスクリプトをファイルから読み込む関数っぽいので、その中の、cbReadFileContents(f)をcbReadFileContents(f, wxFONTENCODING_UTF8)に置き換えればいい。
だが、俺は英語ができないし、バグ報告のためのユーザアカウントも持っていないので、せめてここに書くぐらいしかできないorz

ここまでチラ裏

925 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:58:29 ]
OS X 上で、外人さんの作ったソフトで、unicode つかってないので、そのバグがでることって多いよね。TeX 用のソフトでそれではまることがしばしば ...

926 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:48:04 ]
>>924
了解

927 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:10:51 ]
Ubuntu 8.04でwxPythonがシンボル見つからないとかで起動しない。
自分でビルドしようと思ってもコンパイルエラー。swigのバージョンかな?
動かぬなら 動くまで待とう wxPython

928 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:47:07 ]
待ってねーでバグレポート送れよ

929 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:20:54 ]
英語がわからないに1票〜

930 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:55:38 ]
>>928
いや、本家フォーラムではもう話題になってる。日本で話題になって無いからチラ裏してみただけ。

931 名前:デフォルトの名無しさん [2008/06/04(水) 00:57:50 ]
なぁ、このフレームワークって人気ないの?

932 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 02:16:47 ]
>>931
ん?採用してるプロダクトも多いし
コミュニティも活発じゃん。

なんでそんな事を思うのかい?

933 名前:デフォルトの名無しさん [2008/06/04(水) 09:00:21 ]
採用しているプロダクトも少ないし
コミュニティも活発じゃないからだろうきっと。



934 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:01:18 ]
Qtに負けてる?

935 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:26:07 ]
>>934
Photoshop Elements、Opera、Google Earth、SkypeなんかがQtだね。
確かにちょっとよさそうだし、有料なんでサポートもしっかりしてそうだけど
wxWidgetsをすでに使ってるんだったら乗り換えるほどではないかな・・

936 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:27:18 ]
あ、そう。
じゃあ乗り換えるのやめる。

937 名前:デフォルトの名無しさん [2008/06/04(水) 18:08:03 ]
wxStringに格納されている改行文字を数えるために、for文などと組み合わせて

if(string::npos != mml.find(wxT("\n"), i ,len)){
line_count++;
}

のように書いてみたのですが、改行文字じゃないところまでマッチしてしまいます。
正しい書き方分かる方いらっしゃいましたら教えて頂けると嬉しいです。

環境はWindows wxMSW2.8.7
文字コードはunicodeです。

938 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:03:39 ]
sizerだったかな?
いまいちこの辺の理解ができない。


939 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:02:11 ]
>>937
i はどうやって更新してるの ???

940 名前:937 [2008/06/04(水) 22:27:08 ]
>>939
分かりにくくてすいません。
lenはずっと固定1で、
iは1ループで1ずつ加算していく感じです。

単純に一文字ずつ調べていくように書きました。
あとmmlってのがwxStringオブジェクトです。。


941 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:39:29 ]
阿呆か。第三引数は、この場合第一引数の長さの指定だろう。
www.cplusplus.com/reference/string/string/find.html
そもそも、findメソッド使いながら一文字ずつ調べようという発想が阿呆過ぎる。


942 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:08:18 ]
>>940
find は、i 文字目から探しはじめて、はじめにみつかった文字列を返す、ので、
i を1 ずつ加算していくとそりゃおかしくなるでしょうよ

943 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:45:11 ]
#include <iostream>
#include <string>

using namespace std;

int main(void)
{
string src = "aaaa\nbbb\nc\n\nddddd\n";
string::size_type pos = 0;
size_t count = 0;
while ((pos = src.find("\n", pos)) != string::npos) {
pos++;
count++;
}
cout << count << endl;
return 0;
}





944 名前:937 [2008/06/06(金) 14:26:46 ]
iを1ずつ加算していくのは他にちょっと事情があったからなのですが・・説明不足でした。
レスありがとうございました。解決しましたm(_ _)m

945 名前:デフォルトの名無しさん [2008/06/06(金) 15:05:22 ]
wxRichTextCtrl
を使ってみたんですが、マルチバイト文字をテキストコントロールのインターフェースに入力すると、なんか補完ウィンドウ?みたいのが出ます。

これを出ないようにしたいのですが、どうすればいいでしょうか。
リファレンス見ても分かりませんでした。


946 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:30:06 ]
MacOSX 10.6でCarbon廃止されたら、wxMacもなくなるのかなあ。

947 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:39:26 ]
10.6で廃止は早すぎるだろう?
そのうちなくなるかもしれないが、俺達にはwxCocoaがある!
未だまともに動かないwxCococaがっ

948 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:19:47 ]
誰も 32bit Carbon を廃止はしないだろう、そんなことしたら MS Office が動かなくなる

949 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:25:23 ]
MS Office以前にAppleがSnow LepardまでにOS Xの付属アプリを
全部 Cocoa ベースに置き換えられるとは到底思えないんだよなぁ…

950 名前:デフォルトの名無しさん [2008/06/08(日) 18:42:06 ]
>>945 です。
補完ウィンドウが出る、というか、日本語を打つと、書いた文字がスペースキーを押すと漢字変換が出来る状態になりますが、
その状態の文字が、文字を打った場所ではなく、なぜかテキストコントロールのインターフェースの一番上の行に毎回表示されてしまう、という現象のようです。(それを補完をウィンドウ?と455で言っていました。)
wxTextCtrlだと普通に打ったマルチバイト文字がその行に表示されるのですが・・wxRichTextCtrlだとなぜかこうなってしまいます。

解決方法見つからず困っています。どなたかアドバイスいただけると幸いです。


951 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:19:46 ]
>>950
wx のソースコードのバグを取って開発に貢献してください。

952 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:52:47 ]
バグというか実装されていない機能の中身おくったけどさ、
半年ぐらいしてパッチ当てるよーってメール着たんだが、さらに半年経っても当たる様子無い。
仕方ないんで、ソース取り出してクラス名変えて使ってるよ。

953 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 23:52:54 ]
自己解決しました



954 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:08:10 ]
自己解決したときはどう解決したかかいておいてください
あとで同じことにはまる人もいると思うので。

955 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 00:34:26 ]
自分のした質問じゃないのに「自己解決しました」とだけ書いて去っていく荒らしもいるから注意な。

956 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 03:26:30 ]
自己完結しました

957 名前:945 [2008/06/09(月) 11:31:24 ]
解決してません。

やはり自分もwxWidgets自体のバグなのかなと思うのでソースをいじってみることを考えているのですが、
スペースキーで漢字変換できる状態(うまい表現の仕方あったら教えてください・・)の文章の表示位置がおかしい、というのは、wxWidgetsとIMEの連携部分で何かおかしくなっている、ということなのでしょうか。
wxTextCtrlなら正常に動く感じなので、textctrl.hとrichtextctrl.hを比べてみたりしているのですが、どの辺りを見ればいいのか・・


958 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:00:33 ]
>>957
気になったので調べてみた。
どうやら wxRichTextCtrl は独自の処理を行っていて
riched32.dll などを使っていないようだ。
wxTextCtrl に wxTE_RICH(2) などを付加して作成すると
riched32(20).dll を使う仕組みになっているっぽい。

959 名前:957 [2008/06/09(月) 19:22:43 ]
貴重な情報ありがとうございます!
ドキュメントを色々読み直していたのですが、もしかしたら自分のやりたいことがwxTextCtrlでもできるかもしれないような記述を見つけたので、
wxTextCtrlをもうちょっといじってみようかと丁度思っていたところでした。

自分のやりたいことというのが、プログラマ向けのエディタによくある予約語の強調表示なのですが、
wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm
ここに、
「例えば、1つ1つの文字に色やフォントを指定することも可能である
(ただし、Windows下では、スタイルをサポートするためにwxTE_RICHスタイルが要求されることに注意すること)。」
のように書いてあります。
さらにその下に

text->SetDefaultStyle(wxTextAttr(*wxRED));
text->AppendText("Red text\n");
text->SetDefaultStyle(wxTextAttr(wxNullColour, *wxLIGHT_GREY));
text->AppendText("Red on grey text\n");

のようなソースが示されていて、なんとなく感じは分かるのですが、
これだとインタフェースに文字を打ち込む際、特定の文字を打ち込んだ時リアルタイムに強調表示するようにできるのかどうか
(もちろんその文字を一部消したら、強調表示をリアルタイムで解除するようにもできるかどうか)分かりません。wxTextCtrlでこのようなことは出来るのでしょうか??質問ばかりですいません。


960 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 22:20:00 ]
wxWidgets 一般の話をしているのか、wxMSW の話をしているのか区別をしてくれ ...


961 名前:957 [2008/06/09(月) 23:15:37 ]
今はWindowsで開発しているのでwxMSWですが、
wxTextCtrlで強調表示機能実現できるかどうかってプラットフォームに依るのでしょうか??
wxTE_RICHはMSWでしか使えなくて、それ使わないと無理なので他のプラットフォームでは自動的にwxTextCtrlでは実現不可、ってことでしょうか。


962 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:19:56 ]
>>961
wxTE_RICH は wxMSW 専用。ほかの環境では意味をなさない。
(リッチエディットコントロールを使う指定だから)

>>959
入力した文字列をリアルタイムに強調表示したいのであれば、
OnChar(wxKeyEvent &)
あたりを使えばいいんじゃないかな。やってみないとわからないけど。

963 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 11:25:22 ]
>>961
ちょっと説明不足だったけど、強調表示などは
wxTE_RICH を指定しなくても wxTextCtrl::SetStyle() と
wxTextAttr を使えば、実現できるんじゃないかな。



964 名前:957 [2008/06/11(水) 00:01:42 ]
wxTextCtrl::SetStyle
wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm#wxtextctrlsetstyle
「選択された部分の」スタイルを変更する。
この部分見逃していました。。

OnChar()ってのはMSW専用なんでしょうか。
msw/textctrl.h には書かれていますが普通のtextctrl.hには無いみたいです。
univ/textctrl.hってのにもありますが、univってのは何用なのか・・

でもとりあえずEVT_KEY_DOWNキーイベント用のハンドラをSetStyle()使って書けば実現できる気がしてきました。
ご丁寧に何度もありがとうございましたm(_ _)m

965 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:46:47 ]
>>964
univ ってのは、たぶん Universal Version のこと。
Windows の例で言えば、Windows のコントロールを使わず、
全部自前で処理するようにすること。
いろいろなプラットフォームで共通した動作をするようになる。


966 名前:957 [2008/06/18(水) 18:21:31 ]
なるほど、ありがとうございます。
返信遅れてすいません。

EVT_KEY_DOWN とか EVT_CHARとか使って強調表示機能っぽいものが出来始めたのですが、一つ分からないことが出てきました。

EVT_CHARは、ASCII文字の入力のタイミングは拾えるようなのですが、どうも全角文字の入力タイミングは拾えないみたいなんです。
全角文字でも強調表示したい単語があるので、全角文字が一字書き込まれる毎にそのタイミングを拾って、そのイベントが終了したらwxProcessEventでキャレット周辺の文字列を取得して、所定の文字列が含まれていたら強調表示〜みたいなことがしたいのですが、
そもそも全角文字入力の際に発生しているイベントはなんなのでしょう??

967 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:37:04 ]
>>966
2度EVT_KEY_DOWNが飛んできませんか?
内部で捨てていない限り2度飛んでくるので、
それを漢字1文字分にすればいいと思います。

968 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:14:50 ]
>>966
キー毎に強調表示するんでなくて、タイマーで1秒ごとに処理するとか ...






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef