【GUI】wxWidgets(旧wxWindows) その3【サイザー】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/09/09(土) 00:06:30本家
http://www.wxwidgets.org/
wxWindows日本語プロジェクト
http://wxwindowsjp.sourceforge.jp/
Let's wxWidgets
http://dot-gray.s33.xrea.com/
(*)準備中(*)
http://www.geocities.co.jp/SiliconValley-Cupertino/8526/
wxWindowsで始めるC++ GUIプログラミング
http://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/
dW : Linux : wxWindowsの概要
http://www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
http://www.idg.co.jp/sw/back/200102/20010219_01_report.html
0561デフォルトの名無しさん
2008/01/21(月) 11:16:12http://0xcc.net/pub/uu-2004-08/
ここの、Windowsにインストールする場合の説明のところを見てやったのですが・・
あと558の
wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
wx-config --cxx` -o hello.exe hello.cpp `wx-config --cflags --libs`
の間違いでした。
0562デフォルトの名無しさん
2008/01/21(月) 11:33:27回答ありがとうございます。MSYSは入ってます。
MSYSを導入して、rxvt上で実行 というのは、C:\MSYS\1.0\bin\rxvt.exe を立ち上げて
そこからg++ 〜 でコンパイルしろってことでいいんでしょうか。
家帰ったら試してみます。ありがとうございます。
0563デフォルトの名無しさん
2008/01/21(月) 12:20:12$ wx-config --cflags
とでも打ってみるんだな
どんな効果がでるか一発で分かる
0564デフォルトの名無しさん
2008/01/21(月) 13:05:17操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。
0565デフォルトの名無しさん
2008/01/21(月) 13:17:20windows のコマンドラインじゃなくて
ユニックス系の shell でやらなきゃ ...
0566558
2008/01/21(月) 14:00:43564は自分じゃないですよ。
多分あまりにも基本的な部分で間違ってるので他の方に茶化されたのだと・・
でも
> wxWidgets はユニックス系なので、
> windows のコマンドラインじゃなくて
> ユニックス系の shell でやらなきゃ ...
ここらへんわかってなかったのでご指摘いただけてラッキーでした。
ありがとうございます。
シェルの勉強等まだ手をつけておらずほぼ全く分からないもので・・
初心者質問ばかりしてすいません >564さん
>563さん
ありがとうございます。帰ったら試してみます。
0567デフォルトの名無しさん
2008/01/22(火) 00:24:02Windowsでやるよりはるかに簡単だから。ネットの情報もほとんどUNIX系だし。
一旦それでやってればWindowsでもすぐできるようになると思う。
UNIX系の情報を見ながらWindowsで一発でやるには両方の知識が必要。
0568デフォルトの名無しさん
2008/01/22(火) 02:55:34xrcの存在意義を無視してるのは分かるのですが、
ソースは簡潔&実行時にはファイル一つ、にどうしてもしたくて..
0569デフォルトの名無しさん
2008/01/22(火) 05:10:430570デフォルトの名無しさん
2008/01/22(火) 05:32:32xrcのデータを実行ファイルに持たせることなら普通に出来る。ドキュメント読め。
0571デフォルトの名無しさん
2008/01/22(火) 17:11:00ご指摘されたとおりrxvt上からg++ 〜でやってみたのですが
wx/wx.h No such file or directory
などその他たくさんエラーが出てしまいました。
wx-config --cxx` -o hello.exe hello.cpp `wx-config --cflags --libs`
では wx-config-cxx commnad not found と言われてしまいました。
>567さん
Linuxでやる方が簡単なんですか。。
一度VMwareにUbuntu入れてやろうと思ったのですが重くてやめてしまってました。
Linuxの方が簡単なのであればそっちでやってみることにします。
ありがとうございました。
0572デフォルトの名無しさん
2008/01/22(火) 17:22:090573デフォルトの名無しさん
2008/01/22(火) 18:38:29xrcでフォームの位置やサイズをアプリケーション終了時に保存することはできますか?
0574デフォルトの名無しさん
2008/01/22(火) 23:05:56出来ました。ありがとうございます
0575デフォルトの名無しさん
2008/01/23(水) 00:04:51もうちっとコマンドラインとか、パスとか、そういうことを勉強したほうがいいと思うな ...
0576デフォルトの名無しさん
2008/01/23(水) 01:05:42そういえばマイナー同士の組み合わせの割には、wxPythonの日本語情報って
ググると意外に出てくるね。
0577デフォルトの名無しさん
2008/01/23(水) 02:08:03はじめたばかりの君は恵まれている
昔は見つからなかった
0578デフォルトの名無しさん
2008/01/23(水) 02:15:24猛者たちがあらわれたってことか。感謝感謝。
0579デフォルトの名無しさん
2008/01/23(水) 05:26:510580デフォルトの名無しさん
2008/01/23(水) 08:53:58wxに限らずPyGTKやらPyQtやらで作られたアプリが増殖中
0581デフォルトの名無しさん
2008/01/23(水) 09:11:20自信たっぷりの間違いがいくつかあるので注意
ttp://www.harukaze.net/~haruka/wxpython/
0582デフォルトの名無しさん
2008/01/29(火) 18:06:45C++ Builder/VCL だと、
>void __fastcall TForm1::ApplicationEvents1Exception(TObject *Sender, Exception *E)
みたいな感じで書くんですが。
0583デフォルトの名無しさん
2008/01/29(火) 19:13:420584デフォルトの名無しさん
2008/01/29(火) 19:22:52アプリの一箇所、一括でcatchしたいだけですが、どう書けば良いでしょう?
0585デフォルトの名無しさん
2008/01/29(火) 23:17:40{
try {
// main routine
}
catch(...) {
// error handling
}
}
0586デフォルトの名無しさん
2008/01/29(火) 23:40:34とするとwxApp::OnFatalExceptionとかがそうなのかなぁ。
ttp://wxwindowsjp.sourceforge.jp/docs/html/wx/wx30.htm#wxapponfatalexception
0587デフォルトの名無しさん
2008/01/30(水) 01:38:35wxApp::OnUnhandledExceptionのドキュメント見ると、
OnRunをオーバーライドしてそこでキャッチしろって書いてるよ。
int MyApp::OnRun()
{
try{
return wxApp::OnRun();
}
catch(std::exception &e){
...
}
}
0589582
2008/01/30(水) 10:36:01OnRunオーバーライドして、エラーはcatchはされるんですが、catchの前にエラーが出てしまうのは何ででしょう。
0590582
2008/01/30(水) 10:39:12有難うございました。
0591582
2008/01/30(水) 10:44:400592587
2008/01/30(水) 11:20:47でMyApp::OnRun()のcatchに直通できた。
wxのエラーダイアログの中止ボタン押したときの処理もこうだから、
たぶんこれで問題ないと思う。
0594582
2008/01/30(水) 11:51:30wxMac-2.8.7では、MyApp::OnOnExceptionInMainLoop()がコールされずに、
>シグナル 6(SIGABRT)により終了しました。
で終わってしまうのは何ででしょう?
throw を丸々囲んだら、ちゃんとcatchされますので、C++例外オフの問題じゃないみたいです。
念の為configureを調べても、
>checking for --enable-no_rtti... no
>checking for --enable-no_exceptions... no
です。
0595デフォルトの名無しさん
2008/01/30(水) 12:07:13wxWidgets/samples/except
http://cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/
http://cvs.wxwidgets.org/viewcvs.cgi/wxWidgets/samples/except/except.cpp?rev=1.13&content-type=text/vnd.viewcvs-markup
0596582
2008/01/30(水) 13:25:38>wxMac-2.8.7\samples\except
で、
コンソールからmakeしましたが、
アプリでThrowメニュー(int/string/object)を実行すると、アプリがエラーで吹っ飛びます。
どうも、wxMacのバグですね。
当面は、実行メニューをそれぞれtry-catchで囲んでおきます。
開発中にcatch内容が変わったりすると、メンドイですね。
0597デフォルトの名無しさん
2008/01/30(水) 15:29:470598デフォルトの名無しさん
2008/01/31(木) 16:16:31http://0xcc.net/pub/uu-2004-08/
このページ見てwxGladeでc++のコードを生成しようと思って、プレビューまでは普通に出来たのですが、Generate Codeボタンを押すと
An exception occurred while generating the code for the application.
This is the error message associated with it:
'ascii' codec can't encode characters in position 28-33: ordinal not in range(128)
こんなエラーが出てコードが生成できません。どうすればいいでしょうか?
環境は
Ubuntu7.1.0
libwxbase 2.8.4.0
libwxgtk 2.8.4.0
python-wxglade 0.5
python-wxgtk 2.8.4.0
python-wxtools 2.8.4.0
python-wxversion2.8.4.0
です。
どなたかアドバイス頂けると幸いです。。
0599デフォルトの名無しさん
2008/01/31(木) 17:14:430600デフォルトの名無しさん
2008/01/31(木) 22:16:100601デフォルトの名無しさん
2008/01/31(木) 23:01:50エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・
日本語ですか。特に使ってないと思うのですが・・
0602デフォルトの名無しさん
2008/01/31(木) 23:02:14エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・
日本語ですか。特に使ってないと思うのですが・・
0603デフォルトの名無しさん
2008/01/31(木) 23:17:53ascii文字以外が入っているかもう一度確認して見てください。
ascii文字の意味はわかりますか?
0604デフォルトの名無しさん
2008/01/31(木) 23:44:01いえ、英語は分かるのでエラーメッセージの翻訳はできるんですが、それでも意味が分からないということなんです。
ASCII文字は分かります。
「ascii文字以外が入っているか」っていうのは、どこを確認すればいいのでしょう??
0605デフォルトの名無しさん
2008/01/31(木) 23:56:32アルファベットだけつかったつもりでも、
まちがって全角スペースが入るということもあります
0606デフォルトの名無しさん
2008/02/01(金) 00:03:41直接的な答えじゃなくて申し訳ないけど、俺がやるなら:
・エラーメッセージを出力している部分の wxGlade のソースコードを読む
・エラーが出なくなるまでウィジェットを減らしてみる
0607デフォルトの名無しさん
2008/02/01(金) 00:11:460608デフォルトの名無しさん
2008/02/01(金) 01:42:06単純にコードを吐き出すパスに「デスクトップ」が入っていただけでした・・汗
回答くださった方々ありがとうございましたm(_ _)m
0609デフォルトの名無しさん
2008/02/01(金) 03:11:59ubuntu-jpも余計なことしてくれるよな. 'デスクトップ'は英語名に直しとき.
0610デフォルトの名無しさん
2008/02/01(金) 04:05:200611デフォルトの名無しさん
2008/02/01(金) 09:53:130612デフォルトの名無しさん
2008/02/02(土) 17:49:53wxDirPickerCtrlで起動後初回の選択のみ反応しないのですが,
(GetPathに反映されず,ハンドラも呼ばれない)
同じような症状の方いませんでしょうか?
使い方でミスをしてるのか,バグなのか分からなくて困ってます.
0613デフォルトの名無しさん
2008/02/03(日) 02:36:574MBぐらいになるってどこかに書いてあったのだけれど。
0614デフォルトの名無しさん
2008/02/03(日) 03:13:400615デフォルトの名無しさん
2008/02/03(日) 03:22:02特別なにもしてないと静的リンクにならないんでしょうか。
ところで、Linuxだと
g++ -c hello.cpp `wx-config --cppflags`
g++ -o hello hello.o `wx-config --libs`
で普通にコンパイルできたんですが、
Windows Home でやろうとすると
g++ -c hello.cpp `wx-config --cppflags`
で
wx-config -cppflags: No such file or directory
と言われる、けど、hello.oは生成される。
そして
g++ -o hello hello.o `wx-config --libs`
でも同じように
wx-config --libs: No such file or directory
と言われるけど、今度は何も生成してくれない。
のはなんででしょう。。
0616デフォルトの名無しさん
2008/02/03(日) 03:26:45>特別なにもしてないと静的リンクにならないんでしょうか。
つ ldd
0617デフォルトの名無しさん
2008/02/03(日) 03:52:29>>558-563
0618デフォルトの名無しさん
2008/02/03(日) 04:42:37C初心者スレ池
0619デフォルトの名無しさん
2008/02/03(日) 04:58:13>今度は何も生成してくれない。
>のはなんででしょう。。
太陽が眩しかったから
0620デフォルトの名無しさん
2008/02/03(日) 09:23:53Unix のシェルの違いもわからないひとが GUI プログラムを
コンパイルできるようになったというのは良いことなのやら悪いことなのやら ...
0621デフォルトの名無しさん
2008/02/03(日) 10:04:57たとえ素人でも疑問を追及する意思があれば間抜けな質問を垂れ流したりはしない。
0622デフォルトの名無しさん
2008/02/03(日) 17:02:570623デフォルトの名無しさん
2008/02/09(土) 00:36:25通常のc++-mode設定だとインデント壊れて気持ち悪いよね?
(sample/minimal/minimal.cppに対してindent-regionすると120行目のMyApp::OnInit()が1インデント下がる)
ttp://www.wxwidgets.org/develop/standard.htm#indentation とかの設定もみたけど、
wxWidgetのマクロによるインデントずれの問題は解決してないように見えるんだが・・・
0624デフォルトの名無しさん
2008/02/10(日) 02:46:40ボタンが押されたらアプリを終了するようにしようと思い、
class MyFrame: public wxFrame {
protected:
wxButton* button_1;
}; // wxGlade: end class
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(button_1, MyFrame::OnExit)
END_EVENT_TABLE()
void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event))
{
Close(TRUE);
}
みたいに書いてみたのですが、(はしょりまくってます)
コンパイルしようとすると
hello2.h:31: error: invalid use of non-static data member ‘MyFrame::button_1’
hello2.cpp:13: error: from this location
のようなエラーが出ます。
どこがおかしいでしょうか??
初心者質問ですいません。
0625デフォルトの名無しさん
2008/02/10(日) 08:14:57指定するのは変数名ではなくて、多分wxButtonをnewする際に指定する
コマンドID(wxID_EXITとか)かも…。
EVT_BUTTON(wxID_OK, MyFrame::OnExit)
:
MyFrame::MyFrame(...)
button_1 = new wxButton(this, wxID_EXIT, wxT(“OK”),
wxPoint(200, 200));
:
0626625
2008/02/10(日) 08:16:38EVT_BUTTON(wxID_OK, MyFrame::OnExit)
↓
EVT_BUTTON(wxID_EXIT, MyFrame::OnExit)
0627デフォルトの名無しさん
2008/02/10(日) 13:07:31おれはDECLARE_EVENT_TABLE()とかの後ろにセミコロンを置いてる。
0628デフォルトの名無しさん
2008/02/12(火) 09:52:510629デフォルトの名無しさん
2008/02/12(火) 13:20:18http://wxwindowsjp.sourceforge.jp/html/2.8.4/wx_wxfileconfig.html
0630628
2008/02/12(火) 13:24:310631デフォルトの名無しさん
2008/02/12(火) 18:16:410632デフォルトの名無しさん
2008/02/12(火) 19:43:35つ wxArrayString
0633631
2008/02/13(水) 09:46:38wxArrayString.Text (Itemを改行コードを挟みながら連結)みたいなメソッドは無いんですね。
自作するしか無いか。
関係ないけど、やっぱ改行コードってC++のendlを使いますよね?
まさか、wxWidgetsで、CRとかLFをラップしてくれてたりしないですよね?
出来れば、wxWidgetsが改行コードのグローバル変数を持ってて、
初期処理でどのプラットフォームでもCRLFで初期化してやろうかと思ったのですが。
0634631
2008/02/13(水) 09:50:17wxWidgetsのヘルプ読んでると、
>std:string互換関数の利用が強く推奨される!
>そして遅かれ早かれstd::stringを使い始めるであろうwxWidgetsの将来のバージョンとの互換性を保つ.
とあるから、
wxStringより、std::string推奨なんですね。
文字列についてはC++の標準を使えって意味は分かるけど、std::stringって機能が弱いおね。
0635デフォルトの名無しさん
2008/02/13(水) 10:57:42>std::stringって機能が弱いおね。
たとえばどんな?
0636デフォルトの名無しさん
2008/02/13(水) 11:00:08string str1;
str1 = "a" + (string)"b";
みたいに書けないことない?(自分の勉強不足かも)
それとか、UpperCaseが無いわけじゃないけど、書きにくかったりとか。
0637デフォルトの名無しさん
2008/02/13(水) 11:11:28は標準で入ってたと思う。
0638デフォルトの名無しさん
2008/02/13(水) 11:18:50gccでエラーだったんですが。(勘違いかも)
0639デフォルトの名無しさん
2008/02/13(水) 11:47:010640デフォルトの名無しさん
2008/02/13(水) 16:26:50vector char とかするのかなぁ?
(ちょっとスレチ)
0641デフォルトの名無しさん
2008/02/13(水) 16:41:340642デフォルトの名無しさん
2008/02/13(水) 16:48:22どうも。それ使います。insertメソッドとかもありますね。
NULLで切れないと信じて。
0643デフォルトの名無しさん
2008/02/13(水) 18:30:57>str1 = "a" + "b";
は書けます。
>str1 += "a" + "b";
は書けないんですね。
ちょっと不便。
0644デフォルトの名無しさん
2008/02/13(水) 19:04:470645デフォルトの名無しさん
2008/02/13(水) 20:10:560646デフォルトの名無しさん
2008/02/13(水) 20:38:05str += "b";
は出来るだろ。
ていうかC++スレでやるべきだと思うんだ・・・。
0647デフォルトの名無しさん
2008/02/13(水) 21:58:27そのへん楽したかったら、
wxPython
wxErlang
wxHaskell
wxLua
wxPerl
wxRuby
wxSqueak
wx4j
wxJavaScript
あたり使ったらいんじゃね?
0648デフォルトの名無しさん
2008/02/13(水) 22:16:15"a" "b"
って書いたら
"ab"
って書いたのと同じだけどな。
リテラルだけだが。
0649デフォルトの名無しさん
2008/02/14(木) 10:58:06へえー、4j ってプログラミング言語があったのか・・と思った
ググって見ると、・・このスレのテンプレにすでに書いてあった・・
0650デフォルトの名無しさん
2008/02/15(金) 17:55:06(wxで無くともポータブルなら何でもかまいません)
2、↑を押すと以前選択された文字列が出てきたり、
選択可能な文字列群を設定すればtabキーで勝手に補完してくれる
なんちゃってシェルのようなクラスはありませんか?
よろしくお願いします。
0651デフォルトの名無しさん
2008/02/15(金) 20:59:460652デフォルトの名無しさん
2008/02/16(土) 00:34:08readlineってこういう事に使うライブラリなのですか。
初めて知りました^^
これで全然問題ないです。
どうもありがとうございました。
0653624
2008/02/16(土) 00:48:57返信めちゃくちゃ遅れてすいません。
ご指摘された通り直したら意図した通りに動きました。
ありがとうございましたm(_ _)m
0654デフォルトの名無しさん
2008/02/16(土) 01:22:37readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする
http://sourceforge.net/projects/libedit/
0655デフォルトの名無しさん
2008/02/16(土) 09:51:47自分も探しましたよ。ストールマンの呪縛から逃れるために^^
そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。
0656デフォルトの名無しさん
2008/02/16(土) 12:28:100657デフォルトの名無しさん
2008/02/16(土) 13:05:57> bigbang.exe 初期値1.xls > 結果1.xls
0658デフォルトの名無しさん
2008/02/16(土) 13:46:080659デフォルトの名無しさん
2008/02/16(土) 13:48:260660デフォルトの名無しさん
2008/02/16(土) 13:58:16自分で作らなくても、仕事だと嫌ほど受け取る。
■ このスレッドは過去ログ倉庫に格納されています