【GUI】wxWidgets(旧wxWindows) その3【サイザー】at TECH
【GUI】wxWidgets(旧wxWindows) その3【サイザー】 - 暇つぶし2ch550:デフォルトの名無しさん
08/01/07 02:47:58
ライブラリorファイルが足りてないに一票


551:549
08/01/07 03:37:44
>>550
ありがとうございます。

環境を書き忘れてました、すいません。
当方64bitのGentooでしたのですが、試しに32bitのDebianで試してみたところ
segfaultで落ちることは無いようです。Glib-Object-WARNINGはuimを切ると出なくなりました。
wxGTKのバージョンは2.8.7.1です。
もしかしたら私の環境だけなのかと思い書かせて頂いた次第です。

552:デフォルトの名無しさん
08/01/07 04:20:21
/lib64 だったりとか

553:549
08/01/08 00:14:53
wxGTKのバージョンを2.8.7.1-r1にしたら落ちなくなりました。
どうやらwxGTKのバグのようでした。どうもありがとうございました。

554:デフォルトの名無しさん
08/01/10 00:53:45
wxPythonでwxGridのwxGridCellChoiceEditor
でセルにプルダウンなメニューを出しているのですが、動作がおかしいのです。
Windowsでは期待道理に動くのですが、Linuxだと候補から選択してもセルに
値が入りません。

URLリンク(d.hatena.ne.jp)
の方も同様にいわれているのですが、どなたか解決された方いらっしゃらない
でしょうか?
Linuxのgtkとかのライブラリ依存なのでしょうか・・・

555:554
08/01/10 23:50:38
gtk2を2.10.4にしたら出なりました。お騒がせしました。

556:デフォルトの名無しさん
08/01/11 03:40:29
そんなもんじょのいこ
ってそれはえなりだよ

557:デフォルトの名無しさん
08/01/12 19:53:06
とにかくGTKがダメダメだということだけは分かったw


558:デフォルトの名無しさん
08/01/20 23:45:50
このスレで前に似たような質問があったのですが・・
どうしても解決しないので質問させてください。

環境はWindow XP Home MinGW です。
Eclipse CDT からMinGW を使って普通のcppファイルのコンパイル自体はできる状況です。

自分もここ
URLリンク(0xcc.net)
を見て色々設定したのですが、wxGladeを使って生成したhello.cppをコンパイルしようとするとエラーが出ます。
このページではwxWigdetsのバージョンは2.5.2が扱われていますが、なぜか自分の環境で2.5.2をインストールしようとすると./configure --disable-shared --disable-threads →make の時点でエラーが出るので
ver2.8.7を./configure --disable-shared --disable-threads →make して、make install もしました。
この状態でwxGladeで生成したhello.cppを上記ページで書かれているように
g++ -c hello.cpp `wx-config --cppflags`
すると、
g++: 'wx-config: No such file or directory
cc1plus.exe: error: unrecognize command line option "-fcppflags'"
というエラーが出てしまいます。
`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
とすると、
''wx-config' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。

どうすればよいのでしょうか??どなたかご教示頂けると幸いです。

559:デフォルトの名無しさん
08/01/21 03:02:40
あなたそりゃUNIXのシェルを前提としてる操作をWindowsのコマンドプロンプトで
やってもダメでしょうよ。

560:デフォルトの名無しさん
08/01/21 11:12:14
wx-configはコンパイルオプションを吐くシェルスクリプト
MSYSを導入して、rxvt上で実行しろ

561:デフォルトの名無しさん
08/01/21 11:16:12
回答ありがとうございます。
URLリンク(0xcc.net)
ここの、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`
の間違いでした。

562:デフォルトの名無しさん
08/01/21 11:33:27
>560 さん
回答ありがとうございます。MSYSは入ってます。
MSYSを導入して、rxvt上で実行 というのは、C:\MSYS\1.0\bin\rxvt.exe を立ち上げて
そこからg++ ~ でコンパイルしろってことでいいんでしょうか。
家帰ったら試してみます。ありがとうございます。


563:デフォルトの名無しさん
08/01/21 12:20:12
コンパイル云々の前に、そのまま素で
$ wx-config --cflags
とでも打ってみるんだな
どんな効果がでるか一発で分かる

564:デフォルトの名無しさん
08/01/21 13:05:17
''wx-config' は内部コマンド外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
というエラーになります。。

565:デフォルトの名無しさん
08/01/21 13:17:20
いや、だから、wxWidgets はユニックス系なので、
windows のコマンドラインじゃなくて
ユニックス系の shell でやらなきゃ ...

566:558
08/01/21 14:00:43
>565さん
564は自分じゃないですよ。
多分あまりにも基本的な部分で間違ってるので他の方に茶化されたのだと・・

でも
> wxWidgets はユニックス系なので、
> windows のコマンドラインじゃなくて
> ユニックス系の shell でやらなきゃ ...
ここらへんわかってなかったのでご指摘いただけてラッキーでした。
ありがとうございます。

シェルの勉強等まだ手をつけておらずほぼ全く分からないもので・・
初心者質問ばかりしてすいません >564さん

>563さん
ありがとうございます。帰ったら試してみます。

567:デフォルトの名無しさん
08/01/22 00:24:02
初心者なら、まずLinuxなりFreeBSDなりでやった方がいいよ。
Windowsでやるよりはるかに簡単だから。ネットの情報もほとんどUNIX系だし。

一旦それでやってればWindowsでもすぐできるようになると思う。
UNIX系の情報を見ながらWindowsで一発でやるには両方の知識が必要。

568:デフォルトの名無しさん
08/01/22 02:55:34
実行ファイルににxrcを組み込むか、それと同等の事って出来ないでしょうか?
xrcの存在意義を無視してるのは分かるのですが、
ソースは簡潔&実行時にはファイル一つ、にどうしてもしたくて..

569:デフォルトの名無しさん
08/01/22 05:10:43
ファイルひとつにこだわるならアーカイブ白と

570:デフォルトの名無しさん
08/01/22 05:32:32
>>568
xrcのデータを実行ファイルに持たせることなら普通に出来る。ドキュメント読め。

571:デフォルトの名無しさん
08/01/22 17:11:00
558です。
ご指摘されたとおり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の方が簡単なのであればそっちでやってみることにします。
ありがとうございました。

572:デフォルトの名無しさん
08/01/22 17:22:09
簡単にGUIアプリが作りたいだけなら、wxPython でやってみるって手もある。

573:デフォルトの名無しさん
08/01/22 18:38:29
>>568に便乗質問なのですが、
xrcでフォームの位置やサイズをアプリケーション終了時に保存することはできますか?

574:デフォルトの名無しさん
08/01/22 23:05:56
>>570
出来ました。ありがとうございます

575:デフォルトの名無しさん
08/01/23 00:04:51
>>571
もうちっとコマンドラインとか、パスとか、そういうことを勉強したほうがいいと思うな ...

576:デフォルトの名無しさん
08/01/23 01:05:42
>>572
そういえばマイナー同士の組み合わせの割には、wxPythonの日本語情報って
ググると意外に出てくるね。

577:デフォルトの名無しさん
08/01/23 02:08:03
最近のが多いから
はじめたばかりの君は恵まれている
昔は見つからなかった

578:デフォルトの名無しさん
08/01/23 02:15:24
なるほど。ということは、ちょっと前に「情報が少なかったのに頑張った」
猛者たちがあらわれたってことか。感謝感謝。

579:デフォルトの名無しさん
08/01/23 05:26:51
っつーかwxHogehogeの中で一番楽なのがwxPythonな気がする

580:デフォルトの名無しさん
08/01/23 08:53:58
今pythonがアツいってのもあるね
wxに限らずPyGTKやらPyQtやらで作られたアプリが増殖中

581:デフォルトの名無しさん
08/01/23 09:11:20
wxPythonについて概ねまとまってて勉強になったサイト
自信たっぷりの間違いがいくつかあるので注意
URLリンク(www.harukaze.net)


582:デフォルトの名無しさん
08/01/29 18:06:45
アプリケーションのトップのエラーハンドラって書けますか?

C++ Builder/VCL だと、
>void __fastcall TForm1::ApplicationEvents1Exception(TObject *Sender, Exception *E)
みたいな感じで書くんですが。


583:デフォルトの名無しさん
08/01/29 19:13:42
C++標準の例外じゃダメなの?

584:デフォルトの名無しさん
08/01/29 19:22:52
いや、それで良いのです。throw するのはC++の例外。
アプリの一箇所、一括でcatchしたいだけですが、どう書けば良いでしょう?

585:デフォルトの名無しさん
08/01/29 23:17:40
int main()
{
try {
// main routine
}
catch(...) {
// error handling
}
}

586:デフォルトの名無しさん
08/01/29 23:40:34
wxApp使った場合って、mainが隠蔽されてるんだっけ?
とするとwxApp::OnFatalExceptionとかがそうなのかなぁ。
URLリンク(wxwindowsjp.sourceforge.jp)

587:デフォルトの名無しさん
08/01/30 01:38:35
Ver2.8.6使ってるけど、
wxApp::OnUnhandledExceptionのドキュメント見ると、
OnRunをオーバーライドしてそこでキャッチしろって書いてるよ。

int MyApp::OnRun()
{
 try{
  return wxApp::OnRun();
 }
 catch(std::exception &e){
  ...
 }
}

588:582
08/01/30 08:41:31
>>585 >>586 >>587 etc.
回答サンクス。

やっぱ質問してヨカタ。

589:582
08/01/30 10:36:01
ヘルプの内容(>>587)確認しました。

OnRunオーバーライドして、エラーはcatchはされるんですが、catchの前にエラーが出てしまうのは何ででしょう。

590:582
08/01/30 10:39:12
OnExceptionInMainLoop()をオーバーライドして、return trueしたところ、無問題になりました。
有難うございました。

591:582
08/01/30 10:44:40
あれ?例外が補足されなくなちゃったorz

592:587
08/01/30 11:20:47
bool MyApp::OnOnExceptionInMainLoop() { throw; }
でMyApp::OnRun()のcatchに直通できた。
wxのエラーダイアログの中止ボタン押したときの処理もこうだから、
たぶんこれで問題ないと思う。

593:582
08/01/30 11:28:06
>>592
あ、本当ですね。上手くいきました。

594:582
08/01/30 11:51:30
Winでは上手くいったのですが、
wxMac-2.8.7では、MyApp::OnOnExceptionInMainLoop()がコールされずに、
>シグナル 6(SIGABRT)により終了しました。
で終わってしまうのは何ででしょう?

throw を丸々囲んだら、ちゃんとcatchされますので、C++例外オフの問題じゃないみたいです。
念の為configureを調べても、
>checking for --enable-no_rtti... no
>checking for --enable-no_exceptions... no
です。


595:デフォルトの名無しさん
08/01/30 12:07:13
サンプルみつけました:

wxWidgets/samples/except
URLリンク(cvs.wxwidgets.org)
URLリンク(cvs.wxwidgets.org)

596:582
08/01/30 13:25:38
あれー、
>wxMac-2.8.7\samples\except
で、
コンソールからmakeしましたが、
アプリでThrowメニュー(int/string/object)を実行すると、アプリがエラーで吹っ飛びます。

どうも、wxMacのバグですね。
当面は、実行メニューをそれぞれtry-catchで囲んでおきます。
開発中にcatch内容が変わったりすると、メンドイですね。

597:デフォルトの名無しさん
08/01/30 15:29:47
URLリンク(www.wxwidgets.org)

598:デフォルトの名無しさん
08/01/31 16:16:31
すいません質問させて頂きたいのですが、
URLリンク(0xcc.net)
このページ見て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
です。

どなたかアドバイス頂けると幸いです。。


599:デフォルトの名無しさん
08/01/31 17:14:43
対症療法だが日本語使うのをやめろ

600:デフォルトの名無しさん
08/01/31 22:16:10
てかエラーメッセージ読めよ…

601:デフォルトの名無しさん
08/01/31 23:01:50
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


602:デフォルトの名無しさん
08/01/31 23:02:14
レスありがとうございます。

エラーメッセージ読んでますが読んで意味が分からなかったので質問させて頂きました。
エラーメッセージで検索したりもしてみたんですが関係ありそうなのが出てこなかったので・・

日本語ですか。特に使ってないと思うのですが・・


603:デフォルトの名無しさん
08/01/31 23:17:53
英語が読めないならば、エラーメッセージを英日翻訳ソフトに入れると良いかもよ。
ascii文字以外が入っているかもう一度確認して見てください。
ascii文字の意味はわかりますか?


604:デフォルトの名無しさん
08/01/31 23:44:01
親切にありがとうございます。
いえ、英語は分かるのでエラーメッセージの翻訳はできるんですが、それでも意味が分からないということなんです。
ASCII文字は分かります。
「ascii文字以外が入っているか」っていうのは、どこを確認すればいいのでしょう??

605:デフォルトの名無しさん
08/01/31 23:56:32
インターフェースに日本語つかってるということなんじゃないの?
アルファベットだけつかったつもりでも、
まちがって全角スペースが入るということもあります

606:デフォルトの名無しさん
08/02/01 00:03:41
>>602
直接的な答えじゃなくて申し訳ないけど、俺がやるなら:

・エラーメッセージを出力している部分の wxGlade のソースコードを読む
・エラーが出なくなるまでウィジェットを減らしてみる

607:デフォルトの名無しさん
08/02/01 00:11:46
ソースファイルを1バイトずつ読み込んで値が全部0以上127以下になってるか調べればいいと思うよ

608:デフォルトの名無しさん
08/02/01 01:42:06
解決しました。
単純にコードを吐き出すパスに「デスクトップ」が入っていただけでした・・汗
回答くださった方々ありがとうございましたm(_ _)m

609:デフォルトの名無しさん
08/02/01 03:11:59
これはずっこけざるを得ない. まぁありがちだとは思うが.
ubuntu-jpも余計なことしてくれるよな. 'デスクトップ'は英語名に直しとき.

610:デフォルトの名無しさん
08/02/01 04:05:20
デスクトップで作業してんじゃねーよ、カス


611:デフォルトの名無しさん
08/02/01 09:53:13
まあ、トラブルの原因のほとんどは「単純」なミスだよね

612:デフォルトの名無しさん
08/02/02 17:49:53
fedora8のwxwidgets(2.8.4)で
wxDirPickerCtrlで起動後初回の選択のみ反応しないのですが,
(GetPathに反映されず,ハンドラも呼ばれない)
同じような症状の方いませんでしょうか?
使い方でミスをしてるのか,バグなのか分からなくて困ってます.

613:デフォルトの名無しさん
08/02/03 02:36:57
今ようやくHello,worldが作れたんだけれど、66KBだった。
4MBぐらいになるってどこかに書いてあったのだけれど。


614:デフォルトの名無しさん
08/02/03 03:13:40
静的リンクだとMBになるよ

615:デフォルトの名無しさん
08/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
と言われるけど、今度は何も生成してくれない。

のはなんででしょう。。

616:デフォルトの名無しさん
08/02/03 03:26:45
>>615
>特別なにもしてないと静的リンクにならないんでしょうか。

つ ldd

617:デフォルトの名無しさん
08/02/03 03:52:29
>>615
>>558-563

618:デフォルトの名無しさん
08/02/03 04:42:37
スレ違い
C初心者スレ池


619:デフォルトの名無しさん
08/02/03 04:58:13
>>615
>今度は何も生成してくれない。
>のはなんででしょう。。

太陽が眩しかったから

620:デフォルトの名無しさん
08/02/03 09:23:53
Linux が素人にも使いやすくなって、Windows のコマンドラインと
Unix のシェルの違いもわからないひとが GUI プログラムを
コンパイルできるようになったというのは良いことなのやら悪いことなのやら ...

621:デフォルトの名無しさん
08/02/03 10:04:57
ただの馬鹿なのが問題なんだ。
たとえ素人でも疑問を追及する意思があれば間抜けな質問を垂れ流したりはしない。


622:デフォルトの名無しさん
08/02/03 17:02:57
>>612について情報をお持ちの方は居ませんでしょうか…

623:デフォルトの名無しさん
08/02/09 00:36:25
みんなemacs(Meadow)上でwxWidget使ったコード書くとき、modeどうしてる・・・?
通常のc++-mode設定だとインデント壊れて気持ち悪いよね?
(sample/minimal/minimal.cppに対してindent-regionすると120行目のMyApp::OnInit()が1インデント下がる)

URLリンク(www.wxwidgets.org) とかの設定もみたけど、
wxWidgetのマクロによるインデントずれの問題は解決してないように見えるんだが・・・


624:デフォルトの名無しさん
08/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
のようなエラーが出ます。

どこがおかしいでしょうか??
初心者質問ですいません。

625:デフォルトの名無しさん
08/02/10 08:14:57
普段Windows使ってるのでよく分かんないんですが、EVT_BUTTONの後に
指定するのは変数名ではなくて、多分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));
  :

626:625
08/02/10 08:16:38
orz…
EVT_BUTTON(wxID_OK, MyFrame::OnExit)

EVT_BUTTON(wxID_EXIT, MyFrame::OnExit)

627:デフォルトの名無しさん
08/02/10 13:07:31
>>623
おれはDECLARE_EVENT_TABLE()とかの後ろにセミコロンを置いてる。

628:デフォルトの名無しさん
08/02/12 09:52:51
wxWigetsのiniファイル読み書き専用関数とかあるんでしょうか?


629:デフォルトの名無しさん
08/02/12 13:20:18
>>628
URLリンク(wxwindowsjp.sourceforge.jp)

630:628
08/02/12 13:24:31
サンクス。やっぱこういうのが標準であると便利ですよね。

631:デフォルトの名無しさん
08/02/12 18:16:41
wxWigetsのStringListはありますか?

632:デフォルトの名無しさん
08/02/12 19:43:35
>>631
つ wxArrayString

633:631
08/02/13 09:46:38
有難うございます。

wxArrayString.Text (Itemを改行コードを挟みながら連結)みたいなメソッドは無いんですね。
自作するしか無いか。


関係ないけど、やっぱ改行コードってC++のendlを使いますよね?
まさか、wxWidgetsで、CRとかLFをラップしてくれてたりしないですよね?

出来れば、wxWidgetsが改行コードのグローバル変数を持ってて、
初期処理でどのプラットフォームでもCRLFで初期化してやろうかと思ったのですが。

634:631
08/02/13 09:50:17
>関係ないけど、やっぱ改行コードってC++のendlを使いますよね?

wxWidgetsのヘルプ読んでると、
>std:string互換関数の利用が強く推奨される!
>そして遅かれ早かれstd::stringを使い始めるであろうwxWidgetsの将来のバージョンとの互換性を保つ.
とあるから、
wxStringより、std::string推奨なんですね。

文字列についてはC++の標準を使えって意味は分かるけど、std::stringって機能が弱いおね。

635:デフォルトの名無しさん
08/02/13 10:57:42
>>634
>std::stringって機能が弱いおね。
たとえばどんな?

636:デフォルトの名無しさん
08/02/13 11:00:08
std::stringだと、

string str1;
str1 = "a" + (string)"b";
みたいに書けないことない?(自分の勉強不足かも)

それとか、UpperCaseが無いわけじゃないけど、書きにくかったりとか。

637:デフォルトの名無しさん
08/02/13 11:11:28
string std::operator+(const char *lh, const string &rh);
は標準で入ってたと思う。

638:デフォルトの名無しさん
08/02/13 11:18:50
あ、+ 演算子は実装されてますか。

gccでエラーだったんですが。(勘違いかも)

639:デフォルトの名無しさん
08/02/13 11:47:01
MinGW gcc3.4.5では大丈夫だね。

640:デフォルトの名無しさん
08/02/13 16:26:50
STLって、MemoryStreamみたいな可変バイト列ってありましたっけ?

vector char とかするのかなぁ?

(ちょっとスレチ)

641:デフォルトの名無しさん
08/02/13 16:41:34
stringstream

642:デフォルトの名無しさん
08/02/13 16:48:22
>>641

どうも。それ使います。insertメソッドとかもありますね。
NULLで切れないと信じて。

643:デフォルトの名無しさん
08/02/13 18:30:57
>string str1;
>str1 = "a" + "b";
は書けます。

>str1 += "a" + "b";
は書けないんですね。

ちょっと不便。

644:デフォルトの名無しさん
08/02/13 19:04:47
全然

645:デフォルトの名無しさん
08/02/13 20:10:56
べつに

646:デフォルトの名無しさん
08/02/13 20:38:05
str += "a";
str += "b";
は出来るだろ。
ていうかC++スレでやるべきだと思うんだ・・・。

647:デフォルトの名無しさん
08/02/13 21:58:27
ま、C++だしな。
そのへん楽したかったら、
wxPython
wxErlang
wxHaskell
wxLua
wxPerl
wxRuby
wxSqueak
wx4j
wxJavaScript
あたり使ったらいんじゃね?

648:デフォルトの名無しさん
08/02/13 22:16:15
C/C++は
"a" "b"
って書いたら
"ab"
って書いたのと同じだけどな。
リテラルだけだが。

649:デフォルトの名無しさん
08/02/14 10:58:06
> wx4j

へえー、4j ってプログラミング言語があったのか・・と思った
ググって見ると、・・このスレのテンプレにすでに書いてあった・・

650:デフォルトの名無しさん
08/02/15 17:55:06
1、プロセスを跨いだ書き込みができるコンソールクラスはありますか?
 (wxで無くともポータブルなら何でもかまいません)

2、↑を押すと以前選択された文字列が出てきたり、
  選択可能な文字列群を設定すればtabキーで勝手に補完してくれる
  なんちゃってシェルのようなクラスはありませんか?

よろしくお願いします。

651:デフォルトの名無しさん
08/02/15 20:59:46
2番目はreadlineじゃ駄目なのか?

652:デフォルトの名無しさん
08/02/16 00:34:08
>>651
readlineってこういう事に使うライブラリなのですか。
初めて知りました^^

これで全然問題ないです。
どうもありがとうございました。

653:624
08/02/16 00:48:57
>>625 さん
返信めちゃくちゃ遅れてすいません。
ご指摘された通り直したら意図した通りに動きました。
ありがとうございましたm(_ _)m

654:デフォルトの名無しさん
08/02/16 01:22:37
>>652
readline はガチガチの GPL なので、代わりにより自由な libedit をお勧めする

URLリンク(sourceforge.net)

655:デフォルトの名無しさん
08/02/16 09:51:47
>>654
自分も探しましたよ。ストールマンの呪縛から逃れるために^^

そこのlibeditの最終リリースが2001年8月だったので
何じゃコリャと思ってしまったのですが、
Googleで探してみるとちゃんと新しいのもあるみたいですね。
ただ、マルチバイトが使えない&直すのは難しくないが「需要がない」
という内容のMLを見たときは少しびっくりしました。

656:デフォルトの名無しさん
08/02/16 12:28:10
たしかにコンソールで日本語打ちたいと思うケースはあまりない


657:デフォルトの名無しさん
08/02/16 13:05:57
> cd C:¥デスクトップ¥夏休みの宿題¥プロジェクト1¥宇宙シミュレータ
> bigbang.exe 初期値1.xls > 結果1.xls

658:デフォルトの名無しさん
08/02/16 13:46:08
後々ターミナルからアクセスすることを考えると日本語ファイル名は打つのめんどくさいから付けない

659:デフォルトの名無しさん
08/02/16 13:48:26
ubuntuの「デスクトップ」をどうにかしてください

660:デフォルトの名無しさん
08/02/16 13:58:16
>>658
自分で作らなくても、仕事だと嫌ほど受け取る。


661:デフォルトの名無しさん
08/02/16 14:52:22
>>655
あとは Tecla というのもあるよ
マルチバイトが使えるかは知らないけど…

URLリンク(www.astro.caltech.edu)

662:デフォルトの名無しさん
08/02/16 23:17:58
>>659
ディレクトリ名書き換えれたけど

663:デフォルトの名無しさん
08/02/17 02:32:40
2.8.7リリースされてるけど最近は流行ってないの?

てかスレ違い?

664:デフォルトの名無しさん
08/02/17 02:33:33
ごめん微妙に誤爆

665:デフォルトの名無しさん
08/02/17 04:03:32
というか、流行ってた頃ってあったの?

666:デフォルトの名無しさん
08/02/17 15:01:23
気づかずにお世話になってる人はいると思うがね
vlcとか

667:デフォルトの名無しさん
08/02/17 21:57:27
vlcねぇ~
あれってなんであんなにバイナリのサイズが小さいの?
VCとかで作ってるとどんなに気を使ってもMBサイズの大きさになってしまう・・・


668:デフォルトの名無しさん
08/02/17 22:01:05
libwxwidgets_plugin.dll
2.66 MB (2,793,984 bytes)

こういうカラクリ

669:デフォルトの名無しさん
08/02/17 23:55:57
あー、もしかしてライブラリをビルドするときにDLLでビルドすればいいのか
納得しました

670:デフォルトの名無しさん
08/02/18 02:15:57
実行ファイルさえ小さければDLLが多少でかくてもそんなに文句は出ないという
意外と盲点かもしれないね

671:デフォルトの名無しさん
08/02/18 23:25:28
てかサイズ大きくてもいいからDLL1ファイルだけってできないん?

672:デフォルトの名無しさん
08/02/18 23:45:30
MONOLITHICのSHAREDじゃ駄目なのか。
試したことないが。

673:デフォルトの名無しさん
08/02/19 18:56:33
wxWidgets用のRADツールはWinでならどれ使うのが良いでしょうか?

674:デフォルトの名無しさん
08/02/19 20:28:21
どれを、と言うほど選択肢あるのか?

wxGlade, wxFormBuilder, wxDesigner, wxSmith, VisualWx...

あ、結構あるなw

675:デフォルトの名無しさん
08/02/19 20:39:39
wxWorksってのも違うの?

676:デフォルトの名無しさん
08/02/19 22:38:31
比較サイト見っけた
URLリンク(wiki.codeblocks.org)

677:デフォルトの名無しさん
08/02/19 23:59:22
いやいや、DLL分けた分起動遅くなるだけじゃん。
Linuxのように、ディス取り標準ビルドの共有ライブラリが一つあってそれが基準になるなら良いけど、
Windowsではオレオレビルドのdllがまかり通るからstaticリンクが無難。

678:デフォルトの名無しさん
08/02/20 01:17:48
wxってsetup.hでビルドオプション変更できるみたいだけど、
Linuxで共有ライブラリのビルドオプションが気に入らなかったら、
staticリンクにしろってことでいいのかな?

679:デフォルトの名無しさん
08/02/20 11:10:38
>>678
UN*X 系は RUNPATH や LD_LIBRARY_PATH で対処する方が多いんじゃないかな。
wx みたいな、でかいライブラリを static にする事は殆ど無いと思うよ。

680:デフォルトの名無しさん
08/02/22 01:10:25
wxPythonの2.6なのですが、
gridの任意のセルに、Ctrl押し下げ+マウスの左クリックイベントを送りたいのですが
どのようにすればいいですか?
だれかとっかかりだけでも教えてください。お願いします。

681:デフォルトの名無しさん
08/02/23 03:00:16
wxDev-C++いれてみたけど
かなり頑張ってるな。


682:デフォルトの名無しさん
08/02/23 20:04:15
wxwidgetsってエラーが出てコンパイルできねーんだけどやる気あんのか中の人。

683:デフォルトの名無しさん
08/02/23 20:08:42
>>682
おまえはやる気あんのか?

684:デフォルトの名無しさん
08/02/24 10:02:28
C言語でクロスプラットフォームなGUIプログラミングしようと思ったら
wxWigets or QT or GTK どれが良いですか?

wxWigets の環境をうまく作れなかったので、QT入れてみたのですが・・・。

685:デフォルトの名無しさん
08/02/24 10:26:47
初体験するなら、恋人、ナンパ娘、風俗嬢の誰がいいですか?
恋人をうまく作れなかったので、風俗嬢に挿れてみたのですが・・・。

686:デフォルトの名無しさん
08/02/24 10:31:45
>>684 が挙げた3つの中でC言語なのはGTK+だけ

687:デフォルトの名無しさん
08/02/24 11:55:18
妹に一緒にお風呂に入ろうと誘われたんですがどうすればいいですか?

688:デフォルトの名無しさん
08/02/24 15:11:32
>>685
初体験なのに3つも選択権をもっているような人は
このスレに来てはいけません

>>687
具体的に何を迷っているのか分からない。
なぜ考える必要があるの?

689:デフォルトの名無しさん
08/02/24 16:07:33
妹=42歳(千代大海似)

690:デフォルトの名無しさん
08/02/24 19:56:56
wxを使ってMindmapエディタを自作したいと思ってるんですが、
複数のテキストボックス(サークル)間にリンクを張って
表示するのに便利なモジュールってありますか?
# うまく説明できなくてすみません。

snapshotを見ると、UML図を書けるようなアプリはあるようですが、、、

691:デフォルトの名無しさん
08/02/24 22:22:27
そんな程度の考えでマインドマップ作ろうってのは無謀な気がするが
それはおいとくとして、
けっこうプラットフォームによってまちまちな部分があるので、
マルチプラットフォームを考えてるなら、ありもののパーツで
なんとかならない場合はwxはやめといた方がいいかも。
たとえばマインドマップとかペイントソフトとかだとキャレットの操作が必要になると
思うけど、Win版はちゃんとネイティブのキャレットを操作してるが
GTK版なんかは自前でキャレットらしき棒を描く場所を変更してるだけ。

692:デフォルトの名無しさん
08/02/25 00:33:32
wxGladeのTextCtrlのlayoutプロパティでoptionっていう項目がありますが、これってなんの値なんでしょうか??

693:デフォルトの名無しさん
08/02/25 01:06:09
>>692
最近のはproportionと呼び名が変わったようだ。
>>523 の説明がわかりやすいと思う。

694:デフォルトの名無しさん
08/02/25 09:50:19
親ウィンドウと子ウィンドウを連動しようと思い。
親ウィンドウのMoveEventから
子ウィンドウのMoveを呼び出したのですが、
エラー落ちしてしまいます。

何か方法があるのでしょうか?

695:692
08/02/26 01:20:38
>>693さん
なるほど。523見てなんとなく分かりました。
ありがとうございました。

696:694
08/02/26 08:35:58
コンストラクタ内でMoveEventが呼ばれ(たぶんCenter関数)
その時にはまだ子ウィンドウが生成されてなかった。

しかも初期化が完了してない無効なポインタだったので
当然エラーということだった

コンストラクタで始めに関数が呼ばれる前に
事前初期化してないとエライことになる可能性があるという教訓でした。


697:デフォルトの名無しさん
08/02/26 16:20:52
メニューのフォントを変更しようと思い、
wxMenuBarにフォント設定したけど反映されない・・・
なぜ・・・

698:デフォルトの名無しさん
08/02/27 09:25:53
wxMenuBar

wxWindowsを継承しるのになんでそのフォント使わないで
インラインで別のフォント使うのか理解できん。



699:デフォルトの名無しさん
08/02/27 11:01:34
早くwx-usersに要望を出す作業に戻るんだ

700:デフォルトの名無しさん
08/02/27 21:31:15
メニューバーが自前で描画するモノなんかあったっけ?

701:デフォルトの名無しさん
08/03/01 00:38:09
wxWidgetsってWindows Mobile環境でも動作するんでしょうか?
あと、その場合、バインディング言語(wxPython等)でも利用可能なんでしょうか?

702:デフォルトの名無しさん
08/03/01 09:36:44
URLリンク(wxpyce.wikispaces.com)

703:701
08/03/01 09:55:26
>>702
サンクスです。

704:デフォルトの名無しさん
08/03/03 01:02:32
あるウィンドウのZオーダーを動かしたい(一番手前に表示したい)
のですがどうやればいいのでしょうか?
よろしくお願いします。

705:デフォルトの名無しさん
08/03/03 01:36:52
>>704
Raise()

706:デフォルトの名無しさん
08/03/03 18:51:07
2年以上開発版のままだったCode::Blocksが2/28に8.02をリリースしてた。
URLリンク(www.codeblocks.org)


707:デフォルトの名無しさん
08/03/03 18:52:50
使えそう?

708:デフォルトの名無しさん
08/03/03 19:22:07
>>705
できました。ありがとうございました

709:706
08/03/03 20:05:07
>>707
Fedora8で昔使ってみたときのプロジェクト試してみたけど、
Buildしたときのerrorとwarningが入れかわってる気がする。一応動いたけど。
ちょっと前にチェックしてたけど、
2、3日に一回くらい開発版だしてて追いつけなかったからリリースをまってた。
いろんなOSで動くところが好きなので、そのうち本格的に使うかも。
macportsにもきてた。


710:デフォルトの名無しさん
08/03/04 01:37:13
wxGladeで画面を作成しているのですが、
widgetを配置する画面(Frameをダブルクリックして出てくる画面)に、
配置してあるボタン等が収まりきらなくなりました。
しかしながら、Previewで見るときちんと全部収まっています。
Panelを削除するとこの現象は出ないのですが、どこか作り方が
おかしいのでしょうか?
どなたか教えてください。


711:デフォルトの名無しさん
08/03/04 01:50:20
>>710
Previewの方が正しい。
wxGladeを立ち上げ直すと直ることもある。
けど,まあそんなもんだと思っている。

712:710
08/03/04 23:36:30
>>711
レスありがとうございます。
そうですか。
Panelを捨ててしまうと、タブ移動が出来なくなるので困っていました。
wxGladeのバージョンアップに期待というところでしょうか?
sizerの入れ子の数とかでおかしくなるのかなー。

713:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/03/15 16:01:46
下がってるのであげてみることにする

ちなみにwxRubyについてるサンプルソース読むと、XRCのサンプルでもコード上でメニューバーとか追加してた

715:デフォルトの名無しさん
08/03/15 20:02:14
事故解決した
Wx::Frame#get_menu_bar
ちぅのがあるのね…

716:デフォルトの名無しさん
08/03/16 09:00:11
widestudioとどっちがいいですか??

717:デフォルトの名無しさん
08/03/16 17:25:52
どっちがいいか言い切れるんならもう片方は消滅してるよ

718:デフォルトの名無しさん
08/03/17 02:22:43
wx-gladeでseparate for each classというオプションにチェックを入れてコードを吐かせてみたのですが
wxAppクラスを継承したMyAppクラスの宣言部がmain.cppとして一個増えただけでした。

URLリンク(www.h3.dion.ne.jp)
このページみたいにモジュールを分割していきたいのですが、wxTextCtrlを継承させる予定のwxTextCtrl2クラスのコードを別ファイルで吐かせたりするにはどうすればよいのでしょうか。


719:デフォルトの名無しさん
08/03/18 01:24:25
長らく使ってないけど
wxTextCtrl2っていうCustom Widgetを作るんじゃなかったかな

720:デフォルトの名無しさん
08/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
08/03/18 16:28:26
もう少し状況が分かりました。

ダイアログのシステムボタンで閉じる → ×
Close()で閉じる → ×
Hide()で閉じる → ○

つまり、閉じ方によって、ウィンドウのDestroyが呼ばれるかどうかが決まるんですね?

詳しい方、情報もしくは、同意よろorz

722:デフォルトの名無しさん
08/03/19 14:39:14
wxWidgetsの環境変数で、
ファイルのパスのデリミタや、
実行ファイルのディレクトリを
取得できますか?

723:デフォルトの名無しさん
08/03/19 16:01:40
argv[0]を参照する方法はありますか?

724:723
08/03/19 16:07:02
みつけますた ---> URLリンク(wxwindowsjp.sourceforge.jp)

725:723
08/03/19 16:29:58
で、wxAPPのインスタンスってダイアログ側からどうやって取るんでしょう?


726:デフォルトの名無しさん
08/03/19 16:33:30
::wxGetApp

727:デフォルトの名無しさん
08/03/19 16:44:51
thx!>>726
orz

728:デフォルトの名無しさん
08/03/20 13:36:28
>>722
デリミタは、wxFileName::GetPathSeparator()

実行ファイルディレクトリは、
wxFileName exepath(wxStandardPaths::Get().GetExecutablePath());
wxString exedir = exepath.GetPath();
でexedirに入る。


729:718
08/03/20 19:48:39
>>719さん
レスありがとうございます。試してみます!
お礼遅れてすいません。


730:729
08/03/20 19:58:09
と・・調べてみたのですが、custom widgetsってwx-gladeのパレットに新しい項目追加するような感じで自分でカスタムしなければいけないのですね。
これだとクラス継承する毎にパレットに追加しなくてはならなくなりますよね。。(当然ですが)

クラス継承して使いたい場合、みなさんどうやってコードを書いているのでしょうか??
自分で継承して作ったクラスを全部wx-Gladeで描画できるようにするのはけっこう面倒くさそうですし・・
あんまりファイル分割しない方がいいんでしょうか。
それとも、wx-gladeはあんまり使わない、とか・・


731:デフォルトの名無しさん
08/03/20 20:29:23
wx-gladeはあんまり使わない

732:デフォルトの名無しさん
08/03/20 20:50:35
wxFormBuilderがおすすめ
適当なコントロールから継承したカスタムコントロールやウィンドウなら、
継承元の見た目で作って、クラスを指定してヘッダファイル名まで指定できる。

733:デフォルトの名無しさん
08/03/20 22:55:02
>>728
有難うございます。まだ調査している最中だったので助かりました。

>>732
そうなんですか。。。
知らなかったのでwxDev C++ を使ってますorz



734:デフォルトの名無しさん
08/03/21 15:19:46
Windows環境だと、
>std::string str;
>wxString wstr = str;
と書けるんですが、
wxMacだと、
>wxString wstr = str.c_str();
と書かないとコンパイル通らないみたいです。

何でだろ。。。

735:デフォルトの名無しさん
08/03/21 16:09:27
ユニコードを使ってるかどうかかな?

736:734
08/03/21 16:19:02
あ、なるほど。>>735

wxMacは、環境設定でユニコードをオンにしてmakeしたようなかすかな記憶。
Windows版は、wx-debcppをインスコしただけだったような記憶。

この問題って難しい問題ですね。

737:デフォルトの名無しさん
08/03/21 23:32:17
すみません。初心者です。
wxDev-C++で作成したコードをLinuxでコンパイルできますか?
できるとしたら、makefileは自作ですか?
分かる方がいましたらよろしくお願いします。

738:デフォルトの名無しさん
08/03/21 23:59:59
自作でもいいが、autotools(automake/autoconf)あたりがおすすめ

739:デフォルトの名無しさん
08/03/22 04:43:56
wxが採用してるbakefileがいいんじゃないの。

740:デフォルトの名無しさん
08/03/22 10:55:32
>>738 >>739
ありがとうございます。試してみます。
まず、configure自体を知らないとダメなんでしょうね。勉強します。

741:730
08/03/23 13:31:54
情報ありがとうございます!
wxformbuilder、インストールしてみようと思ったのですが

Dependency is not satisfiable libwxbase2.8-0

とエラーが出てインストールできず・・

libwxbase2.8-0の再インストールとかしてみたのですがダメでした。
解決方法分かる方いらっしゃったら教えて頂けるとありがたいのですが・・

742:デフォルトの名無しさん
08/03/23 14:07:53
wxのC言語バインディングってないのかのう?

743:デフォルトの名無しさん
08/03/23 15:26:47
>737
wx-configを調べてみて
wxConfigクラスではなくてwx-configってコマンド

744:デフォルトの名無しさん
08/03/23 15:26:51
>>741
とりあえず、ver3 RC8を落として、解凍すればインストールいらないのでは?
URLリンク(downloads.sourceforge.net)
wxFormBuilder.exe起動したら動いたよ?ソースからビルドしようとしてる?

745:デフォルトの名無しさん
08/03/23 21:33:15
>741
ちょいと使ってるOS回りの詳細を書いてくれ
なんとなくLinuxじゃないかと思うが、だとすっとdistroとバージョンは?

746:デフォルトの名無しさん
08/03/23 21:59:32
wxDev-C++でデバッグしていて、ブレイクポントの2、3ステップ先で止まる
んですけど、こういうもん?Code::Blocksの方が使いやすいですかね?(Windowsです)

747:デフォルトの名無しさん
08/03/23 22:01:31
>>741
>Dependency is not satisfiable libwxbase2.8-0
の時点でUn*x系だろうけど…
wxがちゃんと動いてるなら自前でビルドした方が良いんじゃないか?

748:730
08/03/23 22:34:56
ご親切にありがとうございます!

OSはUbuntuで7.10です。wxWidgets自体は動いてます。

URLリンク(downloads.sourceforge.net)
の方、試しに落として起動しようとしてみたのですが、エラーが出て起動できませんでした。

自分が落とそうとしていたのはこっちです。
URLリンク(sourceforge.net)

こっちの方をダウンロードすると勝手にgdebi-gtkというので開かれ、パッケージインストーラというのが出るのですが、そこで

Dependency is not satisfiable libwxbase2.8-0

と言われます。

URLリンク(ubuntuforums.org)
とか
URLリンク(www.developpez.net) (イタリア語・・?)
とか見て色々試してみたのですが、解決しません・・

wxwidets の導入に手間取って、色んなパッケージのインストールとアンインストールを繰り返しまくってたのでなんか完全にインストールできてない状態になっているのかなと思ったのですが、libwxbase2.8-0をSynapticで完全削除後再インストールしても状況変わらず・・。

sudo apt-get install libwxbase2.8-0 でも 既に最新のパッケージです と言われてしまう状態です。


749:デフォルトの名無しさん
08/03/24 01:25:04
>>748
ダウンロードしたら、パッケージのあるディレクトリ行って
%sudo dpkg -i wxformbuilder_3.0.56-0ubuntu1dapper1_i386.deb
みたいな感じじゃなかったか
…物凄い基本だった気がするが、Linuxやめちゃったからよく覚えてないや

つーかWindowsバイナリ走らせようとするなwwww

750:デフォルトの名無しさん
08/03/24 01:25:44
Linuxじゃない、Debianだ

751:デフォルトの名無しさん
08/03/24 08:27:41
debでインストールしようとするならubuntuスレで聞け

./configure & make & sudo make install
ならこのスレでもok...か?

752:730
08/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:デフォルトの名無しさん
08/03/26 18:13:28
wxWidgetsのUTF-8版はありますか?

754:デフォルトの名無しさん
08/03/26 18:22:01
>>753ググレカス
URLリンク(www.wxwidgets.org)

755:デフォルトの名無しさん
08/03/27 02:19:49
すみません。wxDev-C++でBreakPointに止まってくれないのですが、そういう症状出たことある人いますか?
バージョンは6.10です。VB感覚で作成できそうなので、残念です。
もしwxDev-C++が候補から外れると、
Code:Blocksを使ってみようかと重うのですが、そちらはちゃんとデバッグできますか?

756:753
08/03/27 08:58:47
>>754
ありがとう。
UTF-8は目標ですか。

AnsiToUnicode/UnicodeToAnsiみたいな関数が欲しいですが、
wxWidgetsにあるんだろうか。。。

>>755
そういう症状でます。
自分の場合、ターゲットOSのデバッガでデバッグできました。
デザイン用のGUIエディタと割り切って、デバッグIDEは別のものにしてみたら?

757:デフォルトの名無しさん
08/03/27 10:08:28
何でwxWidgetsだけで何でもかんでもやろうとするんだ・・・

758:デフォルトの名無しさん
08/03/27 11:24:28
>>756ググレ(ry
・・・っていうかAPIリファレンスくらい目を通しておけ
URLリンク(wxwindowsjp.sourceforge.jp)

UTF-8の事だけど、試してないから正確なことはわからないが
未完成なだけで、一応使えるんだろ?
これから使うんだったら報告よろ



759:756
08/03/27 11:53:38
>>758
さんくす。

実際にwxConvUTF8.使ってるサイトハッケソ
URLリンク(diary.imou.to)
今すぐ動作させてみます。



関係ないけど、マニュアルのuft8_strを使うとコンパイルエラー、みたいな。

760:756
08/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:デフォルトの名無しさん
08/03/27 17:01:21
Windows上で使っています。
wxWidgetsでIMEを制御する方法があったら教えてください。

TextCtrlにフォーカスが移ったらIMEがONになる、などの使い方がしたいです。

762:デフォルトの名無しさん
08/03/27 17:23:15
>>760
気分転換にデバッガで追ってみた
原因はよくわからんが文字列に日本語が入ってるのがいかんらしい
"UTF-8String"で問題なかった

>>761
公式にはないようだから
自分で作るか適当に探してみ

あとwxTextCtrlはデフォで日本語入力ができるから
IMEが制御できてもあんまり意味ないとおも

763:761
08/03/27 17:36:16
>>762
ありがとうございます。
数値を入れるTextCtrlではIMEが自動でOFFになる、と説明すればよかったです。
ググっても出てこないので、自作の道を考えてみます。

764:760
08/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
08/03/27 18:44:31
>wxUSE_UNICODE
を定義してコンパイルすると、

>catch (std::logic_error &e) {
> wxMessageBox(wxT(e.what()), wxT("Error"), wxOK);
>}

といったwxMessageBoxがコンパイルエラー起こすんですが、何でですか?
ソースコードのファイルはSJISですが関係あるのかなぁ。


766:760
08/03/27 18:53:43
あれ、wxDev-C++で、新規プロジェクトを作った直後wxUSE_UNICODEをつけてmakeすると、
コンパイルは通るけど、リンクエラーだ。
なんか難しいなorz

767:デフォルトの名無しさん
08/03/27 18:59:21
>>766
wxDev-C++なんてよくわからないもの使わないでVC++を使ってください

768:デフォルトの名無しさん
08/03/27 22:22:51
>>765
ソースがSJISならwxConvUTF8は使えないと思う

769:755
08/03/27 23:57:05
>>756
ありがとうございます。デザインだけwxDev使えば良いんだね。
そういう使い方もあったか。

770:デフォルトの名無しさん
08/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
08/03/28 09:28:54
ありがとう。>>770

文字変換関数のみはunicodeビルドをするしかないですね。

>wx-configのオプションによって使い分けるんだよ。

難しいorz

772:764
08/03/28 09:32:44
>wx-configのオプションによって使い分けるんだよ。

あ、wxConfigオブジェクトとwxAppオブジェクトの連携かと思って劇しく難しいのかと思ったら、
コンパイルのコマンドラインの話ですね?

なら、文字変換関数のみ別プロジェクトでwxUSE_UNICODEを定義してコンパイルしてオブジェクトモジュールを作っとくだけですよね。

その後、>>766 のリンクエラーを対処すれば終わり?

773:デフォルトの名無しさん
08/03/28 15:58:39
そんなうまくいくかどうかわからんような小細工は
ここで質問してるような奴がやることじゃないと思うがなあ。

774:764
08/03/28 16:12:19
その通りかもしれない。

wxWigetsの文字変換はやめときます。

ドズで動作するのは、ICUだけですか?
iconvは動作しませんよね。

775:デフォルトの名無しさん
08/03/28 17:27:03
iconvはない。でもWindowsならOS自体に変換APIがあったと思うけど。詳細は忘れた。

776:デフォルトの名無しさん
08/03/28 19:56:57
windowsならmlang.dllが使える。
iconvのI/Fがいいなら

URLリンク(gtklab.sourceforge.jp)
なんかどう?


777:デフォルトの名無しさん
08/03/28 20:28:23
もしかして、新Mac板にいたwx君なのか?

778:デフォルトの名無しさん
08/03/29 12:27:39
ListCtrlを使っているのですが、MFCでいうオーナードローとかカスタムドローって
できないのでしょうか?
描画時のイベントやメソッドが見つからないのですが・・・


779:デフォルトの名無しさん
08/03/29 19:32:18
wxFormBuilder使ってみたのですが、C++Editorでソースをいじってみようとしたら、文字の書いたり消したりが全くできませんでした。(ショートカットメニューのCopy と Select ALLだけが動く・・)
これはバグではなくて、wxFormBuilderはそういうもんなのでしょうか?
ショートカットメニューにcutとかpasteとかもあるのにdisableになっている感じなので、バグのような気がするのですが・・。

780:デフォルトの名無しさん
08/03/31 08:47:27
>>776
それ、良いですね。

何でかというと、wxDev使ってるせいで、デザイン中はWinなんです。
そこで、iconvでWinとUNIX系と同じコードにできるなんて理想。

781:デフォルトの名無しさん
08/03/31 18:16:01
wxLocalのオブジェクトってグローバルであるのでしょうか?
どうやって取得すれば。。。

それとも自分でnewするもんでしょうか。

782:781
08/03/31 18:45:34
なんか分らないけど、
>include
して、
>wxLocal::メソッド
と書くと、
コンパイル&動作しました。

グローバルオブジェクトなのか、スタティックメソッドなのかどっちかでしょう。

783:デフォルトの名無しさん
08/03/31 19:25:03
>wxLocale::GetSystemEncodingName()
>windows-932

この値は、iconv_openで使う文字列でしょうか?

784:デフォルトの名無しさん
08/03/31 20:05:31
>>782-783
理解できないまま、推測だらけでコーディングするのは良くないよ
自分で試したり、質問する前にちゃんとドキュメント読んだり、検索してる?

785:デフォルトの名無しさん
08/03/31 23:51:05
似たような事を別スレで言われてMac板へ向かった彼じゃないか?

786:デフォルトの名無しさん
08/04/01 02:05:32
>>778
wxListCtrl - Ownerdraw: msg#00755

URLリンク(osdir.com)
で質問している外人さんがいるけれど、答えは「自作リストコントロールを作りました」になっています。

しかし、
URLリンク(jaist.dl.sourceforge.net)
ここを見ると、「Support right-aligned/centered owner drawn items in wxListCtrl」と書いてあるので、何かやり方があるのかも。

787:デフォルトの名無しさん
08/04/01 16:04:23
wxMac(Mac OS X)で、
システムメニューのHelpを押したときの処理を書く方法はありますか?
もしくはシステムメニューのHelpの下にサブメニューを作りたいです。

(IDEはwx-Dev C++ですが、手書きで良いので)

788:デフォルトの名無しさん
08/04/02 00:31:40
すみません。 eclipse + CDT + MinGW + wxWidgets の環境構築の方法を解説したサイトはありますか?
ちなみにOS は Windows XP です。
古い情報は何件か見つけたのですが、うまくいきませんでした。



789:デフォルトの名無しさん
08/04/02 10:30:04
>>787
URLリンク(www.wxwindows.org)
ここに書いてあるみたいだけど、英語だからワカンネー (´・ω・`)

790:787
08/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:デフォルトの名無しさん
08/04/02 12:18:01
wxpython だったらできた。

URLリンク(www.harukaze.net)
を参考に、

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
08/04/02 12:50:31
>>791
wxpythonででも、出来るってことは出来るってことだね。

そのままC++コードに移せそうですね。

ま、最悪、wxpythonをデバッガでトレースか。

793:788
08/04/02 23:31:49
windows版 eclipseでは、wx-configを指定したらダメなんでしょうか。

794:デフォルトの名無しさん
08/04/04 02:22:32
wxFormBuilderで、既に存在しているウィジェットを継承したクラスをwxFormBuilder上で作って、
そのクラスをや他のクラスを含んだコードをクラス毎に1ファイルずつ分割して吐かせたいのですが、どうすればできるでしょうか??

subclassやらcustom control などの情報を探して色々やってみたのですが分かりませんでした。
どなたか教えていただけると幸いです。


795:デフォルトの名無しさん
08/04/04 10:47:50
wxMacを使っていますが、デバッグコンパイルでさえ実行ファイルが92KBしかありません。
多分、ランタイムが必要なコンパイルとなってると思うのですが、
スタティックリンクにするための手順をご存知の方教えて頂けないでしょうか?

796:デフォルトの名無しさん
08/04/04 17:42:29
 ↑
この内容ヨロ!

797:デフォルトの名無しさん
08/04/04 18:24:41
Mac板で聞くほうがいいんじゃね?

798:デフォルトの名無しさん
08/04/04 18:27:39
 ↑
あんまり回答こないYO!

799:デフォルトの名無しさん
08/04/04 18:33:29
何が原因かわからないけど、もうちょっと問題の切り分けをしたほうがいいんじゃね?
wxWidget の問題なのか、C++なのか、XCode なのかとかさ。

800:デフォルトの名無しさん
08/04/04 18:37:47
するどいですね。
XCode使ってます。

逆に言うと、全く皆目見当つかなくて、切り分けできないので質問なげてます。
切り分け出来たら、あとはリファレンスとか何とか手に入れて全パターン試すだけですもんね。

ライブラリの構築(--disable-sharedですか?)の失敗なのか、
プロジェクトのmakeのコマンドラインが悪いのか。。。

801:795
08/04/04 18:48:38
もしくは、バンドルするDLLを特定できれば良いのですが。。。

802:デフォルトの名無しさん
08/04/04 18:58:07
XCodeでどう設定されてるかわからんけど、
wx-config --static=yes --libs
で出てくるオプション指定するとどうかな

使ってる共有ライブラリを特定するには
otool -L バイナリファイル名
で出てくる

803:794
08/04/04 19:07:00
放置されっぱなしの794ですが、分かる方いらっしゃいましたらこちらも教えていただけると幸いです。

795さんうらやますぃ

804:795
08/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
08/04/04 19:36:51
プロジェクトのオプションが、
>ライブラリ検索パス
>フレームワーク検索パス
が空文字でした。

これが問題なのかな?

806:795
08/04/04 19:47:29
検索パスは空ですが、
プロジェクトのメンバーにライブラリファイル
>mac-ansi-release-static-2.8
がちゃんと入っていました。

逆に、
>*.a
ファイルまで入ってるため、ダイナミックリンクになっちゃうのかな?

807:795
08/04/04 19:58:03
やっぱり、*.aファイルも無いと動作しません。

リリースビルドを行うと、
>/usr/bin/ld: can't locate file for: -lwx_base_carbon-2.8
というエラーになりましたorz

808:デフォルトの名無しさん
08/04/04 22:57:30
>>794
もっと図太くならないと。バンバンageながら、質問やら状況を795並みにするんだ。
恥ずかしくなんか無い!!


809:転載せざるをえない
08/04/04 23:05:24
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称ではない。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。

810:デフォルトの名無しさん
08/04/04 23:11:06
wx-config --static=yes --libs
をオプションに入れるんじゃなくて、これを実行して出てくるオプションを入れてくれ
というか一体どうやってビルドできるところまで設定したのよ

811:デフォルトの名無しさん
08/04/04 23:20:44
エスパーって(w
794がかわいそうすぎる

812:794
08/04/04 23:26:42
>>808 さん
ありがとうございます。

神経細いわけではないと思うんですが笑、
状況を詳しく書こうと思っても、エラーが出るとかじゃないですしOSどうこうってわけでもなく、単純に使い方が分からないってだけなのでこれ以上説明できることが何もないのです・・。

wxFormbuilder使えば、wxFormbuilder上で既存のウィジェットを継承したクラスを作成できると思っているのですが、そもそもそれが間違っているのでしょうか??

ていうか809は俺のこと言ってるんですかね?汗


813:809
08/04/05 02:55:06
あぁ御免、誤爆だな
そういや開いてから3時間ぐらい放置してたわ

…それだけだと何なので、
URLリンク(wiki.wxformbuilder.org)
こういうことではないの?

814:デフォルトの名無しさん
08/04/05 09:25:00
>>794
wxFBではクラスを作ることはできないので、自分で作るしかない。
ただ、作ったクラスを使うことはできる。適当にコントロールを置いて、プロパティのところに、includeするヘッダとクラス名を書けば
そのクラスを使うようにはなるが、コンストラクタへの引数やスタイルなどのプロパティは置いたコントロールに依存するので、paneあたりを
継承すれば、wxWindowあたりを継承したコントロールなどにも対応できる。

MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
ウィンドウやダイアログごとに別ファイルにしたいなら、作者に要望を出すとか、ソース公開されてるから自分で変えるとか・・・

815:794
08/04/05 13:54:14
レスありがとうございます。

> 813 さん
そのページも見たのですが、どうもサブクラスに使う名前とヘッダーファイルを指定できるだけのような感じがして、求めているものじゃない感じでした。


> 814 さん
>>wxFBではクラスを作ることはできないので、自分で作るしかない。
>>MS VC++のMFCのようなものではなくて、リソースファイルを作るぐらいに考えるといいのかな。
やっぱりそういうものだったのですか。
情報ありがとうございました。

逆に、継承クラスを書いたり、クラス別にファイルを吐き出してくれたりするwx関連のRADツールみたいなものはないのでしょうか??


816:デフォルトの名無しさん
08/04/07 19:23:00
>>815
自分でコードを書いて作ったコントロールを
wxFormBuilder上でフォームに貼ることならできるみたい。
URLリンク(wiki.wxformbuilder.org)

これだけ調べて出てこないということは、
wxでは、コントロールはコードで書く必要があるのではないかと。

817:デフォルトの名無しさん
08/04/07 23:58:12
自分もRADツール使おうと思って色々探していて、
wxFormbuilder か wxDev C++ っていうのが一番よく見かけるような気がしたのでどちらかにしようかと思っているのですが、それぞれどういった特徴があるんでしょうか??
なんか上のやりとり見ているとの実際使ってみても何ができて何ができないのかすぐに分からなそうな気がしたので、詳しい方に教えてもらう方が早いかと思いました。
よろしかったらどなたかご教示ください。

818:デフォルトの名無しさん
08/04/08 19:05:35
wxFormBuilderはRADツールではない。

819:デフォルトの名無しさん
08/04/09 12:50:10
RAD なら wxForms がいいかも。
ただし Borland/CodeGear C++ Builder 用のアドインだけど。

820:デフォルトの名無しさん
08/04/09 13:11:03
>>819
それ使って上での話?
C++Builderなら使ってるんだけど、
wxWidgetsは心機一転、別のIDE(wx-dev)にしちゃったおorz

821:デフォルトの名無しさん
08/04/09 13:50:41
>>820
いや、使ってない。
Web 上の資料を見て「RAD じゃん!」と思ったので。

822:デフォルトの名無しさん
08/04/09 13:57:35
自分は Python な人なので、GUI 作成には XRCed を使ってます。

823:795
08/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
08/04/09 14:24:18
>>816さん
うーむないのしょうかね・・
レスありがとうございましたm(_ _)m

825:デフォルトの名無しさん
08/04/09 19:05:59
>>823
頼むから、内容を細切れにして、いろんなスレでマルチで聞くのはやめてくれ。
誘導元か、関連するレスのリンクを貼ってくれないと状況が理解できない。
そんなんだと、根本的な問題の原因を見抜けなくてドツボにはまるかもよ。

826:デフォルトの名無しさん
08/04/09 20:14:28
原因を解決する気があればこうも糞みたいな書き込みを続けないって。


827:デフォルトの名無しさん
08/04/09 21:35:35
>>822
俺はRubyな人だけどXRCedが一番使いやすいと思ったわ

828:デフォルトの名無しさん
08/04/10 07:55:35
いいよね

829:デフォルトの名無しさん
08/04/10 21:00:42
>>822 wxGlade はだめなの?

830:デフォルトの名無しさん
08/04/10 21:18:14
Gladeは安定性が低い

831:デフォルトの名無しさん
08/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)'
などのエラーが出るソースがあります。(コンパイルには成功しているみたいです。)

ググってみたのですが、情報が少なく解決できていません。(英語苦手というのもあります汗)
URLリンク(www.google.co.jp)

解決方法分かる方いらっしゃいましたら、教えていただけると幸いです。


832:デフォルトの名無しさん
08/04/11 17:37:29
すいません追記です。
上記のソースは1つのLinux環境と2つのWindows home 環境で試したのですが、Linux環境ではリンクにも成功してビルドできるのですが、Windows Home 環境では両方ともリンクに失敗します。
なので、WindowsにインストールされているwxMSWで設定がおかしいところがあるのかなと思うのですが・・


833:831
08/04/11 18:54:27
すいません自己解決しました。

wx-config --libs で使うライブラリがmsys の /usr/lib
になければいけなかったのですが、なぜだか/local/lib にインストールされていたせいでした。
/usr/lib にコピーするだけで解決しました。
wxWidgetsインストール時のバグだったんでしょうか。。


834:デフォルトの名無しさん
08/04/11 20:31:28
>>829
wxGlade は、次の2点が理由で好きではないのです。

1. 自分の書いたコードと自動生成されたコードがまざるのが不安
2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。

特に2番は、複数マシンで開発をしているときに困ります。

835:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/12 00:57:03
>>834
>1. 自分の書いたコードと自動生成されたコードがまざるのが不安
C++で使ってるけど,wxGladeの吐く.cpp, .hとは別のファイルにそれから
派生したクラスを定義して,実装は派生クラスに書いて,wxGladeの吐く
コードとはほぼ完全に分離できている。

>2. Output Path に指定したパスが保存したファイル(*.wxg)に入ってしまう。
.wxgからの相対パスで指定すればOKかと。

837:デフォルトの名無しさん
08/04/12 05:51:46
>>835
wx-config って、その -L とかを自動で指定してくれるスクリプトのはずなんだよ。
それが必要なパスを吐かないなら、設定に問題がある。
インストールがうまくいかなかったんじゃないかな。

838:デフォルトの名無しさん
08/04/12 10:58:54
>>834
自分は Python 形式で書き出しているので、
書き出されたファイルの一部に手を加える必要があります。
(最低でも ID 宣言とか)

相対パスで指定できるのは知らなかったです。
試してみます。

839:デフォルトの名無しさん
08/04/12 21:18:32
>>837
ど素人なのすが、Windowsではwx-config は msys上でしか使えませんか?
eclipse上で指定したいのですが無理ですか?

840:デフォルトの名無しさん
08/04/13 11:54:53
バッチファイル作ってラップするとか
@c:\msys\1.0\bin\sh.exe --login -c "wx-config %*"
こんな感じでwx-config.batとか作るといいかもしれない
eclipseでバッチファイルをそのままオプションに指定できるのかどうかはわからないが

841:デフォルトの名無しさん
08/04/13 18:02:18
wxPythonで画像変形の高速化を行ないたい
のですがwxImageの画像データを直接取得する
方法はありませんか。GetData,SetDataでは
コピーしか渡らないようでうまく行きません。
PIL,Pygameによる画像変形は転送がネックに
なり高速になりませんでした。
PyOpenGLでは画像を直接取得できそうなのですが
画像が大きくなる(2048*2048)とリソースで
問題が出るようで試していません。
御教示お願いします

842:デフォルトの名無しさん
08/04/13 18:43:25
>>841
wxImageのGetDataならピクセルデータを直接得られるはずだよ。
少なくとも、自分のところではそうなってる

843:841
08/04/14 01:39:36
>>842
Python上で出来ました?
言葉が足りなかったので補足しますと、
wxImageの画像アドレスを知りたいのです。
ctypesでGetDataから渡された文字列を
強制的に書き換えても画像に反映されないので
コピーが渡されているようです。

高速化するにはDLLから直接書き換えるしか手が
なさそうなのですが、やっぱり無理
かなぁ。メニューのフォントサイズ変えるため
MenuItem.SetFontしたら落ちるし、前途多難…

844:デフォルトの名無しさん
08/04/14 03:11:03
>>843
wx.ImageのGetDataBufferはダメだった?

845:843
08/04/14 17:22:28
>>844
御回答有難うございます。
GetDataBufferってあったんですね。_core.py見なおしたら
見つかりました。返却値はbufferオブジェクトですね。
str()はありますがアドレスは隠蔽されてるみたいです。
Pythonからのアクセスはかなり快適で面白いオブジェクト
でしたが…残念。

答えていただけそうなのでもう1件お尋ねします。
wxBitmapを大量に格納しようとするとすぐ落ちて
しまいます。wxImageでは問題無いのでシステムリソースに
格納してるのかとも思っているのですが、その
限界を知る方法がよく分りません。御存知の方が
いましたら御教示お願いします。

846:デフォルトの名無しさん
08/04/14 19:52:08
Python から wxDC を渡してやって、
DLL 側で画像描画をできないだろうか…と
ちょっと思ったり。

ファイルからの Bitmap の読み込みも DLL 側でやる感じで。

847:843
08/04/14 22:50:17
GetDataBufferの件でやっと気付いた。
bufferオブジェクトってインタラクティブな状態で
見ると実体アドレスが出てる。bufferオブジェク構造体から
アドレスを拾えるみたいです。ctypesで直接書き込んで
確認できました。pyrex使えばなんとかなる…かも
教えていただき有難うございました。

>>846
ちょっと似たことをPILのImageWin.Dibでやってみました。
描画はPILからwxでwxのDCにPILからpasteする方法です。
結果はクリッピングがとても面倒で実用になりません
でした。pythonオブジェクトはpyrexで簡単に
拾えるかもしれませんが私の能力では実現は厳しそうです。


848:デフォルトの名無しさん
08/04/15 19:07:29
ちょっとお尋ねしたいのですが、ubuntuでwxWidgetsを使って開発していたソースをWindowsの方に移してコンパイルしようとすると、文字化けしました。
ソースの文字コードがUTF-8だったので、UbuntuではwxWidgetsの文字コードがデフォルトでUTF-8になっていて、WindowsではUTF-8ではない(多分S-JIS?)ということだと思うのですが、結局Windowsでは文字コードは何で開発するのがいいんでしょうか?
どういう観点から考えて決めればいいのか分からないので、ご助言頂けると幸いです。


849:デフォルトの名無しさん
08/04/15 22:09:40
>>848
wxWidgets をインスコする際に UTF-8 モードか ANSI モード(すなわち日本語だと shift jis モード)か選択出来るので、
クロスプラットホームのために wxWidgets をつかってるなら使うプラットホームでそれを同じにしておいたほうがいいです。

どっちにするかですが、これからの時代は何も考えず UTF-8 にしておくのがよいと思います。単に業界の趨勢なので。


850:848
08/04/16 00:01:26
>>849さん
やはりUTF-8ですか。
,/configure のときに --enable-unicode でいいのですよね。

レスありがとうございましたm(_ _)m

851:850
08/04/18 12:54:56
すいません
./configure --enable-unicode
でmake し直したのですが、
やはりUTF-8のソースをビルドするとインターフェース部分のマルチバイト文字が化けてしまいます。
どうすればUTF-8のソースを文字化けせずにビルドできるようになるでしょうか?

Windows Home
wxWidgets 2.8.7 です。

どなたか教えていただけると幸いです。


852:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/18 23:37:55
というかポータビリティーのために wx を使っているのなら、
そもそもマルチバイト文字列をソースコードに書き込むのは
ポータビリティー上良くないということを認識しましょう。
コンパイラによって扱いが変わってくるので。

将来誰かが非日本語版のを作る場合とかも考えて、
(オープンソースなら誰か勝手にやるだろうし、会社でやってても
中韓国語版をつくることになるかもしれない)
ソースは ascii にして、wx の国際化機能をつかってやるのが吉。

ちょっと手間でも、いま払っておいた手間が後で
格段に仕事を節約することになります

854:843
08/04/19 01:58:58
>>864
言われた意味がよくわかりました。ConvertToBitmapが
滅茶苦茶遅い!本気でImageからDCに直接描き込もうか
とも考えましたが、別の解決策があったので止めました。
でもScaleやRotateの出力先くらい指定できた方が
扱い良さそう。

実験としてwxPython用のコンボリュ-ション行列と
YUV操作関数作ったけど…誰も要りませんよね

855:デフォルトの名無しさん
08/04/19 03:49:33
車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

856:854
08/04/19 05:03:13
>>855
直接wxImageをPythonからいじるノウハウについて
言ってるだけですよ。swig通してオブジェクトを
いじれれば質問もせずに済んだんですけど

857:デフォルトの名無しさん
08/04/19 14:34:24
>>864のすばらしいアドアイスにwktk

858:854
08/04/19 23:09:46
>>3のコピペは個々の解決法は不要という事ですね。
wxImageからDCに直接描画するwxPythonライブラリも
作ったけど御忠告に従います。有難うございました。

859:デフォルトの名無しさん
08/04/20 12:27:47
>>858

いや、>>3 のコピペは「作ったのに公開しない人」を皮肉ったもので
悩まずどんどん公開すべきという意味だと思います。

860:デフォルトの名無しさん
08/04/20 12:32:53
口だけで実は何も作ってない奴が成果物提示を要求された時の逃げ口上だろ。

861:デフォルトの名無しさん
08/04/20 21:21:39
スレリンク(tech板:664番)
664 名前:デフォルトの名無しさん [sage]: 2006/01/09(月) 04:46:55
wxWidgetsのwxScintilla(wxStyledTextCtrl)に手を加えているのですが
意見をもらえないのでしょうか?
URLリンク(www.geocities.jp)

開発途中のWindows版バイナリです。

車輪の再発明をしても仕方がありませんし、公開に値するしろものでもありませんので
将来的にもソースは出せないと思います。
ゆくゆくは自作のプログラムに組み込めればそれでいいかな、と。

862:デフォルトの名無しさん
08/04/21 12:25:27
>>839
遅いけどこんなんあった
URLリンク(miteidesu.seesaa.net)


863:デフォルトの名無しさん
08/04/22 00:21:52
>>862
おぉぉぉ。すばらしい。明日試してみます!

864:デフォルトの名無しさん
08/04/24 17:03:40
Eclipse CDT と MinGW でwxWidgets使ったプロジェクトの開発しているのですが、gdbでデバッグしようとすると、頻繁にエラーが出て落ちます。

同じ症状のかたいらっしゃるでしょうか?
wxWidgets と gdbは相性が悪いのだろうか・・


865:デフォルトの名無しさん
08/04/24 18:08:21
Linux上では全然問題ないよー
MinGW固有の問題かな?

866:864
08/04/25 00:34:38
むーそうですか。。ありがとうございます。


867:デフォルトの名無しさん
08/04/25 14:41:33
URLリンク(docs.wxwidgets.org)
ここを見るとwxFileConfigクラスのインスタンスを宣言する時は、引数にwxInputStreamクラスのオブジェクトが必要なようなのですが、
wxInputStreamクラスのインスタンスはどのように宣言すればいいのでしょうか??
URLリンク(docs.wxwidgets.org)
ここを見ると creates dummy input sream となっていてよく分かりません。
設定ファイルに使うファイルのパスを何かしらの方法で引数のwxImputStreamクラスのオブジェクトの中に入れておかなければいけないと思うのですが・・
URLリンク(wxwindowsjp.sourceforge.jp)
ここも見てみましたが、探している情報は載っていないように感じました。
どなたか教えて頂けると幸いです。


868:845
08/04/25 23:36:24
大量のwxBitmap格納で落ちる事への自己レスです。
私の環境はWin98だったのですが、この場合内部で
DIBもしくはDDBを作成する為システムリソースを
食い潰す事が原因のようです。Win9xはリソース上限が
2M程度と聞きますが実際はよく分りません。
Win上でスクリプトからなら大量の画像はwxImageで
管理した方がよさそうです。

wxのソースをみてたらwxImageの処理があんなに
遅い訳がわかります。せめてAlphaの有無で
ループを別けてくれれば拡縮とかは少しは速く
なりそうなんですが…。

869:デフォルトの名無しさん
08/04/25 23:58:00
まだ Win 98 なのなら、XP 売っているうちに買っておいたほうが良いよ >>868

870:845
08/04/26 00:51:40
>>869
そう出来ればいいですねぇ…
リソース浪費するのは同じなのでWin2000以後も
この件に付いては気をつけたほうが良いとも
思います。ソースを追っていませんし管理方法に
詳しくありませんが、wxはDIBとDDBを使い分けてる
ようでDDBならVRAMの容量が処理能力に直結する
気がします。

871:デフォルトの名無しさん
08/04/26 05:17:33
>>867
wxFileInputStreamで開けばいい。

872:デフォルトの名無しさん
08/04/26 09:32:15
>>870
Vista WDDM以降、DDBはDIBみたいに振る舞うので注意。

873:845
08/04/26 18:13:24
>>872
勉強になりました。
M$の言い分としてはVistaが動かせるようなPCなら
気にする事ではないんでしょうねぇ。

874:867
08/04/26 19:59:52
>>871 さん
ありがとうございます。wxFileInputStreamなんてクラスがあるんですね。

ただ、また疑問点が出てきてしまいました。
URLリンク(www.h3.dion.ne.jp)
ここを見て設定ファイル周りのコードを書いていたのですが、
そもそもwxFileConfigのコンストラクタの引数型が
URLリンク(docs.wxwidgets.org)
ここに書いてあるものと全然違うことに気付きました。
そもそもアプリケーションの設定ファイル周りの機能を作るにはwxFileConfigクラスを使うので正しいのでしょうか?
URLリンク(www.h3.dion.ne.jp)
この資料は大分古いようなので・・(自分はwxwidgets2.8.7を使ってます)

ちなみにこの資料に書いてある通りに書くと、
wxFileConfigクラスのインスタンスのRead関数は正常に動くのですが、Write関数が正常に動きません・・
コンパイルは成功しているのですが、Write関数で設定ファイルを更新しようとしても何も更新されません。。

どなたかアドバイス頂けると幸いです。


875:デフォルトの名無しさん
08/04/27 08:11:31
MacのwxPythonでwx.MessageDialogのアイコンがどれ選んでも蛇が入ったロケットみたいなアイコンなんですがバグでしょうか?

876:デフォルトの名無しさん
08/04/27 10:02:27
仕様です

877:874
08/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:デフォルトの名無しさん
08/04/28 13:15:54
ポインタだけで実体作ってなかったとかいうオチは許さんぞ。

879:デフォルトの名無しさん
08/04/28 13:16:20
>>877
そんなバグは聞いたことがない。
m_pConfigの実体を確保し忘れてるとか、多分そんなのが原因だと思う。

880:874
08/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:デフォルトの名無しさん
08/04/28 15:57:16
ちゃんとdeleteしないと書き込まれないんじゃないか?

882:デフォルトの名無しさん
08/04/28 16:20:22
Flush()しない場合はデストラクタで書き込まれる、とあるな。
両方やってないから書き込まれない。

883:874
08/04/28 16:39:36
>>881さん
>>882さん

レスありがとうございます。

Write(); のあと Flush(); でいけました!まじありがとうございます!

Flushが必要、という情報が見つけられないのですが、よろしかったらソースを教えて頂けないでしょうか??
あと、「両方やってないから書き込まれない」の「両方」とは、Flush(); と、あともう1つは何でしょうか??


884:デフォルトの名無しさん
08/04/28 16:45:51
>>883
>>882 を読んでそれが何かわからないようならC++を勉強しなおした方がいい

885:デフォルトの名無しさん
08/04/28 16:48:43
>>883
「両方」じゃなくて「どちらも」の間違いだった。どちらかでも行えば書き込まれる。
あと、人に聞くまえにリファレンスを読め。


886:874
08/04/28 17:18:22
URLリンク(docs.wxwidgets.org)

permanently writes all changes (otherwise, they're only written from object's destructor)
部分だったんですね。。

URLリンク(docs.wxwidgets.org)
こっちのWrite();のリファレンスの方には
write the specified value to the config file
ってあるので、Write();だけでファイルに書き込めるのだと思っていました。全く分かりませんでした。。

ありがとうございましたm(_ _)m


887:851
08/05/02 23:40:36
>>852 さん
>>853 さん
めちゃくちゃ遅くなってすいません・・
レスありがとうございましたm(_ _)m
なんか書き込んだと思ったら書き込んでなかった?ようです><
すいませんm(_ _)m

888:デフォルトの名無しさん
08/05/06 01:24:28
wxPythonの質問なんだけど、ここで大丈夫?
勉強し始めたばかりなんですが、トップフレームにボタンを作って、
このボタンを押すと、別スレッドで重い処理を実行させて、終わったら
「終わりました。」てメッセージボックスを表示させるプログラムを書いてます。

別スレッドのなかでwx.MessageBox("終わりました。","")を実行すると、
Windowsでは普通に表示されてOKボタンでメッセージボックスが閉じますが、
Linux(GTK)だとメッセージボックスが表示されますが、固まってしまいます。

WindowsとLinuxどちらの動作が正常なんでしょうか?
(wx.Frameなどを継承していない)別スレッドのクラスからwxを使っていいのでしょうか?

889:デフォルトの名無しさん
08/05/06 19:56:05
どっちが正常ってか、Windowsで固まらないのはまぐれ
URLリンク(docs.wxwidgets.org)

890:デフォルトの名無しさん
08/05/09 20:18:36
>>889
ありがとうございます。
やっぱり何も対策を取らないと固まるんですね^^;
wx.MessageBox("終わりました。","")の手前にwxMutexGuiEnter()を書いて、
直後にwxMutexGuiLeave()を書いて試しましたが、wxMutexGuiEnter()で
固まってしまいました。たぶんMutexの初期化?が足りないのかもしれません。

URLリンク(wiki.wxpython.org)
ここを参考にwx.PostEventを使って、Windows&Linuxで思い通りの動作になりました。

891:デフォルトの名無しさん
08/05/11 07:22:33
windows xp MinGW環境ですが、openGLを使いたいと思い、
config.gccのopenglのオプションを有効にしてgccでコンパイルしました。
openGL用のライブラリがリリース版とデバッグ版の2つできたのですが、
2つともファイルサイズが40kb程度しかありません。
これで正しくライブラリができているのでしょうか?

892:デフォルトの名無しさん
08/05/26 12:11:45
wxStringオブジェクトを走査して特定の文字列が何回出てくるか調べたいんですが、それ用の関数ってないですよね??


893:デフォルトの名無しさん
08/05/26 12:24:10
>>891
GLCanvasってレンダリングコンテキストのハンドリングぐらいしかやってないんじゃないかな。それだけならそんなもんじゃないかなぁ。


894:デフォルトの名無しさん
08/05/26 23:56:39
>>892
>それ用の関数ってないですよね??
質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
自分が既に調べてみつからなかったんだけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
API レファレンスを読めばみつかる API もみつからない。

というのは別にして、wxString::find(const wxString&,size_t) ではだめなの?

895:デフォルトの名無しさん
08/05/26 23:59:56
なんという紳士

896:デフォルトの名無しさん
08/05/27 00:04:29
>>894の優しさに泣いた!

897:デフォルトの名無しさん
08/05/27 00:28:37
>>894にならほ(ry

898:892
08/05/27 02:09:22
レスありがとうございます。

>>質問の仕方、心構えが間違ってる。ありませんか?と自然に聞けば良い。
>>自分が既に調べてみつからなかったんだけど ... ということをアピールして、

う、こういう聞き方、あまりよろしくないのですかね??
単純に「ありませんか??」だとググれと言われてしまうし、かと言って毎回なんか質問書き込む度に既に調べて分からなかったので質問しましたってのは正直億劫だったのでこんな感じの聞き方になっていましたが・・

wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
でもwxString::Cmpとforとif使ってなんとかなったので、質問したこと自体は解決しました。

>API レファレンスを読めばみつかる API もみつからない。
これはなんでですか??
この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。

899:デフォルトの名無しさん
08/05/27 02:25:57
>>898
>毎回なんか質問書き込む度に既に調べて分からなかったので質問しました

答える側になった事を考えれば分かると思うが、これが正解
事前に何を調べて自分としてはどう思っていて何が疑問なのかを丁寧に書く
これしか無いよ

900:デフォルトの名無しさん
08/05/27 02:32:59
>>898
解決したならいいけどCmp()でどんなコードを書いたの?

901:デフォルトの名無しさん
08/05/27 03:13:25
>>898
>wxString::Findだと、最初にマッチした部分のインデックスが返ってくるだけですよね??
この「ですよね??」という聞きかたが良くないです。
自分はこの API は既に知っているけど ... ということをアピールして、
しかも、自分って正しいですよね、という雰囲気である。
これでは自分で心を閉ざしているようなものであって、
この API が使える API であるということを認識出来ない。

自分はこれまで最初にマッチした部分のインデックスが返ってくるだけだと思っていたんだけれど、
相手が wxString::find を言ったということは、実は二つ目以降も返ってくるんではないか?
と謙虚に考えられなくなるわけです。相手に言われたら、
自分を疑って、もういちど自分で API レファレンスを読んでみればわかるはずで、
こうやって小言を言われる必要もなくなるわけです。というのが、
> この質問の仕方だとなんでAPIリファレンスに書いてあるAPIも見つからなくなる、のでしょう?
>突っ込まれて反論してるのではなく、どういう意味か分からなかったので単純に教えて頂きたいな、ということです。
への返答です。
僕は自分自身が、「ですよね?」「じゃないんですか?」と言いたくなったら、
まず自分を疑うことにしています。
その言葉を発した時点で、考えるのを放棄しているからです。

というのはいいとして、wxString::find(const wxString&,size_t) とわざわざ
オーバーロードしてある引数までかいてあるのは何故だとおもいますか?
それはそのバージョンをつかうと、第二変数でどこから調べるかが指定出来るからです。
そうするとそれを繰り返し呼べばいいわけです。
ちなみに find が大文字か小文字かも違います。
URLリンク(docs.wxwidgets.org)
をみてください。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch