【GUI】wxWidgets(旧w ..
[2ch|▼Menu]
528:デフォルトの名無しさん
07/12/02 01:38:57
>>527
wxDC::GetCharHeight()
がそれっぽいですがベースラインより下の部分も含んでるのかどうかはわかりません

529:デフォルトの名無しさん
07/12/02 20:09:11
>>528
それを参考にして書いていたら、wxWindowにも
同じ名前のドンピシャなメソッドがあることが分かりました。
ありがとうございました。

530:デフォルトの名無しさん
07/12/05 20:34:52
分割ウィンドウ(wxSplitterWindow)を使用した場合、ステータスバーの表示/非表示
切り替えは出来ないものなのでしょうか。サンプルのsplitterに、statbarからの表示/非表示
切り替えコードを追加してみたのですが、初回の非表示(失敗)後に、分割ウィンドウの
サイズが変更不能となってしまいます。

531:530
07/12/05 21:18:50
すみません、自己解決しました。
wxStatusBar* statbar = GetStatusBar();

statbar->Hide();
//SetStatusBar(NULL); // <- 親フレームと分割ウィンドウの連動が解除されてしまうのでコメントアウト
SendSizeEvent(); // 非表示部が即時更新されないので追加


532:デフォルトの名無しさん
07/12/13 16:52:55
VS2005の変数ウォッチのようなことがしたいのですが、そのためのコントロールを探しています。
変数ウォッチとは、プログラムのデバッグ時にint型やクラス型で定義された変数の
名前や中身や型を表示するものです。

変数の名前や型だけを表示するならばwxListCtrlでもwxDataViewCtrlでも何を使ってもいいのですが、
メンバをもつ変数を表示させることを考えると、
どうしてもオブジェクトをツリー形式で表示させたくなります。
また、デバッグ中にウォッチする変数を新たに追加したくなった場合にも
簡単に追加できるものがいいのです。

つまるところ、
 ・できれば名前や型などの欄が作れる
 ・ツリー形式で表示できる
 ・新規のアイテムが簡単に追加できる
これらのことができるコントロールを探しています。
個別の条件を満たすものは見つかるのですが、そのすべてを満たすものが見つからず苦心しています。
(ちなみに、VS2005ではwxDataViewCtrl(wxGrid)のアイテム中にwxTreeCtrlのようなものを表示しています)

条件に合うコントロールがあれば教えていただきたいのです。
よろしくお願いします。

533:デフォルトの名無しさん
07/12/14 18:55:29
使ったことないですが、下記サイトのwxTreeListCtrlがそれっぽいような…。
URLリンク(homepage2.nifty.com)

534:デフォルトの名無しさん
07/12/15 01:40:55
>>533
wxCoreというのは初めて知りました。
サンプルも動かしてみたのですが、これは素晴らしいですね。
どうもありがとうございました。

535:デフォルトの名無しさん
07/12/16 20:16:12
スクロールバー領域を除いた
ウィンドウのクライアント領域のサイズを得ることはできますか?

536:デフォルトの名無しさん
07/12/16 20:20:35
ウィンドウのクライアント領域−スクロールバー領域=スクロールバー領域を除いた
ウィンドウのクライアント領域のサイズ

537:デフォルトの名無しさん
07/12/16 21:21:45
>>536
すいません。説明が足りませんでした。

クライアント領域からスクロールバーの領域を除くためには
1,スクロールバーが表示されているかを検出する
2,表示されていたら、そのスクロールバーのサイズ分だけクライアント領域から除く
という主順を踏む必要があります。ところが自分にはこの二つともやり方が分かりません。

例えば、スクロールーバーはコントロールの内容によって表示されたり消えたりしますよね。
HasScrollbarメソッドはどうもスクロールバーの非表示を検出してくれないようで、
ウィンドウスタイルによって値が決まってしまいます。
つまり、スクロールバーが表示されているかを正しく知る方法が自分には分かりません。

また、普通のウィンドウクラスにはスクロールバーのサイズを得るメソッドが無い
(多分どこかにはあると思うのですが自分は知らない)
のでスクロールバーのサイズを得ることもできません。

538:デフォルトの名無しさん
07/12/16 22:22:35
wxScrolledWindow::GetViewStart

void GetViewStart(int* x, int* y) const
Get the position at which the visible portion of the window starts.

Parameters
x Receives the first visible x position in scroll units.
y Receives the first visible y position in scroll units.

Remarks
If either of the scrollbars is not at the home position,
x and/or y will be greater than zero.
Combined with wxWindow::GetClientSize,
the application can use this function to efficiently redraw only the visible portion of the window.
The positions are in logical scroll units,
not pixels, so to convert to pixels you will have to multiply by the number of pixels per scroll increment.

539:デフォルトの名無しさん
07/12/16 22:57:22
>>538
またまたすいません。

対象としているコントロールにはwxTextCtrlやwxTreeCtrlなどの
wxScrolledWindowを継承しないものも含まれています。

540:デフォルトの名無しさん
07/12/16 23:22:23
おいおいいいかげんにしろよ
さすがにエスパーはいないぜ
自分で英語のリファレンス読めよ糞

541:デフォルトの名無しさん
07/12/17 17:40:00
例えば、ボタンをディセイブルにする、とかを調べたくて、
コントロールのリファレンスを読みたいのですが、教えて頂けないでしょうか?



542:541
07/12/17 17:57:54
ヘルプにAlphabetical class referenceってのがありますた。
これがコントロールリファレンスですか。

>Members
ってのがメソッドで、

>Derived from
というのが派生元クラスでしょうか?


イベントも理解できれば完璧ですが、wx-Devがイベントハンドラ作ってくれるから、理解しなくても良いかなぁ?

543:541
07/12/17 18:33:28
wxDevってコード補間ありますたorz

でも、WxButton::Enable(bool)が候補に出ないなぁ。コンパイルはトオタケド

544:デフォルトの名無しさん
07/12/17 18:42:19
wxWindow::Enable
virtual bool Enable(bool enable = true)

545:デフォルトの名無しさん
07/12/28 10:15:54
wxFrameって、OnCreateみたいなイベントハンドラはありませんか?



546:545
07/12/28 10:18:15
あ、OnInitDialogは、Frameオブジェクトの生成された後、1回コールされると考えてあってますか?

547:545
07/12/28 11:18:39
wxFrame::OnInitDialogがコールされないんですが、、、
仕様ですか?

548:デフォルトの名無しさん
07/12/28 12:34:30
>>545
EVT_WINDOW_CREATE

549:デフォルトの名無しさん
08/01/05 18:48:32
Linuxでwxのアプリ閉じる時必ずsegfaultするのは俺だけでしょうか。
wxのサンプルについてくるのでも必ず
(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x908820' has no handler with id `673'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8b4d30' has no handler with id `531'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8cfa90' has no handler with id `604'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x8b4850' has no handler with id `465'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x5f4df0' has no handler with id `326'

(a.out:32364): GLib-GObject-WARNING **: gsignal.c:1741: instance `0x5f4840' has no handler with id `48'
zsh: segmentation fault ./a.out
みたいな感じで落ちます。
Glib-GObject-WARNINGの部分はInput Methodがuimだかららしいのですが。

550:デフォルトの名無しさん
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
ユニコードを使ってるかどうかかな?


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

5187日前に更新/262 KB
担当:undef