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
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 ] ためになる話のような気がするから あとでゆっくり読むぜ