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
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 をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ というか一体どうやってビルドできるところまで設定したのよ