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
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通してオブジェクトを いじれれば質問もせずに済んだんですけど