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
641 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:41:34 ] stringstream
642 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:48:22 ] >>641 どうも。それ使います。insertメソッドとかもありますね。 NULLで切れないと信じて。
643 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:30:57 ] >string str1; >str1 = "a" + "b"; は書けます。 >str1 += "a" + "b"; は書けないんですね。 ちょっと不便。
644 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:04:47 ] 全然
645 名前:デフォルトの名無しさん [2008/02/13(水) 20:10:56 ] べつに
646 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:38:05 ] str += "a"; str += "b"; は出来るだろ。 ていうかC++スレでやるべきだと思うんだ・・・。
647 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 21:58:27 ] ま、C++だしな。 そのへん楽したかったら、 wxPython wxErlang wxHaskell wxLua wxPerl wxRuby wxSqueak wx4j wxJavaScript あたり使ったらいんじゃね?
648 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:16:15 ] C/C++は "a" "b" って書いたら "ab" って書いたのと同じだけどな。 リテラルだけだが。
649 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:58:06 ] > wx4j へえー、4j ってプログラミング言語があったのか・・と思った ググって見ると、・・このスレのテンプレにすでに書いてあった・・
650 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 17:55:06 ] 1、プロセスを跨いだ書き込みができるコンソールクラスはありますか? (wxで無くともポータブルなら何でもかまいません) 2、↑を押すと以前選択された文字列が出てきたり、 選択可能な文字列群を設定すればtabキーで勝手に補完してくれる なんちゃってシェルのようなクラスはありませんか? よろしくお願いします。
651 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:59:46 ] 2番目はreadlineじゃ駄目なのか?
652 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:34:08 ] >>651 readlineってこういう事に使うライブラリなのですか。 初めて知りました^^ これで全然問題ないです。 どうもありがとうございました。
653 名前:624 [2008/02/16(土) 00:48:57 ] >>625 さん 返信めちゃくちゃ遅れてすいません。 ご指摘された通り直したら意図した通りに動きました。 ありがとうございましたm(_ _)m
654 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:22:37 ] >>652 readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする sourceforge.net/projects/libedit/
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秒ごとに処理するとか ...