1 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:49:20 ] クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)についてのスレ。 本家 www.wxwidgets.org/ wxWindows日本語プロジェクト wxwindowsjp.sourceforge.jp/ Let's wxWidgets dot-gray.s33.xrea.com/ wxWindowsで始めるC++ GUIプログラミング www.h3.dion.ne.jp/~k5_n/wxwin/ wxWidgets でクロスプラットフォーム GUIアプリを作ろう 0xcc.net/pub/uu-2004-08/
321 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 23:46:48 ] >>320 俺の環境ではデバッグ無しでビルドしたwxをスタティックリンクしてもgdbは問題なく機能したよ もちろん自分で書いたソースの範囲内でね gcc3.4.5 gdb6.8と、あとは大体新しいやつ
322 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:16:34 ] >>321 gdbを6.8に変えたらちゃんとエラーメッセージが出るようになった! んで、開発にEclipse使ってるんだが、「共用ライブラリーシンボルを自動的にロード」 のオプションを外したら何もエラーが出ずにデバッグできるようになった gdbのバージョンが古いと勝手に落ちる、「共有〜」にチェックつけてるとgdbが落ちる、 っていう前例も見つかったわ。 両方とも結構問題になってるみたいだ。 結果的にwxWidgetsは関係なかったな…でも解決したからいいや、ありがとう。
323 名前:220 mailto:sage [2009/01/17(土) 00:26:59 ] すいませんお礼忘れてました汗 レスくださった方々ありがとうございましたm(_ _)m 結局ディスクがおかしかったみたいでchdiskで直りました。 ところで・・QTがLGPLで使えるようになるようですね。。 正直乗り換えるかもしれない(爆
324 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:55:18 ] >>323 いますぐ全部ファイルをバックアップして HDD とりかえたほうがいいと思う ハードディスクは消耗品だからいちど壊れはじめるとはやいよ。
325 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:58:04 ] 不治痛のHDDは壊れやすい 凍死場に九州されるみたいで不安
326 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 15:13:35 ] 挙動が怪しいHDDはマジやばい ファイルシステムが壊れてるだけならいいけど 物理的にエラーがでてて代替セクタとか使い出すと 見た目普通のままコロっと逝く時があるよ 初心者でも使いやすくてHDDの状態が大体わかる CrystalDiskInfoを勧めちゃう
327 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 21:07:43 ] >>326 なんで急にオカマ口調なの?
328 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 22:29:44 ] CrystalDiskInfoって確かMFCで作られてるから wxWidgetsでクロスプラットフォーム化するのってそんな手間じゃないのかな。
329 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 01:27:50 ] ここのところ wxpython-usersに Subject: will Qt mean the end of wxPython ? っていうメールがめちゃめちゃ流れててワロタ
330 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 05:56:41 ] APIはQTのほうがすっきりしているからな。 モッサリだけど。
331 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:12:19 ] 少くともQtでOS毎に自然な外観提供できて 複雑なライセンス体系が無くならない限り移行はできないなあ。。
332 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:17:28 ] LGPLになったんだから、ライセンス簡単だろ?
333 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:36:23 ] >>332 結局商用アプリ作るとかになったら、どうせ金クレクレモードに突入するじゃん。
334 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:45:40 ] LGPLだと無問題だお?
335 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:53:39 ] >>334 すまん、よく調べたらそうだった。 商用版も継続するってことは結局商用には使用料とるのかと思ってたよ。 こりゃやばいなwx。。 C++でクロスプラットフォームGUIライブラリが充実する って流れは大歓迎だけどね。
336 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:56:53 ] wx使う前はイメージヨカタんだが、IDEが悪いせいかMFCっぽくコントロールに連番ふってて、ダメだこりゃとオモタ。 この辺、Qtで解消すんのかなぁ?
337 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:11:28 ] 統合開発環境が簡単にインストールできれば、wxも生き残れるだろうが、 今のところ、qt 優勢。
338 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:38:40 ] 俺はEmacs使うからIDEはいらんから、軽いRADツールがあるのが一番かな。
339 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:24:28 ] 良RADさえあれば一気に巻き返せそうな気はするんだが
340 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:31:41 ] wxのRADって有力なのはDialogBlocksとwxFormBuilderぐらい? 俺はここ来るまでwxGladeとXRCedしか知らなかった。 ウェブ検索してもこれ以外あんまり引っかからなかったし。
341 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:39:01 ] あー,そういえば最新のDialogBlocks(4.29)で プロジェクト開ける人いる? linuxで引数としてプロジェクトを指定すると can't open /hoge/moge/"hage.pjd" 的な事を言われる. ダブルクォーテーションのせいかしら.
342 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 07:37:07 ] IDEとしての方が意味が大きいけどCode::Blocksも入るんじゃない? ただし作業自体はRAD的でもXRCじゃなくコードが挿入される形だけどね あのコード見るとJavaでGUI作るときの苦々しさを思い出す・・・
343 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 03:00:39 ] code::blocksはQtのプロジェクトも組める。あれでRADに dialogblocks程度の操作性があれば良かったんだけど。 吐くソースはcode::blocks(wxSmith?)の方が親切な気がするし。
344 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:45:41 ] >code::blocks 操作感が気に入らない゚听 wx-devcppの操作感が好き。 吐き出すコードは?だけど。
345 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 03:48:17 ] >>344 wxSmithが我慢出来ない人はwxFormBuilder使うといいよ。 イベントもconnectとEVENT_TABLE選べるみたいだし、 とりあえずSizerの領域を均等に割り振る様な事もない。 wxGlade、DialogBlocks、wxSmith、wxFormBuilderと触ってみたけど、 操作性はDialogBlocks、ソースはwxSmithがいいと思った。 ソースはユーザーの弄り易さだけで、質はまだよく判らないんだけど。 それよりcode::blocksはnightyなんて出してないで、判りやすいバグを 放置したリリース版をリプレースするべきだ。 30分も触ると落ちるのは、どうかしてる@win32
346 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 08:35:21 ] 30分さわって強制終了なんて一回も経験したことないな 特定の使い方をして落ちてるか、環境が悪いかのどちらかじゃないか?
347 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 10:44:42 ] DialogBlocks人気っぽいから入れてみたけど 軽快だし操作感がやたらいいな。
348 名前:344 mailto:sage [2009/01/22(木) 11:37:56 ] そんなに沢山の選択肢示されても、無理。
349 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 15:51:12 ] >>346 環境バカはかえれ
350 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 17:09:59 ] >>346 Thread searchタブを右クリックしてThread searchのチェックを外すと マウスオーバーでThread searchの部品が浮かび上がる。 あるいはScript consoleタブにThread searchのレイアウト(のみ)が表示される。 その後view menuからThread searchのonoffを行えば1分も経たずに落ちる。 他にも2byte圏のlocaleを使用するとhelp pluginが動かなかったり。 30分はwxSmithとbuildのみを使用して落ちる時間。 日本語化すると少し挙動が変わるから、その辺も不完全みたいだ。 以上は自宅のwindows xp sp3及び2000sp4での話。 落ちた事が無い=ほとんどまともに使ってない、と理解する。 >>347 動作自体はかっちりしてる。editorはscintilla使ったcode::blocksの方が高機能だけど。
351 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:59:10 ] >>350 日本語化して動作が不安定になるなら、英語版を使ったほうがいい 日本語版と英語版で使い勝手に差が有るなら、日本語化を行なっている作者に文句をつけるべきだ どうやら話し口調からして、いくつか特定の「落とし方」を知っているようだから、 それらをまとめて公式のフォーラムで報告することをおすすめする オープンソース系のソフトを「まともに使っている」と自負できる人間なら、自分で修正してビルドするのもいい 一ついえることは、ここで文句を言っても、お前を含めて誰も得をしないということだ
352 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 20:29:17 ] >>351 トラブルは全て英語の話で、日本語化もgettextを使った物だからbuildは一緒だ。 そもそも初めて使って5分で出る症状を、1年近く経ってから一々報告してどうする。 30分じゃ落ちた事がないと、使ったこともない奴が宣ってるから、実例を上げただけで、 ある情報に対しての損得は、その人次第だろう。
353 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 22:15:44 ] ひさしぶりにwx-Devcppのサイト覗いたらバージョン上がってるんだけど、 使っってる人いたら教えてください。正常にデバッグができますか?
354 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 23:59:37 ] >>352 何か勝手に「使用経験なし」だと思っているようだが、 俺はCodeBlocksを使って何本かソフト作ったことがあるぞ? それこそ強制終了など一度も経験せずに。(むしろgdbがよく落ちた記憶がある) 報告してどうするって、バグフィクスを期待するに決まっているだろう ユーザーがバグ報告するというのはソフト制作の大事な一環じゃないか。 修正とまでは行かなくとも、バグ回避の方法が製作者から聞けることだってある。 「文句を言うという行動は生産的ではないから、自分で何かしら行動したほうがいい」 ということがいいたいのだ。 とはいっても、こんなことは2chで言うべき言葉ではなかったかもしれないな
355 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 02:38:38 ] 俺もcode::blocksが落ちたことはないな 特定のペインが表示されなくなって困ったことはあるが
356 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:14:55 ] WindowsのMinGW-5.1.4とMSYS-1.0.10を入れた環境で、wxWidgets-2.8.9をconfigureした後makeしたんですが、下記のようなエラーが出て先に進まなくて困っています。 0 [main] sh 2996 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump ご助言を頂けないでしょうか。
357 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 12:10:51 ] WindowsだったらVisual Studioでやったらいいと思うんだけど
358 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:05:13 ] せっかくフリーで可搬的なライブラリ使ってるのに Windows上でだけ特別にVSなんか使いたくないわな。
359 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:14:06 ] とりあえず>>356 のエラーメッセージは糞の役にも立たないわな。 役に立たないレベルでは50歩100歩だが、同様の環境でwxWidgets-2.8.7はビルド成功してるんで参考までに。
360 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:15:08 ] configureやdumpの内容も書いてない状況でした。 失礼しました。 同様の環境で出来たとのお話もあったので、 ライブラリ周りを見直してみたら上手くいきました。 助かりました。ありがとうございます。
361 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 19:14:42 ] マウスイベントでWindowsAPIのSetCaptureに相当するものってあったっけ?
362 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 19:18:07 ] 自己解決 CaptureMouse(); ReleaseMouse();
363 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:32:00 ] マウスの動きに連動して描画させると 非同期に描画命令が発行されるんだけど つまりマウスの動きに合わせてPaintイベントが何度も呼ばれる 全部処理してから最後の描画が終わるまで画面が更新されない そのせいでマウス移動中に画面がぐちゃぐちゃになるんだが 完全に表示が終わるまでマウスを動かなくするとか 他の描画が来たらそれ以前のはすべてキャンセルさせるとか出来ないの?
364 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 18:17:32 ] >>363 他からPaintイベントが出るなら マウス操作中は自分だけが処理するように OnPaintを自前で用意すればいい。 マウスの移動だけではPaintイベント出ないとは 思うんだけど…
365 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:45:18 ] マウスの動きに連動して描画させると
366 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:14:50 ] 描画(が何してるかわからんけど)でOnPaint出たっけ?
367 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:23:21 ] >>363 マウスイベントハンドラで Refresh() を呼んでPaintイベント出してるとかいった状況? もしそうなら、Refresh() 呼んだ直後に Update() 呼べば、同期的に画面更新できるよ。 (つまり、Update() から戻ってきたときにはPaintイベントが処理されて、画面更新が終わってる)
368 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:39:52 ] >>367 マニュアル見る限りではUpdate()呼ぶならRefresh()要らんと思う
369 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:49:37 ] >>368 マニュアルのUpdate()のとこに、 Use Refresh first if you want to immediately redraw the window unconditionally. ってあるから、Refresh()いると思うよ。 無効領域がない状態でUpdate()しても何も起こらないと書いとる。
370 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:54:52 ] ごめんRefresh()のinsteadだけ見てた
371 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 09:11:40 ] 質問があります。 ボタンの上での右クリックイベントを捕捉したいのですが、 button->Connect(ID_RIGHT_CLICK, wxEVT_COMMAND_RIGHT_CLICK, wxCommandEventHandler(MyFrame::OnRightClick), NULL, button); としてもうまくいきません。 どうすればよいでしょうか。
372 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 12:28:29 ] >>371 OSは何? wxEVT_COMMAND_RIGHT_CLICKは Windows 95 and NT のみサポートらしいよ。 wxEVT_RIGHT_UPあたりで妥協しとくのが無難かもしれん。
373 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 12:36:07 ] >>371 あ、Connect() の最後の引数はbuttonじゃなくて、thisとかじゃない? eventSink引数には、イベント発生元オブジェクトじゃなくて、イベントハンドリングするオブジェクトを渡す。 だから、この場合はMyFrameオブジェクトを渡さないといかんです。
374 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:19:10 ] >>372 OSはWinXP Home Editonです。wxEVT_RIGHT_UPにするとイベントを捕捉できました。 ありがとうございました。 >>373 eventSinkにはMyFrameオブジェクトをわたせばいいのですね。 ありがとうございました。
375 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:50:14 ] タイマーイベントを使っていて反復実行している時 処理が混みだすとイベントがキューに溜まったような 状態になり他のイベントをリアルタイムに実行できなく なります。 溜まったイベントを削除する方法はあるんでしょか。
376 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 11:48:39 ] >>375 タイマー間隔を少し長くするか、wxIdleEventでRequestMore() しまくるなんてのはどうかな? たまったイベントの削除関数とかは見かけたことないなぁ(あるかもしれないけど)
377 名前:375 mailto:sage [2009/02/01(日) 17:54:01 ] 回答有難うございます。 Win32APIにはイベントを削除する方法があった気がしたので どうかなとおもったんですが。 時間管理を見直してみます。
378 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:12:47 ] 一番良いIDEは? ダイアログイパーイ作る場合ね。
379 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:34:46 ] Sizerの使い方を覚えたら、もうバカらしくてGUIで ダイアログ作ろうだなんて思わないけどね
380 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:40:26 ] コードでGUIを設定するのがバカらしいというのが一般的だが。
381 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:11:56 ] RADどれ?って質問だったら万人に薦められるのはwxFormBuilderくらいなんだがな RAD単体でPythonいらずってとこから IDEとなると自分で全部試せとしか言えない
382 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:15:11 ] >wxFormBuilder ラジャ 使ってみるお。
383 名前:323 [2009/02/10(火) 14:06:40 ] >>324 >>325 >>326 ありがとうございます!
384 名前:デフォルトの名無しさん [2009/02/11(水) 15:15:05 ] wxFormBuilderって、コンストラクタでnewしたインスタンスを デストラクタでdeleteしてくれないんだけど、これは自分で書くの?
385 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:37:33 ] 自動でdeleteしてくれるライブラリ(スマートポインタとか)使わないなら newした分だけdeleteするように書くしかないよ
386 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:58:47 ] 公式つながんない。
387 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:24:55 ] wxDevC++! ごめん嘘
388 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:42:37 ] ↑ 何がウソで何がホントかハッキリしる!
389 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:35:51 ] >>384 SizeにAddしたオブジェクトは勝手に削除される。 自分でdeleteしちゃだめ。 sizer.cpp の551行目
390 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:54:15 ] ひょっとして>>384 はGenerate Codeで吐き出されたコードに追記しようとしてるのか? Generate Inherited Classで継承したクラスに自分のコードを書くのが正しい使い方だぜ? そうじゃないと細かい修正でGenerate Codeしたらまた書き直さなきゃならないだろ
391 名前:384 mailto:sage [2009/02/12(木) 23:12:05 ] >>390 いや、継承して書くのはわかってたけど、吐き出されるコードも 読んでおこうと見てみたらdeleteしてなかったので、 どうすんだろうなぁと。 で、>>389 で納得しました。 ありがとうございました。
392 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:16:13 ] wxWidgetsはフレームワーク側で色々ゴニョゴニョしているから 正直、自分で組んでて不安になって来るんだよな。細かい挙動とか、特に。
393 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:44:18 ] Mac OS X 10.5にデフォルトで入ってるものを利用し、簡単なプログラムを組んだんだけど、 実行すると固まって操作できないのはそういうものでしょうか。 最新2.8.9のものをmakeして利用すれば問題ないのでしょうか。 っていうか、wxOSXっていつ頃になるの? それからWindows上でwxFormBuilderを使ってみたのですが、 イベント部のコードを吐いてくれるのはいいけど、 マージしてくれないので、使いにくい。 そうゆうもんですか。 DialogBlocksは有償だけあって使いやすかったけど、レジストしてないから制限に引っかかる。 金ないからorz なんかいいGUIのBuilderが欲しいと思った。
394 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:43:50 ] >>393 >Mac OS X 10.5にデフォルトで入ってるものを利用し、簡単なプログラムを組んだんだけど、 デフォルトでは wxPerl とか wxPython しか入ってないとおもったけど、どうやるの? OS X は実行ファイルは .app パッケージに入れないとイベント受け取れないから 固まったように見えますよ。 wiki.wxwidgets.org/WxMac_Issues#Building_a_MacOSX_application_bundle とか参照。
395 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 07:52:22 ] >>394 あ、そうなんですか。 Makefile書いてメイクしたのですが、minimalサンプルみたらxcodeのファイルがありますね。 MacはMacの作法にのっとってオブジェクトを配置しないといけないんですね。 ちょっとやってみようと思います。 因に私がやったメイクは、LinuxのwxGTKを使うように、 wx-config でインクルードとライブラリをあててmakeしました。 wxMacを特別に入れた記憶はありません。
396 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 09:11:03 ] >>395 なるほど、wxPerl とかだけでなくて wxWidgets そのものが デフォルトでインストールされてるんですね。そりゃそうか。
397 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:17:50 ] もうすぐ2月が終わる 2.9.0来るかなぁ
398 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 16:32:53 ] Eclipse CDTでwxしようとしてるんですが、ビルドとかは問題なくできるものの 補完のためのインデクサが Syntax error: DECLARE_EVENT_TABLE(); とかポップアップしてきて機能しません。 ビルド自体には影響してませんが、これだとエラーと非エラーが混ざって 使い勝手が悪いので、なんとか正常に処理させたいのですが、同じように 困ってる話は見つかっても解決方法が見当たりません。 どうすればいいでしょうか?
399 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:10:17 ] wxPython2.8のAnimationが返す値おかしくね? DisposalMethodがどうも-1ずれてるみたいし BackgroundColourもなんか変だ 俺のだけ?
400 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 13:38:10 ] ソースあるんだから自分で調べたらいいじゃんか
401 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 19:05:13 ] うんその言葉で読む気になったわ 、で-1ずれてんのはcoincideだってさ BackgroundColourは最初のフレームから 背景色に初期化しなかった俺のミス ここで聞くよりソース読んだほうが 確かに早いけど誰もその情報は共有できん のだ いい意見有難う
402 名前:デフォルトの名無しさん [2009/03/10(火) 10:16:05 ] 質問 レイアウト制御において Sizer > Panel > Sizer Sizer > Sizer ってやっぱり違うんですか?( > は入れ子の関係を表してます) コントロールをまとめる枠としての Panel の存在意義がイマイチわからないっす。
403 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:02:27 ] Panelは子コントロールの親になる Sizerはあくまで下層要素のサイズを制御するだけ
404 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 07:05:48 ] >>403 ありがとうございます。 単にレイアウトを制御したいだけなら Sizer を直に入れ子にして、 コントロールを論理的にグループ化したい場合は Panel でまとめる、という感じですね。
405 名前:デフォルトの名無しさん [2009/03/11(水) 08:02:25 ] いつも使ってて思うことなんだけど、Sizerというクラスをなくして レイアウトの機能もWindowに含めてほしい(統合してほしい) そうなっていないということは、そうすると何か問題があるのだろうか
406 名前:405 mailto:sage [2009/03/11(水) 08:03:13 ] ごめんageてしまった
407 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 08:19:10 ] >>405 コントロールのレイアウトのためだけにWindowを入れ子にするのは メモリ効率が悪いからじゃないでしょうか だからレイアウトアルゴリズムだけをクラスとして抜き出して Sizer なんてものを 作ったのでは
408 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:22:44 ] レイアウトアルゴリズム増やそうとする度に wxWindowクラス書き換えて肥大化していくのは困るでしょ
409 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 10:16:25 ] GoF でいうところの Strategy パターンというやつだな
410 名前:デフォルトの名無しさん [2009/03/13(金) 19:16:34 ] 質問させて下さい。 wxRuby でちょっとした GUI ツールを書いているのですが、 ウィンドウを close してアプリを終了してもプロンプトが返ってきません。 ウィンドウを XRC から作るように変更したところでこのような 現象が発生するようになりました。 具体的には Wx::XmlResource.get.load_frame_subclass(self, nil, "MyFrame") があると上記の問題が発生します。 on_exit も呼ばれず、どうも何かが解放されずに残っていてアプリの終了を 邪魔しているような印象です。 どのような原因が考えられますか?
411 名前:410 mailto:sage [2009/03/13(金) 19:18:34 ] 補足 ウィンドウはきちんと表示されており、イベントハンドラの設定もうまくいっています。
412 名前:410 mailto:sage [2009/03/13(金) 22:04:27 ] CloseEvent に対するデフォルトのハンドラが呼ばれなくなったと推測 XRC からリソースをロードした段階で CloseEvent をトラップする別のハンドラが 設定されたのか? よくわからん。調査続行 どなたかヒントでもあればお願いします m(__)m
413 名前:410 mailto:sage [2009/03/13(金) 23:24:53 ] evt_close {|event| exit } でとりあえずプロンプトは戻るようになった。
414 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 10:35:35 ] 俺もその現象あった XRCは使ってなかったけど、Frameのサブクラス作ったからそのせいかも
415 名前:410 mailto:sage [2009/03/14(土) 11:31:46 ] >>414 自分も Frame のサブクラス作ってますが、それだけでは上記の問題は 発生しませんでした。 GUI が複雑になってきたので XRC をロードするように変更したところ close でプログラムが終了しなくなりました。 閉じられるウィンドウが最後の一枚だったら exit というハンドラを自分で 設定すれば元の動作に戻るはずですので、そうしようと思ってます。
416 名前:デフォルトの名無しさん [2009/03/19(木) 19:09:19 ] なんで SetCellAttr はないんだ? セル単位で制御したいのに まあ、自分で書いたらいいだけだけど
417 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 11:26:29 ] 2.8.10安定版リリース
418 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:19:15 ] 保守総一郎
419 名前:デフォルトの名無しさん [2009/03/31(火) 21:23:43 ] Qtに流れ始めたかのぉ??
420 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 11:07:04 ] 最近 wxWidgets 使い込み出したのに廃れてもらっては困るぜ!
421 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 11:58:06 ] 廃れてるんじゃなくて、枯れてんだよ。 だから安心して使うがいい。