facebook twitter hatena line google mixi email
★お気に入り追加


  • 1
  •  
  • 2010/04/09(金) 15:12:36
クロスプラットフォーム GUI ライブラリの wxWidgets (旧 wxWindows)についてのスレ。

本家
ttp://www.wxwidgets.org/
wxWindows日本語プロジェクト
ttp://wxwindowsjp.sourceforge.jp/
Cross-Platform Programming with wxWidgets
ttp://wxwidgets.info/
Let's wxWidgets
ttp://dot-gray.s33.xrea.com/
wxWindowsで始めるC++ GUIプログラミング
ttp://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
ttp://0xcc.net/pub/uu-2004-08/

前スレ
【GUI】wxWidgets(旧wxWindows) その4【サイザー】
http://pc12.2ch.net/test/read.cgi/tech/1214657360/

ここまで見た
  • 13
  •  
  • 2010/04/10(土) 11:40:00
.Netスタイルのメニュー表示できないの?

http://www.dotup.org/uploda/www.dotup.org798064.gif
左:.Net 右:wx

ここまで見た
  • 14
  •  
  • 2010/04/10(土) 13:16:01
>>13
無理なような希ガス。自作するしかないような…(ツールバーならwxAuiでそれらしく見せれるけど)

ここまで見た
  • 15
  •  
  • 2010/04/14(水) 16:37:31
    ヘ⌒ヽフ
   ( ・ω・) ??
   / ~つと)

ここまで見た
  • 16
  •  
  • 2010/04/24(土) 09:25:04
wxPython で作った pnl (=wx.Panel) に書いた画像は取得&保存できた

from wx.lib.colourchooser.canvas import BitmapBuffer
import wx
bb = BitmapBuffer(width, height, wx.Colour(0, 0, 0))
bb.Blit(0, 0, width, height, wx.WindowDC(self.pnl), 0, 0)
bmp = bb.GetBitmap()
bmp.SaveFile(u'できたよ.png', wx.BITMAP_TYPE_PNG)

ちなみに Win32API を使うとこんな感じになるみたい
ttp://www.sm.rim.or.jp/~shishido/wincap.html

ここまで見た
  • 17
  •  
  • 2010/04/26(月) 14:59:40
    ヘ⌒ヽフ
   ( ・ω・) ??
   / ~つと)

ここまで見た
  • 18
  •  
  • 2010/05/02(日) 20:44:44
    ヘ⌒ヽフ
   ( ・ω・) ??
   / ~つと)

ここまで見た
  • 19
  •  
  • 2010/05/02(日) 21:09:14
クライアント領域だけ透過させることって出来ないか?

ここまで見た
  • 20
  •  
  • 2010/05/03(月) 11:45:01
出来る

ここまで見た
  • 21
  •  
  • 2010/05/09(日) 16:02:55
こういう画像表示をwxPythonでやりたいのですけど

Osiva transparent image viewer, Kent Stork
http://www.noping.net/kent/osiva/

画像を、ウインドウ枠無しで、デスクトップにずらずらと表示したいのですが、どこらへんをとっかかりにして始めたらいいのか分かりません。
「このサンプルが役に立つんじゃねえか?」みたいな意見を聞かせてもらえると嬉しいです。

はねまわるウインドウな例
http://python.matrix.jp/projects/wxPython/bounds.html

たぶんこのサンプルが役立ちそうな気はしてるんですが、このサンプルでは1つのframeしか表示してなくて…
複数のframeを表示することなんて、wxWidgetsで可能なんでしょうか?
もし、できないとしたら、frameの代わりに何が使えそうなのでしょうか…?
あるいは、1つの透明なframeの中に、個別にbitmapを表示する感じになるのでしょうか?

ここまで見た
  • 22
  •  
  • 2010/05/10(月) 00:17:11
可能

ここまで見た
  • 23
  •  
  • 2010/05/10(月) 01:27:50
>>21
サンプルの

  app = wx.App(False)
  frame = MainFrame()
  app.SetTopWindow(frame)
  frame.Show()

のところを

  app = wx.App(False)
  frame = MainFrame(None)
  frame1 = MainFrame(None)
  frame2 = MainFrame(None)
  app.SetTopWindow(frame)
  frame.Show()
  frame1.Show()
  frame2.Show()

と書き換えて実行してみ

ここまで見た
  • 24
  •  
  • 2010/05/10(月) 03:30:29
WinMainから始まる既存のC&Win32ソースに
wxを組み込むのはどうすればいいのでしょうか?
SDKメインフォーム+モードレスダイアログ
のダイアログ部分を差し替えるイメージです

以下のソースではOnRunを呼ぶと制御が戻ってきません。
それ用のthreadを作れば何とかなるのですが
もっとシンプルに出来た記憶があったのですが・・・
wxApp* app = new MyApp();
wxApp::SetInstance(app);
int argc=0; wxChar** argv=NULL;
wxEntryStart(argc,argv);
wxTheApp->CallOnInit();
wxTheApp->OnRun();
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
wxTheApp->OnExit();
wxEntryCleanup();


ここまで見た
  • 25
  •  
  • 2010/05/10(月) 06:23:29
答えは前スレにて

ここまで見た
  • 26
  •  
  • 2010/05/10(月) 16:42:05
>>25
前スレのどこ?アンカおねがい

とりあえずOnRunをコメントアウトしたら上手く動いているようではあるけど
もっときれいにやれてた気がするんだよなぁ

ここまで見た
  • 27
  •  
  • 2010/05/12(水) 00:56:04
>>23
ありがとうございます!
やってみたらframeが複数表示できました。
件のサンプルを参考にして勉強したいと思います。

ここまで見た
  • 28
  •  
  • 2010/05/17(月) 04:01:10
>>24
wx.netに入ってるwx-c.dllを使う

ここまで見た
  • 29
  •  
  • 2010/06/07(月) 13:24:17
wxWidetsをlinuxでコンパイルしてdemoやsamplesが正常に動くことを確認.

しかし
そのlinuxにOSXからssh-Xとかssh -Yとかで接続して,
sapmeles/openglのcubeとかisosurfとかpenguinを実行すると
ウインドウは出てくるけどopenglの描画がされないんだけど仕様なの?

ssh越しでもdemo(lifeとか)やopenglを使わないsamplesは普通に動くんだけど.

ここまで見た
  • 30
  •  
  • 2010/06/21(月) 12:42:42
WindowsのwxWidgetsってウィンドウの状態おかしくなってHideやShowが効かなくなったりIsShownOnScreenが変な値返してると思ってたら
他プロセスからのShowWindow、SendMessage、PostMessageとかメッセージ全部拾わずそのままDefWindowProcに渡してイベント上げてこない
そのくせ、自分自身でウィンドウの表示状態管理してるから不整合起きまくり

HWND取得してWin32APIで状態確認してWin32APIで処理しなきゃダメだ
自プロセスが出した命令のイベントしか上げてこないならEVT_SHOWなんていらないだろ

ここまで見た
  • 31
  •  
  • 2010/06/21(月) 13:01:24
>>29
オーバーレイをお古
かくかくのろのろだけど

ここまで見た
  • 32
  • 29
  • 2010/06/21(月) 16:22:58
>>31
駄目.なんにも変わらない.

ここまで見た
  • 33
  •  
  • 2010/06/21(月) 22:49:06
gtkより歴史が古いことに驚愕

ここまで見た
  • 34
  •  
  • 2010/06/22(火) 01:04:39
gtkは糞

ここまで見た
  • 35
  •  
  • 2010/06/22(火) 01:10:45
>>34
頑張って置き換えてくれ

ここまで見た
  • 36
  •  
  • 2010/06/24(木) 03:29:19
gtkしかよう知らん.あれは糞なのか?
qtとwxだとどっちが糞なんだ

ここまで見た
  • 37
  •  
  • 2010/06/24(木) 04:07:38
ライセンス的には一部デフォルト設定から機能オフしないといけないけどwxが自由度高い

ここまで見た
  • 38
  •  
  • 2010/07/10(土) 02:27:34
>>37
その辺の話ってどこかにまとまってたりしますか?

ここまで見た
  • 39
  •  
  • 2010/07/10(土) 02:56:56
http://bf109.seesaa.net/article/9267915.html

ここまで見た
スレ2にまとめがあったけど

GPL - コピペしてもリンクしても感染
LGPL - 動的リンクすれば影響しないが、静的リンクやコピペでは感染
wx - バイナリになっていれば煮ても焼いてもいい。コピペでは相変わらず感染

ということでいいのかな。
>>37は知らないがどういうこと?

ここまで見た
>>40
wxが余計に解らない

LGPLをゆるくしたものじゃね?

ここまで見た
567 デフォルトの名無しさん [sage] 2009/10/17(土) 02:23:53 ID: Be:
    http://www.wxwidgets.org/about/newlicen.htm
    The wxWindows Licence is essentially the L-GPL (Library General Public Licence)
    wxWindows ライセンスは 本質的にはLGPL

    QtがLGPLになって企業サポートがついたいま
    wxWindowsに利点があるのだろうか?

ここまで見た
wxそのものに手を加える場合はLGPL。
単に自分のアプリを作るためのライブラリとして考える場合はバイナリで
自由に使える。ソースコードつけなくてもリンクしようが配布しようが自由。

ここまで見た
  • 44
  • 名無しさん@そうだ選挙に行こう
  • 2010/07/11(日) 15:48:10
はじめまして。
wxWidgets(wxWindows)日本語ドキュメントプロジェクトの方々に連絡を取った所
既に更新停止しているとの事なので、プロジェクトを移管して頂きSourceForge.netで
新たにプロジェクトを作りました。これからv 2.8 の翻訳を完成に向けて開始したい
と思っています。

https://sourceforge.net/projects/wxwidgetsjpdoc/

翻訳作業の出来る方募集中です。どうぞご参加ください。


ここまで見た
  • 45
  •  
  • 2010/07/23(金) 01:13:45
そうなのかー、乙です。
wxはポータブルなんで、日本でももうすこし広がるといいですね。

ここまで見た
  • 46
  •  
  • 2010/07/24(土) 21:05:36
wxErlang って組み込みになったのか。
http://www.erlang.org/doc/apps/wx/

Erlang/OTP R13A (2009-04-03) から、公式配布物に含む。 (最新はR14A)

ここまで見た
  • 47
  •  
  • 2010/07/26(月) 04:18:08
Rubyスレで聞いたけど判る人がいないっぽいのでこちらに・・・
wxRuby 0.6.0betaを使ったアプリをwxruby.so同梱で配布する場合に適用されるライセンスは
どのようになりますか?

バイナリファイルでの配布なら?任意のライセンスを適用出来るみたいですが
インタプリタ系の言語でバイナリファイルでの配布とか言われても難しいですし・・・
(exerbで配布したとしてもexeファイルの実態はインタプリター+ソースコードだし)

よろしくお願いします

ここまで見た
  • 48
  •  
  • 2010/07/26(月) 05:47:16
orz = 3

ここまで見た
  • 49
  •  
  • 2010/07/26(月) 16:52:17
そういうのわ御社の法務部で聞いてください

ここまで見た
  • 50
  •  
  • 2010/07/27(火) 22:18:14
すみません、誰か教えてください。
wxFormBuilderで作成されたForm内のm_textCtrlXXへの参照・代入ってどうやればいいんですか?

環境はVC++です。

ここまで見た
  • 51
  •  
  • 2010/07/27(火) 22:40:10
内容を読み書きしたいってことかな
ttp://docs.wxwidgets.org/stable/wx_wxtextctrl.html
GetValue、GetLineText
SetValue、AppendText
この辺りだろう、ってか公式のリファレンスに網羅されてるからすぐ見たほうがいいよ

ここまで見た
  • 52
  • 50
  • 2010/07/27(火) 23:11:48
お返事ありがとうございます。

wxFormBuilderで作成されたクラスがMyFrame1として、
MyFrame1::m_textCtrl28->SetValue(s);
とかやってみたけど、ビルドが通ってくれないのです。
(申し訳ございません、C++よくわかってない人です)

wxFormBuilderの場合、ここみたいに
http://wiki.wxformbuilder.org/Tutorials/UsingSubclass
サブクラス化してアクセスするのが正解なのでしょうか。
試してみたけど、なんか上手くいかないんです。

ここまで見た
  • 53
  • 50
  • 2010/07/27(火) 23:19:29
いちおう追記しておきますが、wxFormBuilderベースでプログラム作って、ボタンを押して反応するところまでは成功しまています(一日かかりましたが)。
文字列操作しようとしたらまたハマってしまって困っているのです。

ここまで見た
  • 54
  •  
  • 2010/07/28(水) 08:55:09
インスタンス化されたMyFrame1からアクセスしないと駄目です
MyFrame1 frame;
frame->m_textCtrl28->SetValue(wxT("moji"));
この場合外側からのアクセスなのでm_textCtrl28のpermissionはpublicになってないといけない
クラスの扱いはC++の基本なのでまずそちらから勉強した方がライブラリの理解も早くなります

ここまで見た
  • 55
  •  
  • 2010/07/28(水) 08:57:31
ごめん3行目ミスw
frame.m_textCtrl28->SetValue(wxT("moji"));

ここまで見た
  • 56
  • 50
  • 2010/07/28(水) 19:27:53
おおお!
MyFrame1 frame;
としてみたところ、
frame.
の入力で
frame.m_textCtrl28->SetValue
までVCの補完が効くようになりました!

いけるかなと思ったのですが、ビルドしてみると
「'MyFrame1' : クラス、構造体、共用体に既定のコンストラクタがありません。」
のエラーになってしまいます。
なにはともあれ真理に近づきつつあるようです。ありがとうございます。
C++の勉強します。

ここまで見た
  • 57
  •  
  • 2010/07/28(水) 19:49:01
MyFrame1 frame;
frame = new MyFrame1(NULL);
frame->m_textCtrl28->SetValue(wxT("moji"));
じゃだめ?

ここまで見た
  • 58
  • 50
  • 2010/07/28(水) 21:25:03
>>57
ありがとうございます。
やはり
「'MyFrame1' : クラス、構造体、共用体に既定のコンストラクタがありません。」
になってしまいます。
コードが継ぎ足し実験しまくりなのが不安なので、シンプルなコードで最初か
らやり直してみようと思います。

ここまで見た
  • 59
  •  
  • 2010/07/29(木) 01:38:24
MyFrame1 *frame = new MyFrame1(NULL);
じゃない?newを受けるのはポインタ

というかもう少しC の勉強してからのほうがいいと思ふぞ

ここまで見た
  • 60
  • 50
  • 2010/07/29(木) 02:40:00
>>59
ありがとうございます。
まだ継ぎ足し実験コードのままなのですが、試してみました。
MyFrame1 *frame = new MyFrame1(NULL);
frame->m_textCtrl28->SetValue(wxT("moji"));
としてみたところ、
「protected メンバ (クラス 'MyFrame1' で宣言されている) にアクセスできません。」
というエラーが。

m_textCtrl28をprotectedメンバで宣言しているのはwxFormBuilderが吐き出し
たコードで、これはwxFormBuilderとしては「編集しちゃアカん」そうなので
すが、m_textCtrl28をpublicメンバで宣言するように直したところ、ビルドが
通りました。でもSetValue(wxT("moji"))の効果はありませんでした。

うーん、勉強します。シンプルなコードでも試してみます。

ここまで見た
  • 61
  •  
  • 2010/07/29(木) 02:52:29
日記

ここまで見た
  • 62
  •  
  • 2010/07/29(木) 02:55:30
君にとっては新たな発見なのかも知れないが
ここ見てるひとは当たり前過ぎてただのノイズ

wx やりたいのは解るがしばらく我慢して
もう少し C++ の勉強してから改めて取り組んだ方が良い

ここまで見た
  • 63
  •  
  • 2010/07/29(木) 14:33:27
C++のクラスの複雑さは異常

ここまで見た
  • 64
  •  
  • 2010/09/06(月) 03:08:25
Windows XP上のmingw+msys(最新安定板)でmakeしたのですが、ld: final link failed memory exhausted エラーでリンクに失敗します。wxMSW(安定板)とwxWidgets-2010-06-30
物理メモリーは2G近くの空き、システムドライブも20G近く空いています。
ネットでエラーを調べてLDFLAGSに-Wl,--no-keep-memoryを追加してみましたが同じ所でエラーになりました。
誰かタスケテorz

砂時計アラームタイマー
フリックラーニング
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email
おすすめワード