【GUI】wxWidgets(旧wxWindows) その3【サイザー】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/09/09(土) 00:06:30本家
http://www.wxwidgets.org/
wxWindows日本語プロジェクト
http://wxwindowsjp.sourceforge.jp/
Let's wxWidgets
http://dot-gray.s33.xrea.com/
(*)準備中(*)
http://www.geocities.co.jp/SiliconValley-Cupertino/8526/
wxWindowsで始めるC++ GUIプログラミング
http://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
http://namazu.org/~satoru/pub/uu-2004-08/
dW : Linux : wxWindowsの概要
http://www-6.ibm.com/jp/developerworks/linux/010413/j_l-wxwin.html
SunWorld Online:wxWindows――無名だが成熟したGUIツールキット
http://www.idg.co.jp/sw/back/200102/20010219_01_report.html
0438435
2007/09/12(水) 02:54:10ご指摘のとおり、wxの基本的な部分で勘違いをしていました。親ウィンドウを作って
そのなかにpanelのようにwxHTMLwindowを設定してはりこむのですね。
エラーですがuseの使い方が悪かったようで
ttp://www.opensubscriber.com/message/pdk@listserv.ActiveState.com/2520427.html
とwxPerlのチュートリアルのスクリプトを組み合わせて色々いじってみたら簡単なhtml表示
ウィンドウが出せるようになりました。
wxどころかperlの使い方の基本すらなっていなかったようで、もっと勉強してから書き込むべきでした。
0439デフォルトの名無しさん
2007/09/12(水) 13:31:590440デフォルトの名無しさん
2007/09/12(水) 18:02:430441デフォルトの名無しさん
2007/09/14(金) 21:48:42http://opentechpress.jp/developer/07/09/14/015234.shtml
0442デフォルトの名無しさん
2007/09/15(土) 00:30:180443デフォルトの名無しさん
2007/09/16(日) 13:54:10と聞いて飛んできますた
が見間違えだった
0444デフォルトの名無しさん
2007/09/20(木) 23:58:51ttp://www.wxwidgets.org/wiki/index.php/ODBC
によるとMySQLのODBCドライバにバグがあるらしいんだけど
ここに書いてあるとおりにしてもサンプルがちゃんと動かないし
直接API使うしかないのかな
0445デフォルトの名無しさん
2007/09/30(日) 13:44:51wxWidges と OpenGL を組み合わせた無償または有償アプリ
(少なくとも自作部分に関してはソース非公開が前提)
を作るとして、本当だったら、エンドユーザーには
wxWidgets と OpenGL を事前にインストールしてもらわないといけない。
それは面倒なので、インストールしていない環境でもそのまま実行でいるように wxWidgets と OpenGL を組み込んだ状態で
アプリケーションを作成・配布したい(つまり、wxWidgets と OpenGL のDLLを EXEと一緒に配布または販売)んだけど、これってライセンス的に問題ある?
0446デフォルトの名無しさん
2007/09/30(日) 14:05:590447デフォルトの名無しさん
2007/09/30(日) 15:44:40Can I use wxWidgets for both proprietary (commercial) projects, and GPL'ed projects?
Yes. Please see the licence for details, but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.
The conditions for using wxWidgets are the same whether you are a personal, academic or commercial developer.
0448デフォルトの名無しさん
2007/10/01(月) 00:26:110449デフォルトの名無しさん
2007/10/01(月) 01:34:390450デフォルトの名無しさん
2007/10/01(月) 05:14:100451デフォルトの名無しさん
2007/10/02(火) 02:06:20昨日半徹だたのでちょとフイタw
……いい加減寝よorz
0452デフォルトの名無しさん
2007/10/05(金) 04:59:01wxWidgetsは商用プロジェクトとGPLプロジェクトの両方で使う事ができますか?
Yes. Please see the licence for details, but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.
はい。詳しくはライセンスを読んでください。
ただ、原則としてあなたの配布物がバイナリ形式(いかなるソースコードも含まない)であり、
なおかつGPLコードが含まれない場合に限ります。
The conditions for using wxWidgets are the same whether you are a personal, academic or commercial developer.
この条件は wxWidget の個人利用、教育利用、商用利用にかかわらず適用されます
。。。みたいなことが書いてあるってことであってる?
0453デフォルトの名無しさん
2007/10/05(金) 08:27:22>but basically you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets conflict with GPL code you may be using or developing with it.
基本的にあなたはいかなるソースコードも配布せずにプロプライエタリなバイナリを配布する事が出来ますし、
wxWidgets はあなたがプログラムの実行や開発に利用するGPL のコードとライセンスの矛盾を起こす事はありません。
0454デフォルトの名無しさん
2007/10/05(金) 08:36:04neither will wxWidgets conflict with ~ は
wxWidgets will not conflict with ~ と読み替えると宜し。
0455デフォルトの名無しさん
2007/10/05(金) 10:25:13つくづく、学校でちゃんと英語をやっておけば良かったと思うよ。
0456デフォルトの名無しさん
2007/10/13(土) 08:26:26これって、一つの frame には GLCanvas しか
配置できないのかな?
frame -> panel -> glcanvas とか、
frame -> gridsizer -> glcanvas + textctrl とか
やろうとすると、フレーム全体が全く描画されなくなってしまう
OpenGLって、コントロール単位ではなく
ウィンドウ単位でしか描画してるのかな?
0457デフォルトの名無しさん
2007/10/13(土) 11:05:250458デフォルトの名無しさん
2007/10/16(火) 03:27:37普通にOpenGLで多画面出来るかどうかの問題だ
出来るのならプログラムか環境に問題がある
0459デフォルトの名無しさん
2007/10/16(火) 15:06:43wxForms - wxWidgets Form Designer for C++ Builder
これってどうよ?
0460デフォルトの名無しさん
2007/10/16(火) 15:54:23・1つのプロジェクト(というかmakefile?)ではどちらにするか決定するものでしょうか?
・どう違うのでしょうか?(どちらが良いのでしょうか?)
解説サイトでも何でも良いので教えて下さいorz
0461デフォルトの名無しさん
2007/10/16(火) 18:29:280462460
2007/10/16(火) 18:33:54メイン以外もどうすべきか教えて下さい。
0463デフォルトの名無しさん
2007/10/17(水) 01:33:37どちらがいいとか悪いとかいう問題じゃない。好きなほうにしたらいい。決められないなら鉛筆ころがせ。
0464デフォルトの名無しさん
2007/10/17(水) 01:59:55http://python.matrix.jp/projects/wxPython/bad-know-how.html
0465460
2007/10/17(水) 08:39:03>>464
そういう内容を知りたかったんです。
この問題は解決しましたが、
1つ1つ問題を解決するの大変orz
Delphiなんかだと、
TFormがウィンドウで、その中に貼り付けるのがTFrameだったりするので、
危うく間違えるところですた。
0466デフォルトの名無しさん
2007/10/17(水) 09:11:38知らないものを触る時はまず付属のサンプルを見た方が良いのでは?
余計なお世話かも知れませんが。
0467デフォルトの名無しさん
2007/10/17(水) 10:47:19コンパイラはgccですか?Xcodeですか?
0468デフォルトの名無しさん
2007/10/17(水) 12:22:55Xcodeでgccですよ
0469467
2007/10/17(水) 18:25:11Eclipseみたいなもんかぁ。
サンクス
0470デフォルトの名無しさん
2007/10/18(木) 01:29:590471デフォルトの名無しさん
2007/10/18(木) 07:15:420472デフォルトの名無しさん
2007/10/18(木) 10:10:480473デフォルトの名無しさん
2007/10/18(木) 10:11:31>「wxFormsで始めるwxWidgetsプログラミング」
こういう答えを希望してるわけ?
0474デフォルトの名無しさん
2007/10/18(木) 21:07:420475デフォルトの名無しさん
2007/10/19(金) 09:08:22”クラスライブラリ+IDE”だお。
これだと差分コードしか表れない。
但し、VC++/MFCは除く。
0476デフォルトの名無しさん
2007/10/20(土) 00:09:580477デフォルトの名無しさん
2007/10/22(月) 08:52:03それって何て手書き?
0478デフォルトの名無しさん
2007/10/22(月) 18:37:55いや、MFCは手書き不可みたいに書いてたから。
手書きMFCなんてやる理由はないとは思うけど。
0479デフォルトの名無しさん
2007/10/27(土) 22:42:12ちょうどrich textのサンプルあったので動かしてみましたが、これって日本語入力できないですね。
どうやらeditor boxみたいなおネイティブのコントロール使ってる場合はOKなんですが
自力で作るコントロールの場合はそのままでは無理っぽいです。
そのあたりハンドルできる方法ってないですか?
今はWinowsでVC使って動かしています。
このあたりクロスプラットフォームで日本語入力も完璧なのって結局Javaなんですかね・・・
なるべくならC/C++でやりたいと思ってます。
wxWidgets以外にもいい候補あったら教えてください。
0480デフォルトの名無しさん
2007/10/28(日) 00:27:43自分で実装するか、IIIMF とか Anthy とか使ってみるかじゃないかな。
0481デフォルトの名無しさん
2007/10/28(日) 01:29:400482デフォルトの名無しさん
2007/10/28(日) 01:35:220483479
2007/10/29(月) 00:04:53wxWidgetsだけではやっぱり無理っぽいですね。
インライン入力の制御は面倒なのでできればありもので済ましたいです。
で思いあたったことにマルチプラットフォームといえばOpenOfficeがありました。
あれのtoolkitってどうなってるんですかね。
SDKあるみたいなのでちょっと調べてみます。
0484デフォルトの名無しさん
2007/10/29(月) 00:10:510485デフォルトの名無しさん
2007/10/29(月) 01:27:04Kirix StrataがMozillaベースに変わってるっぽい。
ttp://www.kirix.com/index.html
wxAUIは今後も開発とあるけど。
0486デフォルトの名無しさん
2007/10/30(火) 23:46:59が遅すぎて使えないんだけど・・・。
なんかないですか?
0487デフォルトの名無しさん
2007/11/01(木) 00:29:32思いつきだがそこはImageMagickに任せてしまうとか。
wxImage <-> ImageMagickのイメージ形式
の変換コストが問題になるほどだとあかんけど。
0488デフォルトの名無しさん
2007/11/01(木) 00:51:48パッと見ただけの実に適当な印象だが。
wxImageはRGB24bitのピクセルデータと、8bitのαチャンネルのデータを
別々に持ってるようだねえ。で、イメージの配列には当然のように
バイト単位でアクセスしている。
ネイティブな形式が例えばAGBRなら、さらにそれをいちいち変換して描画
するんだろうね。
いかにも遅そうだねえ。
0489486
2007/11/01(木) 01:21:15>488
レスありがとうございます。
>486
別プロセスで ImageMagick 起動ってことですよね。
たぶんそっちの方がコスト的には高いかと。
うーん。せめて StretchBlt でリサイズしつつメモリに転送とか
できたらいいのに・・・。
0490デフォルトの名無しさん
2007/11/01(木) 01:29:20ん? ライブラリリンクしちゃえば、という積もりだったんだけど。
っても今確認したらGPLかぁ > ImageMagick
0491デフォルトの名無しさん
2007/11/01(木) 08:04:20ポインタで直接処理した後wxBitmapに変換して使用するしかないかと。
画面がリサイズされたときなど必要に応じて最低限の変換で対応するか、
OpenGLあたりを使うほうがよさそう。
0492デフォルトの名無しさん
2007/11/01(木) 15:56:10>LGPLでは動的な(実行時)リンクに限り、GPL/LGPLに従わないソフトウェアでの利用も許容している。
あれ?
wxWigetsってLGPLだから、静的リンクした場合、ソースを公開しなきゃならないの?
0493デフォルトの名無しさん
2007/11/01(木) 16:49:000494デフォルトの名無しさん
2007/11/01(木) 22:11:221. LGPL にソース公開の義務は無い
2. wxWidget は LGPL の制限を緩める為の追加条項を加えたライセンスを採用している
3. 何か契約をする際は必ず原文に目を通した方が良い
0495486
2007/11/02(金) 01:02:56大変失礼しました。
ImageMagickのライブラリってあるんですね。勉強不足でしたorz
wxIMAGE_QUALITY_NORMALで写真の画像をリスケール
したところ、思ったよりも画像が崩れなかったので、
しばらくはコレを使おうと思います。
32x32とかのアイコンとかを拡大するとダメダメだけど・・・
0496デフォルトの名無しさん
2007/11/04(日) 14:03:59ボタンの配置について質問です。
ダイアログで「OK」ボタンと、「キャンセル」ボタンを横並びで表示したいのですが、
縦に並んでしまいます。
どうしたらよいのでしょうか?
0497デフォルトの名無しさん
2007/11/04(日) 15:11:340498デフォルトの名無しさん
2007/11/04(日) 22:22:30エスパー初心者がいってみよう
wxHORIZONTAL
0499デフォルトの名無しさん
2007/11/04(日) 22:50:39・・・ ・・ ・・ ・ ・・・
ディスプレイを縦にするといいと思うよ。
0500デフォルトの名無しさん
2007/11/05(月) 01:10:470501デフォルトの名無しさん
2007/11/06(火) 01:08:10サンプルを見てもよくわかりません。
ほかにわかりやすいサンプルはありませんか?
サンプル:console.cpp 3238行目
0502デフォルトの名無しさん
2007/11/06(火) 04:34:480503デフォルトの名無しさん
2007/11/09(金) 00:20:09GtkmmとwxWidgetsのどちらを使うか迷っています
既に両方使ったことのあるかたにアドバイスを
頂きたいのですが
0504デフォルトの名無しさん
2007/11/09(金) 00:54:22wxWidgets の方がアプリを使ってて気持ちいい
0505デフォルトの名無しさん
2007/11/09(金) 02:01:39これまで打ち込んだやつがヒストリーとして表示するように
したいんだけどこういうのはなんか用意されているでしょうか?
0506デフォルトの名無しさん
2007/11/09(金) 04:37:15すごく分かりやすい説明です
本当にありがとうございました
とりあえず両方やってみます
wxWidgetsで分からないときは
ここを頼りにしていますので
よろしくお願いします
0507デフォルトの名無しさん
2007/11/09(金) 05:54:31> wxWidgetsで分からないときは
なんたらoverview
リファレンス
本体ソースコード
サンプル
の順かなあ、俺が頼りにしたのは。
0508デフォルトの名無しさん
2007/11/14(水) 03:42:08wxBlog見たらver3.0でつきそうな感じだね。
0509デフォルトの名無しさん
2007/11/14(水) 12:03:091,ゴッドサイザー
2,アステサイザー
3,三ツ矢サイザー
4,グレンサイザー
0510デフォルトの名無しさん
2007/11/14(水) 13:59:57Unicodeがどうのこうのとあるんですが、Unicodeビルドしなくても
デフォルトでUnicodeビルド扱いになるということなんでしょうか?
0511デフォルトの名無しさん
2007/11/14(水) 23:46:59このページ見て設定してみたけどコンパイルできません。
wx/wx.h がNo such file or directoryとなりインクルードできないです。
どうしたらよいのでしょうか?
0512デフォルトの名無しさん
2007/11/14(水) 23:58:010513デフォルトの名無しさん
2007/11/15(木) 00:00:090514デフォルトの名無しさん
2007/11/15(木) 00:25:150515デフォルトの名無しさん
2007/11/15(木) 00:36:15C:\MinGW\includeにはなくて、
C:\msys\1.0\home\Owner\wxMSW-2.8.6\include
にあります。
C:\msys\1.0\home\Owner
にファイルを作りコンパイルしたところできませんでした。
0516デフォルトの名無しさん
2007/11/15(木) 00:48:08`wx-config --cxx` -o hoge.exe hoge.cpp `wx-config --cflags --libs`
みたいにしてコンパイルしれ
0517デフォルトの名無しさん
2007/11/15(木) 01:01:32今までやってた
$g++ -c hello.cpp 'wx-config --cppflags'
ではできないみたいですね。
0518デフォルトの名無しさん
2007/11/15(木) 01:52:510519デフォルトの名無しさん
2007/11/15(木) 03:49:16・今までANSIとUnicodeの二つのビルドがあったのが、一つになる。
・wx内部では全部Unicodeで処理するが、APIはANSIとUnicode両方が用意される。
・ANSIのAPIは逐一Unicodeにエンコードして処理する。
ってところだと思う。
0520デフォルトの名無しさん
2007/11/15(木) 05:35:38それのプログラム見たらわかるけど効率悪い
自分で組んだ方がいいよ
0521デフォルトの名無しさん
2007/11/15(木) 05:37:35wxImageにラップするようだけど
それを待ってもいいかも
0522デフォルトの名無しさん
2007/11/23(金) 00:52:43**********************
* *
* A *
* *
* *
**********************
* B * C *
**********************
以上のようなレイアウトで、
・縦幅が変化した場合はAのみ
・横幅が変化した場合はAとC
それぞれ動かしたいのですが、
いったいどうやってサイザーを設定すればいいのでしょうか?
よろしくお願いします。
0523デフォルトの名無しさん
2007/11/23(金) 01:32:23試してないけどこんなんでどう?
wxSizer *root = new wxBoxSizer(wxVERTICAL);
root->Add(A, 1, wxEXPAND);
wxSizer *sub = new wxBoxSizer(wxHORIZONTAL);
sub->Add(B, 0, 0);
sub->Add(C, 1, 0);
root->Add(sub, 0, wxEXPAND);
SetSizerAndFit(root);
BoxSizerの指定方向に対しては、Add()のproportionを1以上にするとサイズ変更される。
もう一つの方向に対しては、wxEXPAND指定すれば、領域を埋めるようにサイズ変更される。
0524デフォルトの名無しさん
2007/11/23(金) 02:02:10それでできました!
CにEXPANDを指定したら、縦に広がったりしてかなり困っていました。
サイザーってそういうふうになっているんですね。
どうもありがとうございます。
0525デフォルトの名無しさん
2007/12/01(土) 22:18:22> font.GetPointSize();
だと値が表示されている高さよりも明らかに小さくなります。
正確な値を得るにはどうすればいいのでしょうか?
よろしくお願いします。
0526デフォルトの名無しさん
2007/12/01(土) 23:15:350527デフォルトの名無しさん
2007/12/02(日) 00:51:21それなら、ポイントをピクセルに直すにはいったいどうすればいいのでしょうか?
解像度とか関係ありそうなのですが、よく分からないのです。
0528デフォルトの名無しさん
2007/12/02(日) 01:38:57wxDC::GetCharHeight()
がそれっぽいですがベースラインより下の部分も含んでるのかどうかはわかりません
0529デフォルトの名無しさん
2007/12/02(日) 20:09:11それを参考にして書いていたら、wxWindowにも
同じ名前のドンピシャなメソッドがあることが分かりました。
ありがとうございました。
0530デフォルトの名無しさん
2007/12/05(水) 20:34:52切り替えは出来ないものなのでしょうか。サンプルのsplitterに、statbarからの表示/非表示
切り替えコードを追加してみたのですが、初回の非表示(失敗)後に、分割ウィンドウの
サイズが変更不能となってしまいます。
0531530
2007/12/05(水) 21:18:50wxStatusBar* statbar = GetStatusBar();
:
statbar->Hide();
//SetStatusBar(NULL); // <- 親フレームと分割ウィンドウの連動が解除されてしまうのでコメントアウト
SendSizeEvent(); // 非表示部が即時更新されないので追加
:
0532デフォルトの名無しさん
2007/12/13(木) 16:52:55変数ウォッチとは、プログラムのデバッグ時にint型やクラス型で定義された変数の
名前や中身や型を表示するものです。
変数の名前や型だけを表示するならばwxListCtrlでもwxDataViewCtrlでも何を使ってもいいのですが、
メンバをもつ変数を表示させることを考えると、
どうしてもオブジェクトをツリー形式で表示させたくなります。
また、デバッグ中にウォッチする変数を新たに追加したくなった場合にも
簡単に追加できるものがいいのです。
つまるところ、
・できれば名前や型などの欄が作れる
・ツリー形式で表示できる
・新規のアイテムが簡単に追加できる
これらのことができるコントロールを探しています。
個別の条件を満たすものは見つかるのですが、そのすべてを満たすものが見つからず苦心しています。
(ちなみに、VS2005ではwxDataViewCtrl(wxGrid)のアイテム中にwxTreeCtrlのようなものを表示しています)
条件に合うコントロールがあれば教えていただきたいのです。
よろしくお願いします。
0533デフォルトの名無しさん
2007/12/14(金) 18:55:29http://homepage2.nifty.com/bkclass/doc_wxcode.html
0534デフォルトの名無しさん
2007/12/15(土) 01:40:55wxCoreというのは初めて知りました。
サンプルも動かしてみたのですが、これは素晴らしいですね。
どうもありがとうございました。
0535デフォルトの名無しさん
2007/12/16(日) 20:16:12ウィンドウのクライアント領域のサイズを得ることはできますか?
0536デフォルトの名無しさん
2007/12/16(日) 20:20:35ウィンドウのクライアント領域のサイズ
0537デフォルトの名無しさん
2007/12/16(日) 21:21:45すいません。説明が足りませんでした。
クライアント領域からスクロールバーの領域を除くためには
1,スクロールバーが表示されているかを検出する
2,表示されていたら、そのスクロールバーのサイズ分だけクライアント領域から除く
という主順を踏む必要があります。ところが自分にはこの二つともやり方が分かりません。
例えば、スクロールーバーはコントロールの内容によって表示されたり消えたりしますよね。
HasScrollbarメソッドはどうもスクロールバーの非表示を検出してくれないようで、
ウィンドウスタイルによって値が決まってしまいます。
つまり、スクロールバーが表示されているかを正しく知る方法が自分には分かりません。
また、普通のウィンドウクラスにはスクロールバーのサイズを得るメソッドが無い
(多分どこかにはあると思うのですが自分は知らない)
のでスクロールバーのサイズを得ることもできません。
■ このスレッドは過去ログ倉庫に格納されています