[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 07/20 18:18 / Filesize : 300 KB / Number-of Response : 963
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【GUI】wxWidgets(旧wxWindows) その5【サイザー】



1 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 15:12:36 .net]
クロスプラットフォーム 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【サイザー】
pc12.2ch.net/test/read.cgi/tech/1214657360/

2 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 15:13:33 .net]
>>1


3 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 16:33:22 .net]
早すぎね?

4 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 19:39:56 .net]
関連スレ

【RAD統合環境】 Qt 総合スレ 7 【Win/Mac/Linux】
pc12.2ch.net/test/read.cgi/tech/1270309416/

5 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 19:46:45 .net]
早すぎだろ

6 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 19:47:35 .net]
>>1


7 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 19:48:52 .net]
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

8 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 19:52:37 .net]
━━━━━━━━〓〓〓〓〓〓〓〓 アイちゃんキター 〓〓〓〓〓〓〓〓━━━━━━━━

とりあえず>>1


9 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:06:50 .net]
>>1

10 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:36:04 .net]
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!




11 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:38:54 .net]
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)


12 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 01:23:32 .net]
この早漏め

13 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 11:40:00 .net]
.Netスタイルのメニュー表示できないの?

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

14 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 13:16:01 .net]
>>13
無理なような希ガス。自作するしかないような…(ツールバーならwxAuiでそれらしく見せれるけど)

15 名前:デフォルトの名無しさん [2010/04/14(水) 16:37:31 .net]
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)

16 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:25:04 .net]
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 .net]
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)

18 名前:デフォルトの名無しさん [2010/05/02(日) 20:44:44 .net]
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)

19 名前:デフォルトの名無しさん [2010/05/02(日) 21:09:14 .net]
クライアント領域だけ透過させることって出来ないか?

20 名前:デフォルトの名無しさん [2010/05/03(月) 11:45:01 .net]
出来る



21 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 16:02:55 .net]
こういう画像表示をwxPythonでやりたいのですけど

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

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

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

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

22 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 00:17:11 .net]
可能

23 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 01:27:50 .net]
>>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 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 03:30:29 .net]
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 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 06:23:29 .net]
答えは前スレにて

26 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 16:42:05 .net]
>>25
前スレのどこ?アンカおねがい

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

27 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 00:56:04 .net]
>>23
ありがとうございます!
やってみたらframeが複数表示できました。
件のサンプルを参考にして勉強したいと思います。

28 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 04:01:10 .net]
>>24
wx.netに入ってるwx-c.dllを使う

29 名前:デフォルトの名無しさん [2010/06/07(月) 13:24:17 .net]
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 .net]
WindowsのwxWidgetsってウィンドウの状態おかしくなってHideやShowが効かなくなったりIsShownOnScreenが変な値返してると思ってたら
他プロセスからのShowWindow、SendMessage、PostMessageとかメッセージ全部拾わずそのままDefWindowProcに渡してイベント上げてこない
そのくせ、自分自身でウィンドウの表示状態管理してるから不整合起きまくり

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



31 名前:デフォルトの名無しさん [2010/06/21(月) 13:01:24 .net]
>>29
オーバーレイをお古
かくかくのろのろだけど

32 名前:29 [2010/06/21(月) 16:22:58 .net]
>>31
駄目.なんにも変わらない.

33 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:49:06 .net]
gtkより歴史が古いことに驚愕

34 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:04:39 .net]
gtkは糞

35 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:10:45 .net]
>>34
頑張って置き換えてくれ

36 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 03:29:19 .net]
gtkしかよう知らん.あれは糞なのか?
qtとwxだとどっちが糞なんだ

37 名前:デフォルトの名無しさん [2010/06/24(木) 04:07:38 .net]
ライセンス的には一部デフォルト設定から機能オフしないといけないけどwxが自由度高い

38 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 02:27:34 .net]
>>37
その辺の話ってどこかにまとまってたりしますか?

39 名前:デフォルトの名無しさん mailto:sage [2010/07/10(土) 02:56:56 .net]
bf109.seesaa.net/article/9267915.html

40 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 07:39:43 .net]
スレ2にまとめがあったけど

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

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



41 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:12:48 .net]
>>40
wxが余計に解らない

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

42 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 14:10:16 .net]
567 デフォルトの名無しさん [sage] 2009/10/17(土) 02:23:53 ID: Be:
    www.wxwidgets.org/about/newlicen.htm
    The wxWindows Licence is essentially the L-GPL (Library General Public Licence)
    wxWindows ライセンスは 本質的にはLGPL

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

43 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 02:01:41 .net]
wxそのものに手を加える場合はLGPL。
単に自分のアプリを作るためのライブラリとして考える場合はバイナリで
自由に使える。ソースコードつけなくてもリンクしようが配布しようが自由。

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

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

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


45 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 01:13:45 .net]
そうなのかー、乙です。
wxはポータブルなんで、日本でももうすこし広がるといいですね。

46 名前:デフォルトの名無しさん mailto:sage [2010/07/24(土) 21:05:36 .net]
wxErlang って組み込みになったのか。
www.erlang.org/doc/apps/wx/

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

47 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 04:18:08 .net]
Rubyスレで聞いたけど判る人がいないっぽいのでこちらに・・・
wxRuby 0.6.0betaを使ったアプリをwxruby.so同梱で配布する場合に適用されるライセンスは
どのようになりますか?

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

よろしくお願いします

48 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 05:47:16 .net]
orz = 3

49 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 16:52:17 .net]
そういうのわ御社の法務部で聞いてください

50 名前:デフォルトの名無しさん [2010/07/27(火) 22:18:14 .net]
すみません、誰か教えてください。
wxFormBuilderで作成されたForm内のm_textCtrlXXへの参照・代入ってどうやればいいんですか?

環境はVC++です。



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

52 名前:50 [2010/07/27(火) 23:11:48 .net]
お返事ありがとうございます。

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

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

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

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

55 名前:デフォルトの名無しさん mailto:sage [2010/07/28(水) 08:57:31 .net]
ごめん3行目ミスw
frame.m_textCtrl28->SetValue(wxT("moji"));

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

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

57 名前:デフォルトの名無しさん mailto:sage [2010/07/28(水) 19:49:01 .net]
MyFrame1 frame;
frame = new MyFrame1(NULL);
frame->m_textCtrl28->SetValue(wxT("moji"));
じゃだめ?

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

59 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 01:38:24 .net]
MyFrame1 *frame = new MyFrame1(NULL);
じゃない?newを受けるのはポインタ

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

60 名前:50 [2010/07/29(木) 02:40:00 .net]
>>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 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 02:52:29 .net]
日記

62 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 02:55:30 .net]
君にとっては新たな発見なのかも知れないが
ここ見てるひとは当たり前過ぎてただのノイズ

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

63 名前:デフォルトの名無しさん mailto:sage [2010/07/29(木) 14:33:27 .net]
C++のクラスの複雑さは異常

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

65 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 03:51:24 .net]
無視してもう一回make

66 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 04:50:27 .net]
>>65
既に3回くらいやりましたが駄目でしたorz

67 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 05:51:56 .net]
3回とも同じ結果?
同じ場所で止まる?

68 名前:64 mailto:sage [2010/09/06(月) 06:18:57 .net]
>>67
wxmsw291u_core_gcc_custom.dllを作成中にエラーになるのは同じで、その中でcould not read symbols: Memory exhaustedが起こる、読み込み中のオブジェクトファイルは違う事があるようです。

69 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 06:45:03 .net]
cleanしちゃだめだぞ

70 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 09:26:15 .net]
ビルドごとにディレクトリ作ったか?configureは試したか?



71 名前:64 mailto:sage [2010/09/06(月) 21:25:58 .net]
色々と調べたので中間?報告
ttp://comments.gmane.org/gmane.comp.gnu.mingw.devel/3728
多分、同じ現象が報告されていてgcc4.5では起きて4.4では起きないようです。
但しPF使用量を調べると、Win上のメモリ上限の遥か手前で落ちていました。
msysのデフォルトのulimitの仮想メモリの上限が約2GBでこれに抵触したようです。
現在msys上でrootを取得してulimitを変更する方法を検索中です。
・・・msysはsuが壊れてるとかイミフ(ry

>>69
cleanはconfigureの--enable-debugフラグを変更した時にしかしていません。
その他はLDFLAGSのみを変更してmakeを試しました。

>>70
ディレクトリは変更していません。configureをやり直した場合はcleanで対応しました。

wxWidgetsではなくてmsys固有の問題の可能性があります。
その場合にはmingw相談室で質問後結果報告させて頂きますね。<その方が良いですよね?自信がないです・・・。

72 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 23:53:29 .net]
なんかサイザーの処理が最適化されていないのか、複雑なレイアウトを組むと
再描画に凄く時間が掛かる。
何か回避策や対策などがあるようならば教えてください。

73 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 17:43:04 .net]
wxを窓から捨てる

74 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 17:55:13 .net]
RADツール使ってサイザーやスペーサーを極力使わない構造を見つける

75 名前:72 mailto:sage [2010/09/07(火) 22:55:14 .net]
リサイズしないウィンドウにしても、再描画時にサイザーの計算を
しているっぽいので、そこをもう計算させないっていう様な設定が
出来たらしたいのです。

結局、複雑にサイザー使ってボタンとかびっちり詰め込むと
サイザーの計算が重くなるのは仕方ないなとも思うので、
固定さえ出来れば問題なくなるはずです。

76 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 23:10:11 .net]
各コントロールごとに座標を想定してたりしないか?そういう使い方するもんじゃない
ボックス系のサイザーとグリッド系のサイザーを適切に使えば綺麗にまとまるし
さほど重くもならないと思うんだけど

77 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 23:22:25 .net]
あとコントロール、サイザー共にExpandとStretch(proportion)はちゃんと個別に見直すべき
そのあとでBorder、埋めきれないとこはSpacer

78 名前:デフォルトの名無しさん mailto:sage [2010/09/09(木) 09:58:14 .net]
wxFormBuilder 3.1
Python対応
C++で日本語でもANSIで吐けるようになってるのを確認

79 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 02:13:45 .net]
>>76
ちょっと見直してみたら、ボックスサイザーを入れ子にしてる所があるな。
そういうのは、グリッド系にすべきって事かな。

80 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 04:07:42 .net]
サイザーごときで重くなるって
100個とか1000個単位で
びっしり詰めてるのか?



81 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 11:58:53 .net]
とりあえず、コントロールは100個近く詰まってはいる。
動作が重いというか、ウィンドウを(最小化などから)表示した時に
普通はパッというぐらいの速度で表示されるけど、それがパラパラっと
コントロールが配置されるのが見えるって感じ。

82 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 12:03:53 .net]
>>78
wxFormBuilderって物凄く安定しているのがスゲーと思った。
こういうのって不安定なものが多いから感心した。
ちなみに、Windows版。

83 名前:デフォルトの名無しさん mailto:sage [2010/09/11(土) 14:23:13 .net]
以前に作ったコントロール90くらいのダイアログ見つけたからwxFormBuilder通して見てみたけど
C2D E6600でもこの程度では特に重いとは感じない、というか変化がない
SS見せてくれたら試しに組んでみてもいいよ

84 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 07:11:45 .net]
透過GIFを背景画像の上にぺたぺた貼り付けたいんだけど、透過GIFを入れたwxStaticBitmap
を配置するだけだと背景色で透過部分がfillされます。styleをTRANSPARENTにしても効かない。

ウィンドウのDCを取得して、wxDC::DrawBitmapで地道に描かないとだめですかね?

85 名前:デフォルトの名無しさん mailto:sage [2010/09/13(月) 11:28:09 .net]
styleをTRANSPARENT
SetMaskColour

86 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 01:51:53 .net]
wxTextCtrlでカーソル位置にテキストを挿入するのってどうやるのが楽?
GetInsertionPointの前後で分割して、入れたい値を合成して
再挿入、ってやったけど
どうも改行があると値がずれるようなんで困ってて。


87 名前:86 mailto:sage [2010/10/18(月) 02:20:13 .net]
自己解決。Replace使えば良かったのか。
スレ汚しすまんかった。

88 名前:デフォルトの名無しさん mailto:sage [2010/10/18(月) 02:32:29 .net]
>>86-87
普通にWriteTextで
キャレット位置に挿入(選択状態なら置換)出来るのでは?

89 名前:86 mailto:sage [2010/10/20(水) 23:19:42 .net]
>>88
……その通りでした。
ちゃんと隅々までドキュメント読むべきでした。
遅くなったけどどうもありがとう。



90 名前:81 mailto:sage [2010/10/31(日) 01:33:07 .net]
>>83
その後、同一マシン上のVMwareでWindows2000とWindows7を実行して試してみたら、
Windows7上では同じ遅さだったけど、Windows2000ではめっちゃ速かったから
少なくともサイザーが遅いって事はなさそう。

ただ、VS2010上でビルド出来ないし、新しいプラットフォームの追従はあまり
早くないね。3.0が出てくれれば解決するのかな。




91 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 01:53:11 .net]
>>90
単にスワップ起こしてるだけじゃねーの?
2GB程割り振って検証してみたら?


92 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 17:17:26 .net]
>>90
VS2010のx64でビルドして使ってるけど、特においらの範囲では問題ないな。

VC6プロジェクトがVS2010で変換できないってことなら、VC2005か、VC2008で変換してからVS10で開けば通るよ。
2.9.xならVC8,VC9用のプロジェクトもある。

93 名前:90 mailto:sage [2010/11/03(水) 00:56:36 .net]
>>92
> VS2010のx64でビルドして使ってるけど、特においらの範囲では問題ないな。
再描画の時に「パッ」じゃなくて「パラ」って感じなんで、まぁ問題っていうほど
じゃないんだけどね。

> VC6プロジェクトがVS2010で変換できないってことなら、VC2005か、VC2008で変換してからVS10で開けば通るよ。
なるほど、その手があるのか。ありがとう。

94 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 05:11:47 .net]
wxURLのProxy処理にバグがある・・・?

GETしたいURL: www.google.com/
使うProxy: localhost:8080

このとき、Proxyへリクエストヘッダを見てみると
GET www.google.com/ HTTP/1.0
Host: localhost
になってて、Proxyがlocalhostの/を取りに行こうとする。
RFCをちゃんと読んでないのでこれも正しいのかもしれないけど、
一般的なブラウザだと
GET www.google.com/ HTTP/1.0
Host: www.google.com
になってる。
送信先がhttpならHostをwww.google.comに書き換えないといけない
(実際そうしてみたら手元の環境では動く)と思うんだが、俺間違ってる?

一応最新のソースをTrunkから落としてきてるけど、こんな単純なところでミス
してたらテスト通らないだろうし…
俺が何かくだらないミスしてる気がしてならないので、誰かツッコミ入れて下さい。


95 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:25:39 .net]
>送信先がhttpならHostをwww.google.comに書き換えないといけないと思うんだが、俺間違ってる?

あってる

96 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:31:27 .net]
wxURL_NOHOST

97 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:34:21 .net]
これかな
yomi.mobi/read.cgi/pc8/pc8_tech_1097524712/515-


98 名前:デフォルトの名無しさん mailto:sage [2010/11/13(土) 11:54:08 .net]
wxRIchTextCtrlの日本語インライン入力パッチありませんか?


99 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 18:39:00 .net]
おや規制明けてる。
>>98
もう解決してる気がするけど、OS毎で処理系が全く異なる上、
日本と中国と韓国くらいしか影響がないのでそんな便利なパッチはたぶん無い。
RichTextはわからんが、Win上のwxStyledTextCtrlと同じなら、
MSWWindowProcをオーバーライドして、
WM_IME_STARTCOMPOSITION、WM_IME_COMPOSITIONあたりを捕捉、
Caretの位置から自分で逐次IMEの位置情報を変更してやればいいと思う。

しかし上でwxURLの話もされてるけど、HTTP通信周りの処理、
結構ボロボロだなコレ。
そういう用途で使ってるユーザがほとんどいないんだろうが・・・。


100 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 19:22:29 .net]
UI以外の部分でwx使う意味ってあんまりないからじゃない?



101 名前:デフォルトの名無しさん [2010/11/24(水) 19:51:50 .net]
そうか

102 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 23:22:37 .net]
もう誰か作ってるだろと探したけど
wxOnigurumaとか無かった。残念。


103 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 07:32:10 .net]
詳しい方ちょっと教えて下さい…。

ちょっと前からxchmというヘルプビューアを日本語表示できるようにしているのですが、
ShiftJIS->Unicodeの変換がうまくいきません。

一応wxString、wxMBConv、wxCSConv、wxEncodingConverterのリファレンスと
ヘッダにある関数の組み合わせは一通り試したつもりですが、変換されるはずが
変換されなかったり、Initに失敗したりと散々です。

結局g_convert関数(GLibのiconvラッパー)で逃げましたが、wxWidgetで
書かれているソースに突如異物混入みたいで非常に美しくありません。
動作はしたので後は趣味の問題ですが、なんとかならないでしょうか?

環境はDebian、wxWidgets 2.6.7.1です。

104 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 21:51:03 .net]
2.9のドザーな俺にはアドバイスはできんが、
この辺で問題視されてる「wxMBConv はいくつかのサブクラスを持っていて、
こいつらはことごとく wchar_t の内部表現が UCS であることを仮定してる。」
あたりが原因じゃないのか?
ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13


105 名前:デフォルトの名無しさん mailto:sage [2010/11/26(金) 23:29:00 .net]
>>104
早速感謝。

あー、そのページ、自分も見ました。
今ネット上にある日本語ページの中では一番内容が濃そうでしたね。

wxWidgetsが文字コード回りで大分無茶をしてるらしいことだけは判りました。
実際、文字コード変換には一旦wchar_t型を経由しないとならんのですけど、
 charのSJIS->MB2WC->WC2MB
とかやると、SJISでもUTF8でもない謎コードになっちゃうんですよね。

ちなみに、前スレでもWin使いの方が全く同じ趣旨の質問されてましたけど、
結局やはりWinAPIでなんとかしたらしいですね。
やっぱり無理ですかねぇ…。

106 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 00:43:27 .net]
wchar_t の中身がUCS前提なのはこの場合問題じゃないだろ…
>>104 の言っているUnicodeって、具体的に何?wxはUnicodeビルドで、wxStringにしたいの?

SJISからwxStringにしたいのなら、 wxString s(sjis_string, wxCSConv('cp932')); を試した?
コード出さないで質問しても、エスパーじゃない限り回答できないよ。

107 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 02:06:26 .net]
>>106
あ、書き忘れてましたね、すいません。
入力はマルチバイト(char)のShiftJIS、欲しい出力はマルチバイト(char)のUTF-8で、
wxはDebian etchのものなのでUnicodeビルドです。

上のコードはもちろん試しました。
で、そこからどうすればchar型のUTF-8が得られるのか、もしくは別の方法を使うべき
なのかで悩んでいるのが現状です。

ちなみに、成功例はこちら
#include <glib.h>
char *utf8_str = g_convert(sjis_str, -1, "utf-8", "cp932", NULL, NULL, NULL);
で、これと同等のことをwxで行うにはどう書けばいいか?という質問です。
(この前後にwxベースのコードとやりとりするための処理が入るのですが、それが
また汚いので、できれば回避したいです…)

108 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 08:39:35 .net]
言い訳はいいから問題起こしてる例のコードだせよ

109 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 11:28:57 .net]
>>108
えー、失敗コードはもう全部消しちゃったんですよね…。
てか、ここまでの説明で判る方は判るし、判らん方はそこまででしょう。
この場合、頑張って失敗コード再現しても結果は後者だと思うので、No thank you.

110 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 11:41:57 .net]
エスパーのかたのみお答えください



111 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 13:14:50 .net]
便乗して質問してもいいかな?

wxMBConvとwxCSConvの違いって何?
ヘルプ見てもよくわからん…

112 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 13:26:57 .net]
>>111
wxMBConv は、変換系の抽象クラス。
wxCSConv は wxMBConv を継承した具象クラスで、 >>106 みたいに任意のエンコーディングとの変換を行う。
wxMBConvUTF8 も wxMBConv を継承した具象クラスで、 UTF-8との変換を行う。

113 名前:111 mailto:sage [2010/11/27(土) 13:34:03 .net]
>>112
なるほど。ありがとう。

114 名前:107 mailto:sage [2010/11/27(土) 15:03:23 .net]
ja.pastebin.ca/2003497
少なくともUbuntu 10.10では、wxCSConvでちゃんとcp932からUTF-8への変換ができたよ。
Debian etch とか古すぎて使う気にならないけど。

115 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:00:22 .net]
>>114
多謝!!

こっちでも試してみましたけど、できた!?ばかな!?

記憶を頼りに前回のコードと比較してみたら、違いが判りました。
OK: wxCSConv(wxT("cp932"))
NG: wxCSConv(wxFONTENCODING_CP932)
…こいつら違う意味なのかよ!?
ちなみに、後者だとSJISでもUTF-8でもないデータになりました。

で、wxWidgetsのソースを読んでみました。

wxCSConv::wxCSConv(const wxChar *charset)
{
  ...
  m_encoding = wxFontMapperBase::GetEncodingFromName(charset);
}

wxCSConv::wxCSConv(wxFontEncoding encoding)
{
  ...
  m_encoding = encoding;
}

で、wxFontMapperBase::GetEncodingFromName(wxT("cp932"))は87でした。
wxFontEncodingはenumなので、じゃあ87はなにかというと、
wx/fontenc.h: wxFONTENCODING_MAX, // highest enumerated encoding value
うん、意味が判らないんですが、これってwx使ってる方からしたら常識だったりしますか?

それと間違えてました、使ってるのはetchでなくlennyでした、スイマセン。

116 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:17:40 .net]
C++ の勉強からやり直せ

117 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 17:40:21 .net]
xchmのコード変更完了!
おかげさまで変更箇所が50行が4行になり、かなりすっきりしました。

相談に乗って頂いた方、大変有難うございました。

118 名前:107 mailto:sage [2010/11/27(土) 18:21:41 .net]
fmapbaseの中にwxFONTMAP_CP932のエンコーディング名として最初にWINDOWS-932という
文字列が登録されていて、iconv にはこの名前のエイリアスが登録されていないから iconv に
失敗する、、、んだけど、iconv_open に失敗したらWINDOWS-932の次のCP932が利用されるように
見える。なのに失敗してる。

深追いはしてないからどこでコケてるのか判らないけど、とりあえず wxCSConv にはエンコーディング名を
直接渡したほうが、その名前が直接 iconv に渡るから落とし穴が少なそう。

119 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 18:27:01 .net]
なるほど。ありがとう。

120 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 18:41:10 .net]
>>118
あー、そういうことでしたか、なるほど。
感謝!



121 名前:106=114=118 mailto:sage [2010/11/27(土) 20:54:49 .net]
名前を間違えて107にしてしまった。
>>117 xchm の修正って、本家にフィードバックする予定ありますか?
Linuxでもchmファイル読めたら便利そう。

122 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:36:15 .net]
>>121
フィードバックの予定は特に無いです。
というか本家、まだ生きてるんだろうか?

Ad-hocだけど、ここにパッチ貼っときます。
これでコンテンツと索引がちゃんと日本語で表示されるようになります。
検索の日本語対応は、ぱっと見かなり難しそうだったので保留中です。
むしろ誰かやって下さい…。

ちなみに、Linuxでchm読むだけでしたら他にもいくつかビューアがあるようですよ。
ご参考まで。

123 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:37:06 .net]
+diff -urN xchm-1.17.orig/src/bitfiddle.inl xchm-1.17/src/bitfiddle.inl
+--- xchm-1.17.orig/src/bitfiddle.inl 2010-11-27 17:21:37.000000000 +0900
++++ xchm-1.17/src/bitfiddle.inl 2010-11-27 18:00:13.000000000 +0900
+@@ -194,10 +194,10 @@
+ return wxEmptyString;
+
+ if(enc != wxFONTENCODING_SYSTEM) {
+- wxCSConv convFrom(wxFONTENCODING_ISO8859_1);
+- wxCSConv convTo(enc);
+-
+- return wxString(input.mb_str(convFrom), convTo);
++ if (enc == wxFONTENCODING_CP932)
++ return wxString(input.To8BitData(), wxCSConv(wxT("cp932")));
++ else
++ return wxString(input.To8BitData(), wxCSConv(enc));
+ }
+
+ return input;


124 名前:デフォルトの名無しさん mailto:sage [2010/11/27(土) 22:39:25 .net]
+diff -urN xchm-1.17.orig/src/chmfile.cpp xchm-1.17/src/chmfile.cpp
+--- xchm-1.17.orig/src/chmfile.cpp 2010-11-27 17:21:37.000000000 +0900
++++ xchm-1.17/src/chmfile.cpp 2010-11-27 19:35:02.000000000 +0900
+@@ -1056,10 +1056,8 @@
+ #endif
+ topic = CURRENT_CHAR_STRING(combuf);
+ #if wxUSE_UNICODE
+- else {
+- wxCSConv cv(_enc);
+- topic = wxString((const char *)combuf, cv);
+- }
++ else
++ topic = translateEncoding(CURRENT_CHAR_STRING(combuf), _enc);
+ #endif
+ }
+

125 名前:デフォルトの名無しさん mailto:sage [2010/12/01(水) 16:15:11 .net]
wxPythonでとあるチャットのクライアントを作っているのですが
wx.(Rich)TextCtrlでは打ち消し線は使えないのでしょうか?

126 名前:デフォルトの名無しさん mailto:sage [2010/12/03(金) 00:13:26 .net]
>>125
wxFONTFLAG_STRIKETHROUGHを指定したフォントを適用してやるとかで
できるんじゃない?


127 名前:デフォルトの名無しさん mailto:sage [2010/12/04(土) 15:45:14 .net]
ありがとうございます。

font = wx.FFont(8, wx.DEFAULT, wx.FONTFLAG_STRIKETHROUGH)
self.target.SetFont(font)

FONTFLAG_STRIKETHROUGHを指定してみたのですが、打ち消し線が表示されません。

128 名前:デフォルトの名無しさん mailto:sage [2010/12/05(日) 00:26:59 .net]
wxWidgets2.8.xに実装されているウィジェットの表示サンプル一覧とかないですかね?
サンプルを実行してみないとどのように表示されるのか判らないのはかなり不便・・・('A`)

129 名前:デフォルトの名無しさん [2010/12/05(日) 02:32:55 .net]
demosも一緒にインストール汁

130 名前:デフォルトの名無しさん mailto:sage [2010/12/06(月) 23:39:23 .net]
>>127
ttp://trac.wxwidgets.org/ticket/9907
打ち消し線が有効化されるパッチ。
ただし2.9。




131 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 00:41:50 .net]
>>130
遅れましたが、ありがとうございます。
wxWidgets用のパッチのようなのですが、
wxPythonに適用させる方法がわかりません・・・

132 名前:デフォルトの名無しさん mailto:sage [2011/01/01(土) 17:37:18 .net]
Androidに対応してくれないかなぁ・・・

133 名前:デフォルトの名無しさん mailto:sage [2011/01/02(日) 03:08:38 .net]
AndroidやiPhoneもそうだけど、Mac対応(wxCocoa)もしっかりして欲しい。
このままじゃ何時まで経っても64bit化出来ない。
やっぱり企業の後ろ盾がないプロジェクトはきついかもね。

134 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 01:11:15 .net]
Qtは人気あるのに、こっちは盛り上がらないね。

135 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 01:25:48 .net]
QtはLGPLがヤダ

136 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 01:32:35 .net]
>>134
枯れてるからね

137 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 14:18:26 .net]
ほとんど同じ時期じゃね?
wx Initial release 1992
Qt Initial release 1992; 19 years ago
wxの敗因は、やっぱ製品として売り出してないからじゃね?

138 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 20:08:32 .net]
Android => Java, Google
gtk,Mono => Suse, Microsoft
Qt => Nokia, Google, Intel
wxwidget => ???

139 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 20:12:46 .net]
何の矢印だよ、それ。

140 名前:デフォルトの名無しさん mailto:sage [2011/01/18(火) 00:04:15 .net]
wxRubyノート - ListCtrl を使ってサムネイル一覧を表示してみる - Alone Like a Rhinoceros Horn
ttp://d.hatena.ne.jp/h1mesuke/20100427/p1
のコードを動かしたいのですが日本語パスが使える状態で動かせません

Ruby 1.8.7+wxRuby 2.0.1
 動作するけど日本語を含むパスが認識しない
 (Ruby 1.8.xがUTF-8のパスを処理出来ないためっぽい
 S-JISだと今度はwxRubyがパスを認識出来ない)

Ruby 1.9.2+wxRuby 2.0.1
Ruby 1.9.1+wxRuby 2.0.1(mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe)
Ruby 1.9.1+wxRuby 2.0.0(mingw32-ruby-1.9.1-wxruby-2.0.0-setup.exe)
 RubyはUTF-8のパスを処理出来るけど
 >@thumb_list.clear_all
 のところで固まる

日本語パスが使える状態で動作させる方法があったら教えてください
よろしくお願いします



141 名前:デフォルトの名無しさん [2011/01/18(火) 06:48:23 .net]
つ ttp://codepad.org/SaG84FKe

142 名前:140 mailto:sage [2011/01/23(日) 01:33:16 .net]
レスありがとう。ってPython!?Σ(゚Д゚)
わざわざ書き直してくれたのに申し訳ないけどRubyでコーディングしたいので・・・

とりあえずいじり回していたら思いついた案
1.Ruby 1.8系を使用。wxImage::load_streamを使う
  ファイルの自動判別が出来ない
2.Ruby 1.8系を使用。Rubyのファイルパスを扱うメソッドをUTF-8に対応するように再定義
  数が多くコーディング量が多い。デバッグも大変
3.RubyでwxPythonを使う
  まだ実験していない。動いたとしても関連ライブラリのサイズがでかくなりそう?
どれもイマイチだ(´・ω・`)

143 名前:デフォルトの名無しさん mailto:sage [2011/01/23(日) 03:01:42 .net]
Ruby知らんけど、単に文字コード変換するんじゃダメなの?

144 名前:デフォルトの名無しさん mailto:sage [2011/01/23(日) 17:59:40 .net]
コントロールに画像使うとリソース食うから
サムネにはお勧めできない

145 名前:デフォルトの名無しさん mailto:sage [2011/01/23(日) 19:23:43 .net]
GUIやるならPythonの方が良いと思うけどなぁ。
Windowsと日本語はもちろんだけど、>>140のBlog見てるとスレッド周りにも
問題あるみたいだし。

146 名前:デフォルトの名無しさん mailto:sage [2011/01/23(日) 20:59:01 .net]
>サムネイルを作成する間ウィンドウがブロックしないよう、サムネイルの作成は別スレッドで行っている。
>(ただし、サンプルということで、排他制御は一切やっていない)
>
>イベントループのあるメインスレッドからのスレッド切り替えが円滑に行われるよう、
>メインスレッドではタイマーを使って定期的に Thread.pass している。
>
> Wx::Timer.every(100) do
> Thread.pass
> end
>
>これが必要になる理由については次のエントリでやる予定。

謎のコード

147 名前:141 mailto:あきらめたら終わり満足してしまっても終わり sage [2011/01/23(日) 21:11:49 .net]
>>142
べつに謝らんでもええよ
漏れは困ってへんから


148 名前:デフォルトの名無しさん mailto:sage [2011/01/23(日) 21:38:27 .net]
>>146
ttp://d.hatena.ne.jp/h1mesuke/20100508/p1
ここのコメ欄の方が怖いぞ。

149 名前:デフォルトの名無しさん mailto:sage [2011/01/24(月) 05:23:51 .net]
Ruby使ってないから気にしない

150 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 23:54:02 .net]
wxWidgetsでアニメ(not 動画ファイル。MNG or 連番PNGを想定)を表示したいのですが
単に表示されている画像をインターバルで書き換えていく方法だとフリッカーが出てしまいます
再描画と画像の書き換えの同期が取れていないためだと思いますが同期させる方法が判りません
何か良い方法があったら教えてください。よろしくお願いします



151 名前:デフォルトの名無しさん mailto:sage [2011/01/28(金) 01:18:19 .net]
ソース貼れ

152 名前:デフォルトの名無しさん mailto:sage [2011/01/28(金) 23:04:25 .net]
>>150
wxBufferedPaintDC使え。

153 名前:150 mailto:sage [2011/01/30(日) 00:53:07 .net]
レスthx

>>152
なるほどそう言うのがあるのか。試してみます

154 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 16:14:40 .net]
2.9.1が出てから音沙汰無いな

155 名前:150 mailto:sage [2011/01/31(月) 00:06:45 .net]
>>152
フリッカーを無くせました。ありがとうございました

156 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:36:59 .net]
>>154
ttp://wx.ibaku.net/changelog/
連日どんどん更新されてるけど音沙汰ない?

157 名前:デフォルトの名無しさん mailto:sage [2011/02/11(金) 06:24:01 .net]
前スレがやっと埋まったぽい。埋めた人お疲れさま。

158 名前:デフォルトの名無しさん mailto:sage [2011/02/11(金) 23:54:18 .net]
つうか次スレ立てるの早過ぎだろ

159 名前:デフォルトの名無しさん mailto:sage [2011/02/13(日) 21:55:32 .net]
このライブラリタダ?

160 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 08:33:59 .net]
EVT_LEFT_DCLICK で bind して処理しようとすると
EVT_LEFT_UP EVT_LEFT_DCLICK が同時に来るみたいなのですが
EVT_LEFT_DCLICK だけ受け取るにはどうすれば良いでしょうか?



161 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 20:45:41 .net]
>>160
wxMouseEventのLeftDClickで判別すればいいんじゃないの?

162 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 21:35:20 .net]
GoogleIME使ってるんだが、TextCtrlで未変換文字列とか変換候補とかが表示されないのは仕様か?
MSIMEならちゃんと表示された

163 名前:デフォルトの名無しさん mailto:sage [2011/02/18(金) 22:05:32 .net]
>>162
ありがとうございます
試してみましたが
結局 EVT_LEFT_DCLICK に bind された handler 内では LeftDClick なのですが
同時に EVT_LEFT_UP に bind された handler も呼ばれてしまっていて
そっちでは LeftDClick じゃないとみなされるので区別出来ないんです ><


164 名前:デフォルトの名無しさん [2011/02/27(日) 19:42:45.69 .net]
wxApp の OnInit で wxFrame *frame = new wxFrame(hogehoge);
としたとき wxFrame を delete しないようですが
勝手に GC してくれるんでしょうか?
SetTopWindow(frame);
を実行したときとしないときでは違いますか?

165 名前:デフォルトの名無しさん mailto:sage [2011/02/27(日) 20:07:52.06 .net]
メモリ以外の資源の解放をGC任せにする男の人って

166 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 14:53:53.44 .net]
>>164
wxWidgetsでは自分で解放すると返って二重解放になる。
ttp://www.wxwidgets.org/docs/faqcmn.htm
FAQに書いてあるから今後はよく読もうな。



167 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 16:28:05.88 .net]
主にwindowsで使っていますがlinuxでも同じソースで動くようにしたいです
wxStringで与えられたあるパス名がフルパスか相対パスかをwxWidgetsのクラス
(例えばwxFileName等)を使って判断出来ますか?


168 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 20:23:10.51 .net]
>>167

wxFileNameにIsAbsoluteというのがあるけども。
それすら調べられないようだとwxに限らずプログラミングは厳しいと思う。

169 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 20:25:20.16 .net]
ポインタ置いときますね。皆さん先刻ご存知かもしれませんが。

wxWidgets(wxstd.moの日本語版, ja.po)をお使いの皆様へ
ttp://suzumizaki.blog6.fc2.com/blog-entry-207.html

170 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 20:34:43.27 .net]
>>164
こっちも読んでおくといいよ。
二重開放以外にもdeleteがまずい理由があるようだから。
ttp://docs.wxwidgets.org/trunk/overview_windowdeletion.html



171 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 21:31:47.32 .net]
>>168
出来ました!!
ありがとうございました!!!

172 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 03:32:17.98 .net]
wxListCtrl の
SetItem - GetItemText とか
SetItemText - GetItem とか
なんか変な対応してるみたいなんですけど
こんなもんなんですか?
他にも IsIconized とか IsShown とか
ドキュメント通りじゃなくて
めちゃくちゃな感じがするんですが
設計者ってパラノイア?

173 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 04:30:33.22 .net]
馬鹿には無理
つ ttp://wiki.wxwidgets.org/WxListCtrl
Get the String Contents of a "cell" in a LC_REPORT wxListCtrl

174 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 07:16:25.58 .net]
>>173
出来ました!!
ありがとうございました!!!

175 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 11:00:32.39 .net]
質問です
wxWidgetsにはMD5やSHAを計算してくれる関数はありますか?

176 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 11:32:42.63 .net]
つttp://wxwidgets-hash-md5.fyxm.net/

177 名前:デフォルトの名無しさん mailto:sage [2011/03/07(月) 22:35:46.50 .net]
>>175
176じゃないけど、MD5単品ならこういうのとか。
ttp://www.koders.com/cpp/fid80078010DEFC2265E917FE6436718F0AE038CBE6.aspx

178 名前:デフォルトの名無しさん mailto:sage [2011/03/08(火) 09:26:30.33 .net]
>>178
ありがとうございます
とりあえず別のMD5ライブラリが見つかったのでそちらで間に合わせたのですが
ライセンスの問題とか考えると教えて頂いたもので置き換えた方が良いかも知れません
余力があったら後でご報告します


179 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 04:31:11.46 .net]
wxHTTP::GetResponse が 200 とか 403 とかじゃなくて 0 を返すんですけどバグですか?

180 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 04:46:40.12 .net]
つ ttp://wiki.wxwidgets.org/WxHTTP



181 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 05:29:32.87 .net]
>>180
出来ました!!
ありがとうございました!!!

182 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 17:04:06.53 .net]
文字コードの変換というか
変換出来ない文字が含まれているかどうかのチェック方法について質問です。

UTF8 の文字列を SJIS に変換しようとしています。

static wxString wxString::FromUTF8(const char *s);
の注意書きに、
Note that this method assumes that s is a valid UTF-8 sequence
and doesn't do any validation in release builds,
it's validity is only checked in debug builds.
というのがありまして、
実際に HTTP 経由で取得したデータ (UTF8 であることは確認済み) に
「〜」の上下反対の文字 (SJIS に変換出来ないコード) などが入っていると、
wxString utf8_data;
wxStringOutputStream ostream(&utf8_data);
httpStream->Read(ostream);
wxString sjis_data = wxString::FromUTF8(utf8_data.c_str());
なコードで変換しようとすると
sjis_data の中身が空っぽになってしまいます。
リリースビルドなので無視された結果だと思いますが、
wxWidgets 自身に事前にチェックするための関数などはありますか?

utf8_data には確かに UTF8 のデータが入っています。
問題を起こす文字が含まれていないときは正常に動作するようです。
OS は Windows で wxWidgets は ANSI 版のを使っています。


183 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 17:16:21.87 .net]
むしろUTF-8のまま扱うかUNICODEにしてしまった方が良いのでは?

184 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 20:02:39.82 .net]
>>182
wxStringOperations::IsValidUtf8String


185 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 08:17:32.00 .net]
>>184
ありがとうございます。
今レス見たばかりなのでまだ試していませんが、
docs.wxwidgets.org/trunk/annotated.html
を見ても wxStringOperations は見当たらず
ネームスペースかとも思うのですが、
こういったものはどうやって見つければ良いものですか?

186 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 08:25:43.01 .net]
>>182
wxString::FromUTF8Unchecked


187 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 08:27:16.48 .net]
>>185
trac.wxwidgets.org/wiki/DebugRelease

188 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 08:34:44.59 .net]
>>186
ありがとうございます。
しかしそれは Valid じゃない UTF8 データが渡されたときの
動作は undefined だと書かれていますね。
結局事前に調べないといけないことにかわりないようです。

>>187
ありがとうございます。
中身を読んでも良く判りませんでした。
どういう意味でしょうか?

189 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 08:38:29.58 .net]
ん?
「〜」301C(E3809C)
はValidじゃないのか?

190 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 09:19:31.75 .net]
問題なのはUTF-8として正しいかどうかじゃなくて
cp932に変換出来るかどうかってことなんだよな
そうなるとスレ違いかもな



191 名前:デフォルトの名無しさん [2011/03/10(木) 13:58:57.41 .net]
wxWidgetsって、けっこうS-JISの処理が弱いので、そこの部分だけはネイティブの処理にしたほうがいいかも
俺もアプリ作った事あるけど、S-JISに変換する部分だけはWideCharToMultiByte関数を呼ぶようにしたよ

192 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 16:16:13.99 .net]
>>184
残念ながら使えませんでした。


193 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 16:24:05.27 .net]
>>192
wxUSE_UNICODE_UTF8 を定義してないと使えないよ
つ ttp://docs.wxwidgets.org/trunk/overview_string.html


194 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 22:06:44.16 .net]
みなさん色々とありがとうございます。
wxString sjis_data = wxString::FromUTF8(utf8_data.c_str());
のところで例外出して死ぬパターンと sjis_data が空になるパターン
それからちゃんと成功するパターンとがありました。
結局アクセスしていたサイトに広告が入っていて、
時間帯によって内容が変わるようなのですが、
どうも本体は UTF8 なのに広告部分だけ SJIS とか、
お粗末なサイトだったのが混乱した原因の一つでした。

195 名前:デフォルトの名無しさん mailto:sage [2011/04/19(火) 00:00:08.70 .net]
3.0マダー(AA略)


196 名前:デフォルトの名無しさん mailto:sage [2011/05/25(水) 00:30:08.01 .net]
サイザーage

197 名前:デフォルトの名無しさん mailto:sage [2011/07/02(土) 23:25:00.75 .net]
wxWidgetsとWinPcapをあわせて使おうとしてハマってたのが解決したのでカキコ

- winpcapのpcap.hはwxWidgetsのヘッダファイルのあとにincludeする必要がある
- pcap.h内部でwinsock2.hを呼んでいる
- winsock2.hはwindows.hの前にincludeする必要がある
- wxWidgetsのヘッダは、物によっては内部でwindows.hを呼んでいる

というデッドロック

#include <winsock2.h>
#include <wx/msw/winundef.h>
#include <wx/wx.h>
#include <pcap.h>

こんな感じでwinsock2.h呼んだあとにwx/msw/winundef.hを呼んでやれば解決する

198 名前:デフォルトの名無しさん [2011/07/16(土) 23:02:41.64 .net]
GUI の配置は XML で定義出来るのが一番良いなあ

199 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 01:18:11.68 .net]
それ何てXUL

200 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:48:55.64 .net]
wxだってXRCがあるじゃまいか。



201 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 23:28:11.01 .net]
誰も無いとは言ってないぞ

202 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 23:40:23.13 .net]
後出しww

203 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 23:43:54.73 .net]
ネタにマジレスww

204 名前:デフォルトの名無しさん mailto:sage [2011/07/18(月) 05:50:22.06 .net]
なんのこっちゃ。

205 名前:デフォルトの名無しさん [2011/07/28(木) 23:53:32.75 .net]
リストボックスのアイテムとして
ボタンやテキストボックスを表示できる?

206 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 04:32:53.10 .net]
>>205
wxListBoxそのままでは無理。
テキストボックスだけでいいならwxEditableListBox使った方が早い。
それ以外でちょっとだけコントロールを付け足したいだけなら、
wxListBox継承してるwxCheckListBoxのソースが参考になると思う。
画像管理ソフトみたいなサムネリストが欲しいならwxThumbnailCtrl
って非公式コントロールが楽(古いので2.9系では若干修正が必要)。
ttp://wxwidgets.blogspot.com/2011/02/markup-in-control-labels.html
で紹介されてるマークアップがwxListBoxにも適用されると見た目を
いじるだけならすごく楽になるんだろうけどねぇ。


207 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 07:16:29.38 .net]
>>206
ありがと

208 名前:デフォルトの名無しさん [2011/08/11(木) 06:56:31.32 .net]
自作のTestApp(wxWidgets製)は起動時に渡されたパスを読み込んで処理を
するとして、既に起動しているTestAppがあれば、そのTestAppにパスを引き
渡して自分は死ぬ(多重起動しない)、という動作をしたいです。
Winの場合、EnumWindowsでトップレベルウィンドウでTestAppを探し、
WM_COPYDATAをSendMessageで投げMSWWindowProcで受ける、
という方法を採っていますが、この辺のニーズは常にあるだろうし、
もっと楽なやり方があるんじゃないかと思ってます。
こういう方法の方が楽、とかありましたら教えてください。


209 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 10:26:43.62 .net]
Mutex

210 名前:208 mailto:sage [2011/08/11(木) 20:27:39.52 .net]
>>209
コメントありがとう。
でもMutexだと多重起動のチェックには使えるけど、
「既に起動している別プロセスへ任意のデータを引き渡す」
って処理には使えなく無いですか?






211 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 00:44:19.62 .net]
・メモリマップファイル
・共有メモリ
・TCP/IP
・DDE/OLE/ActiveX
・ウィンドウメッセージ
好きなの使えばいいよ。普通は都合のいい方法を使って自分で作る。
wxならメッセージが一番楽だろう。

212 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 01:46:19.30 .net]
つうか、二重起動防止するAPIが普通にあるだろ。

213 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 12:39:56.45 .net]
>>210
元のをポップアップさせてあとのを閉じれば渡す必要なくね?

214 名前:デフォルトの名無しさん [2011/08/12(金) 12:42:49.43 .net]
一番簡単なのが欲しいなら作業ファイルにデータ書き込め。
いっそ多重起動もdir lockでやっとけ。

215 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 17:59:34.09 .net]
wxMutex
ttp://docs.wxwidgets.org/2.9.2/classwx_mutex.html

216 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 18:09:42.10 .net]
wxSingleInstanceChecker
ttp://docs.wxwidgets.org/2.9.2/classwx_single_instance_checker.html

217 名前:208 mailto:sage [2011/08/12(金) 21:25:55.39 .net]
なんかいっぱい回答もらえた。ありがとうございます。
誤解を生んで申し訳ないんだけど、多重起動の禁止だけじゃなくて、
データを引き渡すってところまでがやりたいことなんです。

>>211
・メモリマップファイル
・共有メモリ
公式ドキュメントだけ読んで無いと思っていたんですが、
改めて調べたら5年前にパッチとして提出されてました。
「理由は言わないけど却下」と問答無用でRejectされてましたが、
普通に使えました(なんで却下されたんだろう……)

・TCP/IP
ちょっと大掛かりですが、確かにこれだとwxWidgetsのクラスのみで
クロスプラットフォームにいけますね。

・DDE/OLE/ActiveX
MSが意図しているアプリ間通信にはこれを使うべきなんですかね。
クロスプラットフォームからはかけ離れますが。


218 名前:208 mailto:sage [2011/08/12(金) 22:02:35.23 .net]
・ウィンドウメッセージ
はい。最初に書いたとおり、これは把握済です。
ただ、全トップレベルウィンドウを調べるwxWidgetsの関数って
無いですよね?(MS側のAPIはあるけど)

>>213
・起動済アプリを殺して自分が前面に出る
タスクバーに収納されていたり表に出ていたり、というアプリにしているので、
起動済のアプリのそれらの状態を把握するのにちょっと手間がかかりますね。
表示状態のコピーが不要なら確かに比較的手っ取り早いですが。

>>214
・作業ファイルにデータ書き込み&排他制御
大量のデータ通信をアプリ間でやるわけじゃないので、
手っ取り早く汎用性も高くwxWidgetsだけで完結しますね。
しかもクロスプラットフォームで安定している。なるほど。

皆さん色々な案の提示、どうもありがとうございました。

219 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 20:17:08.41 .net]
今更なんですが、C++でGUIを考えた場合、wxWidgetsとQTが候補に挙がりましたが
両者の比較を書いているサイトや記事などありましたら教えてください。

220 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 20:28:54.93 .net]
自分はQt側のことは知らないんだが、こんなサイトがある

wxWidgetsのススメ
up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html



221 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 23:04:35.91 .net]
いまは VC2010Express でも wxWidgets 使えて便利だわ

222 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 23:29:46.37 .net]
2.9.2落としてきてVC2008でビルドしてたけど、これgdgdすぎ
スタティックライブラリはできたけど、DLL版は全然ビルドできないわ、サンプルはデバッグ
ライブラリ用になってるからいちいち直さないといけない&直しても同じリソースがどうたら
でビルドできんし、Qtにいくわ

223 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 00:34:44.80 .net]
おいらはMinGWでMakefile作りながらGUI作ってるよ〜 (^q^)

224 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 01:05:50.35 .net]
ああ、早とちりすまん
結局添付されていたVC2008用のプロジェクトファイルがうんこで、VC6用の奴を変換して
ビルドしたらうまくいきましたわ
サンプルも同じでVC6用の奴を変換してビルドすると正常にビルドできました
悪口いってすまん、けどビルドできないVC2008用プロジェクトファイルって罠じゃないのか

225 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 10:36:44.01 .net]
普通makefileの方使わない?

226 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 11:45:57.63 .net]
nmakeしたらいきなりエラーで止まったし、ぐぐるとnmakeよりもVC++上でコンパイルする記事が多かった
ので、そうしてました。
お騒がせして申し訳ないついでに実は開発版の2.9.2をビルドしようとしてたみたいで、俺死にたい...
というより氏ね>俺

227 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 12:10:03.39 .net]
VC使わないといけない理由があるんなら仕方ないけど
gccの方がすんなり行くんじゃないかなぁ。

228 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:49:10.70 .net]
WinでgccというとMinGだよね?
たまたまVC入ってたからVCでやってたけど、MinGの方が捗るの?

229 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 20:59:18.77 .net]
wxWidgetsの開発はLinuxのgccで行われてるだろうからMinGW+gccだと環境づくりが楽かも?
VCのことは知らないけどMinGWだと普通に2.9.2コンパイルできたし
コーディングの効率を考えるとVCのオートコンプリート機能が使えたら楽かもしれんが、たぶん出来んだろうしな


230 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 21:56:21.73 .net]
winでわざわざMinGなんて使う必要ないよ。
VCでいい。



231 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 17:11:05.31 .net]
MinGWだとEXEサイズ小さくなるかなと試してみたが、makeしてもlibができないなぁと1時間も
悩んでた、.aで正しいのにwww
アホすぎる俺
しかしwxWidgetsいいね、コントロールは揃ってるし、ドッキングもできる、開発版にすればリボンもどきも
使えるし、wxFormBuilder使えばGUIで画面組み立てられるし、とりあえず満足できる環境だし

232 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 19:07:07.57 .net]
MinGWでビルドした奴とVC++2008でビルドした奴を比較してみたけど、
VC++2008でビルドしたサンプルauidemo.exeは6073KB、MinGWでは9761KB、stripかけて6645KBだった
どちらもデバッグなしのリリース版なんだけど、MinGWの方がでかくなるのね
Dumpbinで依存DLL調べてみたら、VC++2008の方は標準DLLのみでVCランタイム依存もなし
かたやMinGWはやり方が悪いのだろうけどlibgcc_s_dw2-1.dll、libstdc++-6.dllに依存してた
VC++2008の方が優秀な気がする

233 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 19:22:45.46 .net]
>>232

MSYS上から、
g++ -static -o test.exe test.cpp `wx-config --cxxflags` `wx-config --libs`
こうかな?
-staticオプションつければOKのはず。

以下、wxをビルドしたときの設定。MinGW-w64でもいけました。
./configure --with-opengl --enable-ipv6 --disable-shared --disable-monolithic --enable-unicode --enable-official_build --disable-threads --prefix=/mingw


234 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 19:51:43.28 .net]
ちなみにgccは-sオプションをつけると結構ファイルサイズは小さくなる

235 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 19:52:42.86 .net]
あ、既出だった

236 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 21:11:45.91 .net]
>>233-234
アホな俺にわざわざありがとう!
もう1回試してみます!

237 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 22:39:22.73 .net]
>>230
なるほど人によるなあ。
俺なら「わざわざVC使わんでも、MinGでいい」って発想になるわ。

238 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 23:30:54.03 .net]
>>233
ライブラリも作成し直し、サンプルもビルドし直しましたがサイズは6621KBでした
あとDLL依存はとれないのですね

239 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 00:04:36.25 .net]
>>237
同意。
UNIX文化的には、gccが「標準」でVCは「非標準」って認識だからなぁ。

自分で何か書く時とか、「自分はgccしか使わないけど、Win使いのためにVCもサポートしてやるか」ってレベル。

240 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 00:32:26.75 .net]
結局どっちの文化に属してるかによって
何がデフォで何がわざわざなのかが違うってことで。

で、wxそのものがUNIX文化なんだよな。



241 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:01:41.27 .net]
>> 238
サンプルはそのままビルドするとDLL依存になるとおもう。

cd samples
make "LDFLAGS = -static"

こんな感じでいかかでしょ。


242 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:03:01.60 .net]
>>241
いや、自分でmakeファイルに-static直書きしたけど駄目でした
まぁ、なんか勘違いしてるか頭がアホなんて理解できてないだけでしょう
とりあえずVCでも問題ないのでVCでやります、いろいろありがとうございました

243 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:16:34.99 .net]
>>242
がんがれ。

ただ、オープンソース系のライブラリを今後使っていくんなら
いずれにしてもgcc系の流儀とかも覚えておいた方がいいと思うよ。

244 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 00:10:08.28 .net]
call vcvarsall
pushd build\msw
nmake -f makefile.vc BUILD=debug UNICODE=1 USE_GDIPLUS=1 SHARED=1 RUNTIME_LIBS=dynamic
popd

こんな感じでいいんじゃね
あと2.9.2はstableじゃないけどいいの?

245 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:25:18.76 .net]
質問お願いします。

www.dotup.org/uploda/www.dotup.org2004935.jpg

こういうよくある(名前、種類、ディレクトリ、サイズ)みたいなのを
表示したいんですがヴィジェットは何を使ったらいいでしょうか?
できれば画像のように名前のところの矢印みたいなのを付けたいのと
項目の順番をD&Dで入れ替えたり表示、非表示をポップアップメニューで行いたいです。
項目にはDBのカラムを割り当てたいと思っています。

246 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:38:38.06 .net]
すいません、listctrlで出来そうですね。
なんでいつも質問した後は簡単に見つかるんだろう…

247 名前:デフォルトの名無しさん [2011/09/10(土) 23:30:44.52 .net]
age

248 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 23:37:25.34 .net]
sage

249 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 23:30:06.13 .net]
wxWidgetsのライセンスって何なの(L-GPL)?
これ使って書いたプログラムってソースコード開示する必要あるの?
教えてエロい人!!

250 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 08:11:29.04 .net]
ゴメン、答えられるけどエロくない。



251 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 12:00:14.06 .net]
インポ乙

252 名前:デフォルトの名無しさん mailto:sage [2011/09/22(木) 18:59:22.32 .net]
まあその質問はググッたらでてきそうだしな…
ところで組み込み用のwxWidgetsとかないんだろうか。

253 名前:デフォルトの名無しさん [2011/09/23(金) 14:09:14.39 .net]
>>249
試しにググッたら意外と出てこなかったので教えてやるでおじゃる
web.archive.org/web/20080919161353/http://www.geocities.co.jp/SiliconValley-Cupertino/8526/wxWindows/license.html
ms2.seesaa.net/article/3184354.html

254 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 20:06:16.47 .net]
情報古過ぎないか

255 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 21:55:11.24 .net]
世界線は変わらなかった

256 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 22:27:50.66 .net]
つうか本家のホームページに書いてあるがな。

257 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 23:34:52.13 .net]
これですね
www.wxwidgets.org/about/newlicen.htm

"wxWindows Licence"で配布されていて、
ソースコード開示の必要はないというのが一応の答えかな


258 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 22:07:43.51 .net]
需要があるかどうか不明ですが。

wxWidgetsマニュアルにある Syntax of the builtin regular expression library の邦訳です。
拙作ソフト説明書の一部になっていますが、この頁の訳文に関してはご利用自由です。ただし独自訳多数。

h12u.com/hmo2/manual/%E8%A8%AD%E5%AE%9A%E7%AA%93%E5%8F%A3/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E6%96%87%E6%B3%95.html


259 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 22:23:14.63 .net]
>>258
乙です
てかwxWidgetsにも正規表現ライブラリあったんだな

260 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 23:40:22.99 .net]
>>258
正格表現って初めて見たが、正則表現ではなくて?
POSIXブラケットのうち、[. .] [= =] [:<:] [:>:]とかって他のライブラリじゃほとんど見ないな。
[[=A=]]ってAやÄなどにマッチするんだっけ?



261 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 20:52:38.34 .net]
>>260
ご指摘Thx. 直しておきました。どこで間違ったんだろう。

> [[=A=]]ってAやÄなどにマッチするんだっけ?
建前としてはそうなるはずだけど誰も実装してないとか何とか。よく知らないですが。
調べてみたら [. .] と [= =] の訳文はかなりおかしい気がしてきた。



262 名前:デフォルトの名無しさん mailto:sage [2011/09/26(月) 21:03:37.52 .net]
実は訳間違ってました[[=A=]]

ってかくと顔文字っぽい。

263 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 09:53:24.70 .net]
POSIXって良く聞くけどなんですか?


264 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 20:16:50.72 .net]
258です。訳文とかちょっと修正しました。ページ内部のリンクも増やした。

>>263
実は私もよく知らない。

265 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 23:02:57.78 .net]
雲丹の標準規格じゃないの?

266 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 23:05:37.07 .net]
ja.wikipedia.org/wiki/POSIX
POSIX(ポジックス パーズィックス、Portable Operating System Interface)とは、
異なる実装のUNIX OSを始めとする各種OSに共通のAPIを定め、移植性の高い
アプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定した
アプリケーションインタフェイス規格である。

267 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 21:35:43.22 .net]
motifもIEEEが規格決めてたから、こっち使いましょうよ

268 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 14:42:15.49 .net]
>>263
ザックリとでよければ「UNIX互換」くらいに考えておけば良い。


269 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:30:42.91 .net]
CodeBlocks10.05とwxWigets2.8を使用しています。
勉強中です。
wiki.codeblocks.org/index.php?title=WxSmith_tutorialsの1-7までは実行してみました。
そんなレベルなのですが、ディレクトリ内のファイル名を一覧でcsvにだせるところまでを目標に
しています。

void filenameFrame::OnButton1Click(wxCommandEvent& event)
{
wxString CurrentDocPath;
wxString Filename;
wxArrayString Filenames;
wxString GetDirectory;
wxFileDialog* OpenDialog = new wxFileDialog(
this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition);
if (OpenDialog->ShowModal() == wxID_OK)
{
CurrentDocPath = OpenDialog->GetPath();
Filename << OpenDialog->GetFilename();
GetDirectory << OpenDialog->GetDirectory();
Filenames << OpenDialog->GetFilenames[0];
TextCtrl1->SetLabel(CurrentDocPath);
TextCtrl2->SetLabel(Filename);
TextCtrl3->SetLabel(GetDirectory);
TextCtrl4->SetLabel(Filenames);
}
OpenDialog->Destroy();}

270 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:42:09.03 .net]
C:\C\FILENAME\filenameMain.cpp|133|error: invalid use of member (did you forget the '&' ?)|
C:\C\FILENAME\filenameMain.cpp|140|error: conversion from 'wxArrayString*' to 'const wxString' is ambiguous|
C:\wxWidgets2.8\include\wx\string.h|692|note: candidates are: wxString::wxString(wxChar, size_t) <near match>|
コンパイルすると、このようなメッセージが表示されます。

以下の行を削除すると、正常にコンパイルが通ります。
wxArrayString Filenames;
Filenames << OpenDialog->GetFilenames[0];
wxArrayString Filenames;

wxFiledialogで複数ファイルを選択した場合には、配列?を使用しないといけないような気がするので、多分wxArrayStringを使わないとだめかと
思いいれてみました。
配列?なのでGetFilenames[0]といれれば複数ファイルを選択した場合に一番最初のファイル名が入る認識でしたが間違っているようです・・・

複数ファイルの選択と、複数のファイル名の取得方法を検索したのですが、サンプルなどを見つけることができませんでした。

どこが間違っているか教えてください。





271 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 18:28:13.72 .net]
>>269
最後の行
OpenDialog->Destroy();}

中括弧が全角になってるなあ
てかこれ全コードじゃないよね

272 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 20:52:59.24 .net]
サンプルにある"dialogs"が参考になるんじゃないかな、
"File operations->Open files"というのがある。

273 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:01:42.80 .net]
>>271
レスありです。全コードではありません。
改行などを削除しています。
wxSmithで作成していますので、どのようなソースが必要になりますか?
プロジェクトフォルダを見ると、bin/obj/wx_pch.h.gch/wxsmithフォルダと
filename.cbp/filename.depend/filename.layout/filenameApp.cpp/filenameApp.h/filenameMain.cpp/filenameMain.h/resource.rc/wx_pch.hファイルがあります。
filenameMain.cppの内容は以下のとおりです。

/***************************************************************
* Name: filenameMain.cpp
* Purpose: Code for Application Frame
* Author: ()
* Created: 2011-11-08
* Copyright: ()
* License:
**************************************************************/

#include "wx_pch.h"
#include "filenameMain.h"
#include <wx/msgdlg.h>

//(*InternalHeaders(filenameFrame)
#include <wx/intl.h>
#include <wx/string.h>
//*)

//helper functions
enum wxbuildinfoformat {
short_f, long_f };

wxString wxbuildinfo(wxbuildinfoformat format)

274 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:03:08.95 .net]
{
wxString wxbuild(wxVERSION_STRING);

if (format == long_f )
{
#if defined(__WXMSW__)
wxbuild << _T("-Windows");
#elif defined(__UNIX__)
wxbuild << _T("-Linux");
#endif

#if wxUSE_UNICODE
wxbuild << _T("-Unicode build");
#else
wxbuild << _T("-ANSI build");
#endif // wxUSE_UNICODE
}

return wxbuild;
}

//(*IdInit(filenameFrame)
const long filenameFrame::ID_BUTTON1 = wxNewId();
const long filenameFrame::ID_TEXTCTRL1 = wxNewId();
const long filenameFrame::ID_BUTTON2 = wxNewId();
const long filenameFrame::ID_TEXTCTRL2 = wxNewId();
const long filenameFrame::ID_BUTTON3 = wxNewId();
const long filenameFrame::ID_TEXTCTRL3 = wxNewId();
const long filenameFrame::ID_BUTTON4 = wxNewId();
const long filenameFrame::ID_TEXTCTRL4 = wxNewId();
const long filenameFrame::ID_PANEL1 = wxNewId();
//*)

275 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:04:37.12 .net]
BEGIN_EVENT_TABLE(filenameFrame,wxFrame)
//(*EventTable(filenameFrame)
//*)
END_EVENT_TABLE()

filenameFrame::filenameFrame(wxWindow* parent,wxWindowID id)
{
//(*Initialize(filenameFrame)
wxFlexGridSizer* FlexGridSizer1;

Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
FlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0);
Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxSize(560,106), wxTAB_TRAVERSAL, _T("ID_PANEL1"));
Button1 = new wxButton(Panel1, ID_BUTTON1, _("Label"), wxPoint(8,24), wxSize(72,24), 0, wxDefaultValidator, _T("ID_BUTTON1"));
TextCtrl1 = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("Text"), wxPoint(104,24), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
Button2 = new wxButton(Panel1, ID_BUTTON2, _("Label"), wxPoint(8,48), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2"));
TextCtrl2 = new wxTextCtrl(Panel1, ID_TEXTCTRL2, _("Text"), wxPoint(104,48), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL2"));
Button3 = new wxButton(Panel1, ID_BUTTON3, _("Label"), wxPoint(8,72), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3"));
TextCtrl3 = new wxTextCtrl(Panel1, ID_TEXTCTRL3, _("Text"), wxPoint(104,72), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL3"));
Button4 = new wxButton(Panel1, ID_BUTTON4, _("Label"), wxPoint(8,96), wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4"));

276 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:05:18.62 .net]
TextCtrl4 = new wxTextCtrl(Panel1, ID_TEXTCTRL4, _("Text"), wxPoint(104,96), wxSize(456,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL4"));
FlexGridSizer1->Add(Panel1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
SetSizer(FlexGridSizer1);
FlexGridSizer1->Fit(this);
FlexGridSizer1->SetSizeHints(this);

Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&filenameFrame::OnButton1Click);
//*)
}

filenameFrame::~filenameFrame()
{
//(*Destroy(filenameFrame)
//*)
}

void filenameFrame::OnQuit(wxCommandEvent& event)
{
Close();
}

277 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:06:07.61 .net]
void filenameFrame::OnAbout(wxCommandEvent& event)
{
wxString msg = wxbuildinfo(long_f);
wxMessageBox(msg, _("Welcome to..."));
}

void filenameFrame::OnButton1Click(wxCommandEvent& event)
{
wxString CurrentDocPath;
wxString Filename;
wxArrayString Filenames;
wxString GetDirectory;
wxFileDialog* OpenDialog = new wxFileDialog(
this,wxEmptyString,wxEmptyString,wxEmptyString,wxEmptyString,wxFD_MULTIPLE,wxDefaultPosition);
if (OpenDialog->ShowModal() == wxID_OK)
{
CurrentDocPath = OpenDialog->GetPath();
Filename << OpenDialog->GetFilename();
GetDirectory << OpenDialog->GetDirectory();
//Filenames << OpenDialog->GetFilenames[0];
TextCtrl1->SetLabel(CurrentDocPath);
TextCtrl2->SetLabel(Filename);
TextCtrl3->SetLabel(GetDirectory);
//TextCtrl4->SetLabel(Filenames);
}
OpenDialog->Destroy();
}

278 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:58:12.30 .net]
連続投稿規制 5回でなるんですねが・・・
こんな感じです。
配列・ポインタなど、マニュアルを目を通したのですが、完全に理解していません。
とりあえず色々さわりながら理解していこうかと考えています。

>>272
ありがとうです。
sampleフォルダの中のですね。
当初この中を探したのですが、wxSmithでのプロジェクトがなかったのであきらめていました。
dialogs.cppの790行目からそれらしい記載があったので参考にしてみます。

ありがとうでした。

279 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:45:02.83 .net]
迷惑な香具師だな

280 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 07:33:07.56 .net]
>>278
長いときはcodepadとかideone使おうぜ・・



281 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 08:19:10.74 .net]
会社から帰ったら考えてみるわ>>278


282 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 14:01:41.90 .net]
>>280
そのような場所があるとは知りませんでした。
次からそうします。

スレ汚しすみませんでした。
あと、/sample/dialogs/dialogs.cppの該当部分を、コピペしただけで複数ファイルの選択と、表示ができました。
意味を調べながら理解していきます。

ありがとうでした。

283 名前:デフォルトの名無しさん [2011/11/09(水) 17:58:05.53 .net]
中学生か
まあがんがれや

284 名前:デフォルトの名無しさん [2011/11/22(火) 02:03:10.37 .net]
ubuntuでwxWidgetsの勉強中なのですが、samplesフォルダ内のサンプルソース(c++)をいくつか実行してみようと思い、付属のmakefile.cpp及びmakefile.unxをmakeコマンドで実行しようとするとコンパイルに失敗します。
端末より
g++ -c foo.cpp `wx-config --cppflags`
という形でコンパイルしてみてもエラーが出ます。

コンパイルに失敗したサンプルソースはlistbox.cppとlisttest.cppです。

なにかコンパイル時に指定しなければいけないファイルなどがあるのでしょうか?
どなたか教えてください

285 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 07:25:11.04 .net]
wxをビルドしてインストした?

286 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 12:20:24.62 .net]
>>284
エラーメッセージ貼ってよね!

287 名前:284 [2011/11/22(火) 16:11:40.78 .net]
>>285
早速の返信ありがとうございます。

僕が変な勘違いをしてない限りwxはインストール済みだと思います。
>>1のリンクにある
wxWindowsで始めるC++ GUIプログラミング
 ttp://www.h3.dion.ne.jp/~k5_n/wxwin/
wxWidgets でクロスプラットフォーム GUIアプリを作ろう
 ttp://0xcc.net/pub/uu-2004-08/
に書かれている簡単なソースや、自分で作った幾つかのソースは動きますので。

>>286
返信ありがとうございます。
今すぐにエラーを貼るのは難しいので、数時間後にまた貼らせて頂きます。

288 名前:284 [2011/11/22(火) 21:45:18.75 .net]
listtestでは、makefile.unxと手打ちのコンパイルでは同じエラーが出ました。
makefile.gccはmakeコマンド自体が失敗していたようなので、環境の違いが原因だと思います。
以下、listtestのmakefile.unxに対するエラーの一部(エラーが167行もあるため省略します。)です。

In file included from listtest.cpp:48:0:
listtest.h:29:34: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.h:96:39: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.h:189:36: エラー: ISO C++ では型の無い ‘wxDECLARE_NO_COPY_CLASS’ の宣言を禁止しています [-fpermissive]
listtest.cpp:73:19: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:35: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:51: エラー: ‘wxIntPtr’ was not declared in this scope
listtest.cpp:73:78: エラー: expression list treated as compound expression in initializer [-fpermissive]
listtest.cpp:74:1: エラー: expected ‘,’ or ‘;’ before ‘{’ token
listtest.cpp: コンストラクタ ‘MyFrame::MyFrame(const wxChar*)’ 内:
listtest.cpp:194:50: エラー: オーバーロードされた ‘wxIcon(const char* const [37])’ の呼び出しは曖昧です
listtest.cpp:194:50: 備考: 候補:
/usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: wxIcon::wxIcon(const wxString&, wxBitmapType, int, int) <near match>
/usr/include/wx-2.8/wx/generic/icon.h:35:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘const wxString&’ へ変換する方法が不明です
/usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: wxIcon::wxIcon(char**, int, int) <near match>
/usr/include/wx-2.8/wx/generic/icon.h:31:5: 備考: 第 1 引数を ‘const char* const [37]’ から ‘char**’ へ変換する方法が不明です
/usr/include/wx-2.8/wx/generic/icon.h:30:5: 備考: wxIcon::wxIcon(const char**, int, int) <near match>

289 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:33:02.64 .net]
サンプルはどこから持ってきたやつなの?
インストールしてるwxWidgetsとサンプルのバージョンは同じ?

そもそもインストールはどうやってしたの?
パッケージから入れたの? それともソースからビルドしたの?

とまあ、気になる点はいろいろですが、
とりあえずパッケージからwxWidgetsの開発環境をインストールして、
同じバージョンのサンプルをコンパイルするのは、
最初に書かれてる方法で普通にできます。

ソースからビルドすれば付属してるサンプルも一緒にコンパイルしてくれるはずです。


290 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:13:32.17 .net]
>>288
そのエラーメッセージは最初の方は含まれてる?
wxのincludeが読み込めてないように思える。includeのエラーが最初にないかい?



291 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 03:07:47.66 .net]
>>288
makefile.gccはMinGW用のMakefileじゃなかったっけ?

make -f <対象のMakefile> でだいたい行けるはず

292 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 03:19:45.38 .net]
そもそもLinuxでwxWidgetsやろうと思ったら

@wxWidgetsのソースダウンロード
A./configure <- 自分が欲しいオプション ->
Bmake && make install
Csamplesフォルダにあるソースコードを「make」コマンドでコンパイル

で終わるはずなんだがなあ

293 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 07:52:23.63 .net]
MinGWでwxWidgetsやろうとしたら面倒すぎて死んだ

294 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:36:30.36 .net]
>>293
大丈夫、慣れたらできる(マゾ)

295 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 15:48:53.79 .net]
>>284
しかもよく見たらコマンド間違えてるな

× g++ -c foo.cpp `wx-config --cppflags`

○ g++ -c foo.cpp `wx-config --libs` `wx-config --cxxflags` -o foo

ライブラリにリンクしてないから実行ファイルができてない可能性が

296 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:59:05.34 .net]
>>293
wxDev-C++
wxdsgn.sourceforge.net/
みたいなのもあるから暇なときに試してみたら?

VC++でやるよりは楽かも…、しれません。

297 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:18:52.26 .net]
devC++は好きで昔から結構使ってるけど
やっぱvc版インストしてvcの統合環境でやったほうがデバッグは楽だよ
使うまではdevCのパッケ導入が楽かも知れんけどw

(最近はc#が色々楽すぎるんでwx自体全然使って無いけど・・・)

298 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 06:38:20.30 .net]
VC++2008EnterpriseEditionでやったらめちゃくちゃ簡単だった


299 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 14:16:50.31 .net]
hosyu

300 名前:284 [2011/11/28(月) 13:24:44.41 .net]
レスの間が開いてすみません。みなさん色々とアドバイスありがとうございます。
>>289
よくわからないうちからいろいろなサイトをまわって色々試してたせいで若干記憶が曖昧で申し訳ないのですが、インストールは確かパッケージから入れたと思います。

サンプルのバージョンが2.9.2なのですが、コンパイルエラーを見る限り、2.8のライブラリを読んでいるみたいなので、安定版と最新版を両方入れてたみたいです。

改めて2.8.12を公式から落としてきて、そのサンプルでコンパイルしてみたらうまくいきましたので、ご指摘の通りサンプルとwxWidgetsのバージョンが違ったみたいです。ありがとうございました。

>>290
エラーメッセージは先頭の部分でした。ありがとうございました。
>>291
そうみたいですね。makefile.unxでうまくいきました。ありがとうございました。
>>295
今まで下記サイトを参考に
0xcc.net/pub/uu-2004-08/

% g++ -c hello.cpp `wx-config --cppflags`
% g++ -o hello hello.o `wx-config --libs`

というようにコンパイルしてたんですけど良くなかったでしょうか。



301 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:19:16.59 .net]
>>300

> 今まで下記サイトを参考に
> 0xcc.net/pub/uu-2004-08/
>
> % g++ -c hello.cpp `wx-config --cppflags`
> % g++ -o hello hello.o `wx-config --libs`
>
> というようにコンパイルしてたんですけど良くなかったでしょうか。

それならOK、コマンド1行でやるか2行でやるかの違い
ただ wx-config --cppflagsとwx-config --libsが何を表しているのか
includeとかlibってどういうものなのかググって意味を考えたほうがいいよ


302 名前:デフォルトの名無しさん [2011/12/05(月) 19:16:58.26 .net]
LinuxでパッケージからwxWidgetsを入れた場合、setup.hはどこにあるのでしょうか?
wxUSE_ACCESSIBILITYを有効にしようと思ってファイル検索したら大量にかかったので幾つか内容を変更してみても有効にならなかったので。


303 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:26:14.75 .net]
パッケージはバイナリしか入ってない、つまりオプションを切り替えるのは不可能では?
ソースからビルドした方がいいと思われ

304 名前:デフォルトの名無しさん [2011/12/05(月) 19:31:56.85 .net]
>>303

ありがとう。ソースから入れなおしてみる。

305 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:45:40.51 .net]
>>302
Linuxでは通常はソースのパッケージが別に用意されてるよ。

ディストリによるけど後ろに-develみたいなのがついたパッケージ
を入れるとソースが入る。

306 名前:デフォルトの名無しさん [2011/12/05(月) 21:19:08.30 .net]
>>305
そのレスを見る前に入れなおしてしまった…教えてもらったのに申し訳ないです。



オプションの切り替えは結局setup.hをいじれば良いのでしょうか?

307 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:34:18.68 .net]
>>306
./configure -h で付けられるオプションが見れるからやってみ、その中にwxUSE_ACCESSIBILITYも入ってるだろう

308 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:38:07.80 .net]
$ ./configure -h | grep accessibility
--enable-accessibility enable accessibility support

あったあった。何に使うのかわからんけどどうぞ。

309 名前:デフォルトの名無しさん [2011/12/06(火) 11:00:02.97 .net]
>>307,308
何から何まですみません。

310 名前:255 mailto:sage [2011/12/06(火) 11:57:28.16 .net]
wxAccessibleってマニュアルに
For details on the semantics of functions and types, please refer to the Microsoft Active Accessibility 1.2 documentation.
とか、
Availability: only available for the wxMSW port.
とかあるけどlinuxで意味あるのか?



311 名前:デフォルトの名無しさん [2011/12/06(火) 14:11:37.79 .net]
>>310
下のサイト
www14.ocn.ne.jp/~bkclass/doc_wxsamples.html
を見て、サンプルのソース実行して勉強してたんですけど、accessっていうサンプルをコンパイルして実行をしようとすると、
"This sample has to be compiled with wxUSE_ACCESSIBILITY"
というメッセージが出たので、
Windowsのみ本体のwxUSE_ACCESSIBILITYを1にする、とは書いてあったんですが、動いてないということはLinuxでも必要なのかと勝手に思い込んでこちらで聞いてみたんですが、やっぱりLinuxでは意味が無いんでしょうか…

312 名前:311 [2011/12/06(火) 14:27:45.09 .net]
度々すみません。
こちらでもマニュアルを確認したら、accessはWindowsのみと書いてありました。
今度からはマニュアルを良く読んで、わからなかったらこちらで聞きたいと思います。
自分自身でもあんまりにゆとりすぎて反省してます…。
みなさん大変ご手数をおかけしました。


313 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:35:36.35 .net]
ほとんどのゆとりにくらべたらまだましなほうだわ

314 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 19:17:24.24 .net]
ゆとりはHSPとかC#に行くだろうからこっちには来ないだろうな
あとC++のGUIライブラリで有名で日本語ドキュメントがあるのはQtとかgtkだろうからさらにやる人は減る
最後にwxWidgetsは英語の知識とC++のオブジェクト指向がわかってないとできないから挫折する人も多いだろう

とゆとりが言ってみる

315 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 20:24:22.32 .net]
wxWidgets > Qt >>> こえられないかべ >>> GTK

316 名前:デフォルトの名無しさん [2011/12/11(日) 22:40:24.44 .net]
wxWidgets > Qt なの?

317 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:37:15.62 .net]
いわゆるビジュアルプログラミング言語は
生産性を改善するという触れ込みでありながら、事実上普及していない

何でかは知らんけど、同じ大きさのモニタに表示できる情報量で
テキストに負けちゃうからっていう説を聞いたことがあるような

318 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 01:32:59.64 .net]
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

319 名前:デフォルトの名無しさん [2011/12/16(金) 06:38:53.32 .net]
下記のページ
docs.wxwidgets.org/2.8/wx_wxcommandevent.html

でwxCommandEventを勉強していたのですが、
GetIntとGetSelectionの違いがよく分かりません。

GetIntは
wxCommandEvent::GetInt
int GetInt()
Returns the integer identifier corresponding to a listbox, choice or radiobox selection (only if the event was a selection, not a deselection), or a boolean value representing the value of a checkbox.

と書いてあり、GetSelectionは
Returns item index for a listbox or choice selection event (not valid for a deselection).

と書いてあるのですが、GetIntの選択されたリストボックスに対応付けられたInt型と言うのはGetSelectionで返される値と何か違うものなのでしょうか?

320 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 13:32:13.51 .net]
ver 2.8.12
include/wx/event.h
538: int GetSelection() const { return m_commandInt; }
554: int GetInt() const { return m_commandInt; }




321 名前:デフォルトの名無しさん [2011/12/22(木) 01:35:21.75 .net]
リストボックスの中に、入れ子でリストボックスを作りたいと思いマニュアルを見て、wxListBoxのメンバ関数であるCreate関数を利用すれば2段階リストが構成できるということまではわかったのですが、Create関数の使い方がいまいちわかりません。

お手数ですが、どなたか使い方を教えていただきませんでしょうか。

322 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 06:52:48.65 .net]
了解

323 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:41:37.88 .net]
wxRegExを使うため、wxregexライブラリをビルドし、成功しました。
しかし、いざプログラムで「wxRegEx」クラスを使おうとすると、「error C2065: 'wxRegEx' : 定義されていない識別子です」というエラーが出て、全く使えません。
思いつく方が居たらお願いします。

OS: Windows 7
wxWidgets: 2.9.1
コンパイラ: Visual C++ 2010 Express

324 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:52:26.42 .net]
>>323
すいません、プリコンパイル済みヘッダを再作成してみたらうまくいきました。
スレ汚しすいません……

325 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:21:01.94 .net]
MinGW勢はいないのか
どいつもこいつもマイクロソフトの犬だな

326 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:55:47.35 .net]
mingwの時点でOSはWindowsなのに
>どいつもこいつもマイクロソフトの犬だな
とか書くのかよw

327 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:50:47.72 .net]
確かにそうだな、ちょっとWindows捨ててくる

328 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:08:42.36 .net]
wxWidgetsはWindows以外はおまけだろ。
Win32のラッパーとしての価値しかないと思っている。

329 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:11:37.68 .net]
>>326
ナイス

330 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 16:12:34.17 .net]
>>328
元々 wxWindows だからなぁ



331 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 17:54:24.54 .net]
migw もなぁ…64bit対応がなぁ…
wxruby とか使いたくても使えないよ

しかしひとはビルドしろという
なんどでもビルドしろという
びるどしろー

332 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:36:14.77 .net]
rubyるど

333 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 08:31:41.01 .net]
MSWでwxListCtrlを使ってみたらDESELECTEDイベントが通知されないバグがあったので
クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら
アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて
もう八方塞がりです
なにこれ馬鹿

334 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 12:00:56.99 .net]
wxLC_VIRTUALの呪い

335 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 13:04:57.85 .net]
そういうのってバグ報告できないのかな?

336 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 21:34:01.11 .net]
馬鹿が使うと馬鹿っぽく振舞います

337 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 11:01:32.77 .net]
明らかに開発陣はWindowsでテストしてないな
昔よりバグが悪化してるwww

338 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 12:10:40.98 .net]
最近wxTreeCtrl使ってるけどイベント通知できんわ
仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな

339 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 16:48:41.14 .net]
できるよ

340 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:07:54.63 .net]
最新バージョンってバグ多いの?
これから使うか悩んでるので教えてださい。



341 名前:338 mailto:sage [2011/12/27(火) 23:00:49.89 .net]
今日ちょっとwxTreeCtrlの全イベント試してみたが、特に問題なかった。環境はMSW(MinGW)

>>340
英語が多くてドキュメントがAPIリファレンスしかないのがある意味バグw
この前wxXMLをHTMLに使ったら一気にバグってワロタ(当たり前だけど)

それさえ超えればいいものだと思います

342 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 23:36:17.73 .net]
自分の無能を環境のせいにすんなやぼけ

343 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 08:03:39.44 .net]
バグとか明らかに仕様とは違う動きをしたりすることは多々あるけど
もともとネイティブAPIをラップしただけだから誤魔化せるかもしれない
結局のところネイティブレベルの知識とwxWidgetsの中身まで調べないといけないので時間はかかる
それでもネイティブコンパイル出来ないC#も嫌だし、MFCよりは遥かにましだけどw
ネイティブレベルのことをしたくてGUIも楽に作りたいって要求に答えてくれるものがないもんな


344 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:34:13.86 .net]
>>341
英語なのはキツイけどほかに良いライブラリも見当たらないし我慢するw

>>343
バグがあるってのはちょっと残念だなぁ
ネイティブレベルの知識もそんなに無いし不安だ・・・
けど、大きなバグじゃないのなら少し使ってみようと思います。

345 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:13:49.10 .net]
649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00

おもしろいことやっているじゃん。誰か今から参加しろよ。

346 名前:本田 [2011/12/31(土) 22:24:08.47 .net]
>>340
www.wxwidgets.org/
wxWidgets 2.9.3 Released
2011-12-14

While this is still officially a development release because some API details are still not frozen,
we believe that 2.9.3 can be used in production environment,
especially for the new projects for which (small) changes in behaviour since 2.8 are not a problem.
Give it a try and let us know what do you think!

347 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 00:03:23.71 .net]
2.8もバグ多い

348 名前:デフォルトの名無しさん [2012/01/01(日) 11:14:18.13 .net]
サイザーage

349 名前: 【大吉】 【683円】 mailto:sage [2012/01/01(日) 12:26:18.78 .net]
今年のおみくじは大吉を良く目にする

350 名前: 【大吉】 mailto:sage [2012/01/01(日) 13:38:44.46 .net]
今年はwx使うことあるかなー



351 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 16:51:15.64 .net]
wxWebViewって縦書きに対応してる?

352 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:29:02.25 .net]
wxTextCtrlの内容を一行ずつ読み込みたいです。
行数を調べるのに以下のやり方でいいのかと考えたのですがエラーがでます。

size_t abc = wxTextCtrl::TextCtrl1.GetNumberOfLines();

コンパイルすると以下のエラーがでます。

C:\Users\x\Desktop\practice\practiceMain.cpp||In member function 'void practiceFrame::OnButton2Click(wxCommandEvent&)':|
C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: 'TextCtrl1' is not a member of 'wxTextCtrl'|

docs.wxwidgets.org/2.9.3/classwx_text_file.html
ここを見るとメンバー関数と書いているようなのですが、何か考え違いをしていると思うのですが・・
教えてください。

353 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 01:32:45.50 .net]
>>352
wxTextCtrlではなくwxTextFileとあるけように思える。
IDE使ったほうがいいんじゃない?

354 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:10:29.44 .net]
>>353
レスありがとうございます。

リンクを間違っていました。 以下を参考にしました。
wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm#wxtextctrlgetnumberoflines

IDEは、CODE::BLOCKS SVN:7550を使用しています。

試しに以下のことをやってみたのですがエラーがでました。
int abc = TextCtrl1.GetNumberOfLines(TextCtrl1);
C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'|
int abc = TextCtrl1.GetNumberOfLines();
C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'|

wxTextCtrl1は、CODE::BLOCKSのGUIの部品を貼り付けています。

355 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 02:31:38.99 .net]
>>354
全体のコード見てないからなんとも言えないが、TextCtrlはprivateとかで宣言しないと外から触れんぞ


Frame.h
private :
wxTextCtrl* m_text;

Frame.cpp

// メソッド内にテキストコントロール配置
m_text = new (.....);

m_text->Hogehoge();

356 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 12:59:53.67 .net]
>>355
レスありがとう。

int abc = TextCtrl1 -> GetNumberOfLines();

と書けば、エラーなくコンパイルできました。

本当にありがとうでした。


357 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 17:12:08.35 .net]
>>356
それじゃあコンパイルできても内部処理書く段階で死にそうなのでアドバイス

第十三回-03 ドット演算子とアロー演算子
brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html

あとこことかも役に立つ

●C++編(言語解説) トップページ
www.geocities.jp/ky_webid/cpp/language/index.html

358 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 21:49:09.86 .net]
>>357
ありがとうございます。
ゆっくり読みます。

359 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:41:25.76 .net]
テキストファイルを読み込む時に、utf-8のファイルの場合はreadして読み込むことができます。
テキストファイルがsjisの場合、次のようなエラーメッセージが表示されます。
[Faild to convert file "z:\test.txt" to unicode

docs.wxwidgets.org/2.9.3/classwx_text_file.html
docs.wxwidgets.org/2.9.3/classwx_conv_auto.html
上記を読むと、wxConvAuto機能を使用すると自動的にコンバートしてくれるように記載されているように見えます。

それで、openするときに、wxConvAuto()を付け加えてみたのですがエラーがでます。
wxConvAutoは付けても、付けなくても同じ現象です。
tfile.Open(file,wxConvAuto());

TextCtrl1->SetValue(str);
に、utf-8のファイルを読み込むと内容が反映されます。
sjisだとオープン時に(本当にオープンするときのエラーかどうかはわかりませんが・・・)上記エラーがでます。
またTextCtrl1にはテキストファイルの内容が反映されません。

どこが悪いか教えてください。


360 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:42:52.53 .net]
すいません、ソースコードは短めなので、こちらに書きます。

wxString file,str,s,number;
wxTextFile tfile;

wxFileDialog fdlog(this,_T("テキスト読み込みファイルの選択"),
wxEmptyString, wxEmptyString, wxEmptyString,
wxFD_OPEN);
if(fdlog.ShowModal() != wxID_OK) return;
{
file.Clear();
file = fdlog.GetPath();
tfile.Open(file,wxConvAuto());
wxLogMessage(_T("オープンできました。"));
str = tfile.GetFirstLine();
s = str;
str += '\n';
while(!tfile.Eof())
{
s= tfile.GetNextLine();
str += s;
str += '\n';
}
TextCtrl1->SetValue(str);
wxLogMessage(_T("読み込み完了しました"));
tfile.Close();

こんな感じです。




361 名前:デフォルトの名無しさん [2012/01/06(金) 16:25:17.96 .net]
wxTextCtrlの中身を印刷したいのですが、どのようにすればいいのかいまいち分かりません。
どこかにwxTextCtrlのアドレスか何かを渡せばよいのでしょうか?教えてください

362 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 18:45:10.90 .net]
>>360
過去スレにもSJIS読み込みについての事例が沢山あるが、wxWidgetsのライブラリによるSJIS→UTF-8の変換は全く期待できない
結論としては「UnicodeビルドしてUTF-8で読み込め」でFAだとおもう

おすすめはlibiconvでUTF-8に変換してからwxWidgets内に読み込む
iconvはwikipediaにもサンプルコードがあるから、使うのは難しくないはず ja.wikipedia.org/wiki/Iconv

>>361
wxWidgets2.9.3のクラスリファレンス見れ、いっぱい使えそうなのあるぞ

wxPrintData
wxPrintDialog
wxPrintDialogData
wxPrinter
wxPrinterDC
wxPrintout
wxPrintPreview

363 名前:361 [2012/01/06(金) 19:18:13.20 .net]
印刷の件ですが、wxPrinterDCにwxTextCtrlの値を渡せばWindowsでは印刷することができました。

しかし、LINUX(ubuntu11.10)環境下では、印刷プレビューを見る限りではうまくいっている様に思えるのですが、実際に印刷してみると(test wordsと言う文字を1部だけ印刷しようとしました。)、
1枚目のプリントに下記のようなエラーが印刷され、その後プリンタが無限に白紙を出しつづけるという不具合が起こりました。

%!PS-Adobe-3.0 %%Creator: Gnome Print Version 2.18.8 %%CreationDate: D:201201061

この不具合は、wxWidgets2.8.12の印刷用のサンプルプログラムprintingの内容を印刷しようとしても起きてしまったので、
参考にしたサンプルその物がどこかおかしいか、こちらの印刷まわりの設定がおかしいかのどちらかだと思うので、とりあえず上記のエラーを調べてみます。


>>362
レスありがとうございます。
一応読んではいたのですが、いまいちよく分からなかったのでここに頼ってしまいました。住みません。

364 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 19:42:20.71 .net]
さっきShift_JISで読み込むのは無理だと言ったがそれは嘘だ(コマンドー風に)

下みたいなテストプログラムで普通にShift_JIS読み込めてワロタ
2.9.3パない

// テキストファイルの読み込み
wxTextFile file(wxT("./Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();

frame->SetStatusText(test);
frame->Show(true);

365 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 21:53:08.88 .net]
>>362>>364
レスありがとうございます。
試しに以下のように入力してコンパイルしてみました。

wxTextFile file(wxT("c:\\Shift_JIS.txt"));
file.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = file.GetFirstLine();

コンパイルすると、下記エラーがでます。
C:\Users\x\Desktop\practice\practiceMain.cpp|154|エラー: no matching function for call to 'wxConvAuto::wxConvAuto(wxFontEncoding)'|

wxwigetsは,2.8.12を使用しています。
コンパイルが通らない原因が、わからにので2.9.3のソースをダウンロードしてコンパイルを試しています。


cドライブ直下に、MinGWとmsysというのを導入後、msys.batで端末?を起動しました。
そこで、./configure --disable-shared --enable-monolithic --enable-unicodeと行い、make make installまでは行いました。
make installした成果物?をwindowsの実行環境にどうもっていくか調べているところです。

何が悪いか手探りなので的外れなことしてるような気もするんですが、これしかできないのでとりあえず2.9.3の環境を作ってみます。

366 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 22:42:42.75 .net]
>>365
やりかたは間違ってないとおもうので頑張って
今ちょっとクラスリファレンス見てたけど

wxTextFileの部分で::Openで取れる引数が2.8から2.9で変わってるみたい

wxWidgets 2.8

bool Open(wxMBConv& conv = wxConvUTF8) const
bool Open(const wxString& strFile, wxMBConv& conv = wxConvUTF8) const

wxWidgets 2.9

bool Open (const wxMBConv &conv=wxConvAuto()) const
bool Open (const wxString &strFile, const wxMBConv &conv=wxConvAuto()) const

OpenメソッドにwxConvAuto()をとれるのが新機能みたい。2.8にはないんだな、これが。

367 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 00:03:23.41 .net]
>>366
わざわざ調べてくれてありがとうございます。

2.8にはない新機能だったんですね。
2.9.3にする励みになりました。

code::blocksで、コンパイル済みのものを入れるだけで1週間くらいかかった記憶があります。
コンパイルなど慣れないことをするので、今回も同じくらい時間かかるかもしれません。

でも2.9.3にする気にになりました。
ありがとうございました。

368 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:02:24.31 .net]
Mingwをcドライブ直下にインストール
PATHに、C:\MinGW\bin;C:\MinGW\mingw32\binを追加
c:\wxWigets-2.9.3を解凍

下記を参考にしました。
wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.8.6_to_develop_Code::Blocks_%28MSW%29
オプションはcode::blocksで使用する場合のofficial supportと書いていたので下記とおりにしています。

コマンドプロンプトで下記実行
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%

code::blocksの設定
settings>Enviroment>Enviromet variables
WSWIN=C:\wxWidgets-2.9.3
settings>Grobal Variable Editor
current varibale:wx
base: ${WXWIN}
include: ${WXWIN}\include
lib: ${WXWIN}\lib

開発環境のコンパイルが初めてで、これでいいのか不安ですが、code::blocks上のプロジェクトのコンパイルが通りました。

369 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:08:31.38 .net]
>>366

wxTextFile gfile(wxT("c:\\Shift_JIS.txt"));
gfile.Open(wxConvAuto(wxFONTENCODING_CP932));
wxString test = gfile.GetFirstLine();


tfile.Open(file,wxConvAuto(wxFONTENCODING_CP932));

二通りのやりかたでコンパイルが正常にできました。

また、sjisのファイルを読みこむこともできました。

ありがとうございました。
助かりました!!!

370 名前:361 [2012/01/09(月) 23:07:32.49 .net]
ubuntuでの印刷の件ですが、使っているプリンタのドライバがよくなかった様で、ドライバを変更したらうまく行きました。

現状、wxTextCtrl内の行が長すぎると用紙からはみ出てしまうので、適切なところで改ページするようにしたいと思っていますので、またもう少し考えてみます。



371 名前:デフォルトの名無しさん [2012/01/11(水) 14:12:14.80 .net]
Linuxで開発したツールを知り合いの古い環境で動くかどうかテストしたら、libc.so.6が見当たらないっていうエラーが出てくるのですが、標準Cライブラリって動的リンクするしか方法はないのでしょうか?
その場合、作った実行ファイルは古い環境では動かないのかな…
一応./configure のオプションは
--with-gtk --enable-std_iostreams --enable-std_string
--enable-controls --disable-shared --enable-unicode --with-libjpeg=builtin
--with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin

にして、プログラムのコンパイルは
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` -static-libgcc -static-libstdc++
g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --static --libs`
の3通りで実行ファイルを作ってそれぞれ試してもらったのですが、どれもlibc.so.6が利用できないというような意味のエラーが出てきます。
また
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
についても試しましたが、コンパイルエラーが大量に(主にライブラリが見当たらないといったようなエラー)が出てきます。
解決方法があるようでしたらご教授お願いします

372 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 18:34:11.40 .net]
>>371
エスパーしてみるわ

一応忠告しとくけどwxWidgetsは「同じソースコードからWin, Linux, Macで使えるバイナリがコンパイルできる」のであって
「LInuxでコンパイルしたバイナリがWindowsで使える」というわけではない。
それができるのはJavaだけ

上の問題ではないとしたら
Linuxでコンパイル→Linuxで使う、はライブラリが揃ってる限りいけるはず。

よって、既に生成している実行ファイルを友人の環境で「ldd <- 対象の実行ファイル ->」して
友人の環境で足りないライブラリを追加する

もしくは友人の環境でwxWidgetsのソースをコンパイルして「wx-config」が正しく使えるようにする。




373 名前:372 mailto:sage [2012/01/11(水) 18:39:33.34 .net]
というかlibc.so.6が足りないだけなら
実行ファイルと同じディレクトリにlibc.so.6を置いて実行すればいける気もする

374 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 20:17:58.74 .net]
>>372
レスありがとうございます。

LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。私も知り合いも環境はLinuxです。
極力ユーザが煩わしくないように、実行ファイル以外のファイルをユーザが別途インストールする必要が無いようにしたいのですが、不可能なのでしょうか?下記サイト
up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html
によると、Javaとは違いランタイムがいらないと書いてありますが限度があるのでしょうか
一応Windows版は同じソースで私の周りの環境では問題なく動いたのですが…

libc.so.6を実行ファイルと同じフォルダにおけ、ということですが、共有ライブラリはlddコマンドで見れるような指定されているアドレスに置かなくても利用可能なのでしょうか?
その方法で動作するかもしれないのでまた試してみます。

375 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 21:04:03.63 .net]
>>374
> LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。

いやわかってないだろ、どう見ても。

376 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 21:12:12.37 .net]
>>375
すみません間違いました。
LinuxでコンパイルしたファイルはLinux以外では使えない、というのはわかっています。です

377 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 00:36:38.89 .net]
>>376
自分の環境でコンパイルするときに正しく-staticオプションつけとけば、依存なしにバイナリを走らせることはできるはず
依存関係が出てるってことはstaticリンクビルドされてないのは間違いないので、そのアプリをちゃんとコンパイルしなおすべきかと


378 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 10:46:49.97 .net]
>>377
レスありがとうございます。

-static-libcというコマンドは存在しないみたいで、どのようにオプションをつければlibcを静的リンクすればいいのか、自分なりに調べてみたのですがよく分からないのでできれば教えていただきたいです。

379 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 12:10:12.07 .net]
>>378
リンク時に「-static」とつければいいです
この意味がわからなければ
gcc,CXXFLAGS,LDFLAGS ,MAKEFILE、リンカとかのキーワードでググってね

380 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 15:19:19.22 .net]
>>379
g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs`
でコンパイルしていたのですが、下記のようなエラー(長いので前半部分だけです。ごめんなさい。)が出るのですが、./configureのオプションか何かが足りないのでしょうか…

/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/local/lib/libwx_baseu-2.8.a(baselib_dlunix.o): In function `wxDynamicLibrary::GetProgramHandle()':
dlunix.cpp:(.text+0x13): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `lookup_gid_name':
(.text+0x1a5c): warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/local/lib/libwx_baseu-2.8.a(baselib_utilsunx.o): In function `wxGetUserHome(wxString const&)':
utilsunx.cpp:(.text+0x14f5): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
utilsunx.cpp:(.text+0x157a): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe2a): warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do':
(.text+0xe40): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking





381 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:33:37.54 .net]
>>380
どこまで甘えてんだよ
少しは自分で調べてください・・・少しはソースを見やがれ

まず1行目
-lgdk_pixbuf-2.0

こいつの意味は「libgdk_pixbuf-2.0.a」という名前のライブラリをリンクするという意味
調べたらGNOMEプロジェクトの1つみたいだな
ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/

まあこいつはyumでもapt-getでもなんでもいいからインストールすればいいだろ
インストール後に /usr/lib 直下に上で書いたライブラリがあればコンパイルは通るはず

2行目より後は警告だから無視してもいいのかもしれないが、意味としては
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」
「警告:コンパイルに使っとるglibcがシェアードライブラリじゃねーか、スタティックライブラリでリンクしろよクソ野郎」

という感じですか、間違ってたらすまん。頑張ってgdk-pixbufとwxとglibのライブラリを手に入れてください(もちろんスタティックライブラリで)

382 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:42:52.46 .net]
あ、でも
「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」系のエラーは
スタティックライブラリを使っても出ることがあるみたいだな。
つーことは一番の目標はgdk-pixbufをインストールすることか。簡単じゃん。

383 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 19:03:01.17 .net]
ここまでおまえの自演

384 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 20:59:28.67 .net]
>>381
後から見返してみると私の状況説明がたりないため、自業自得ですが、
どこまで甘えてんだよと言われましても>>379までの-staticオプションをつけてコンパイルする、というのは>>371ですでにためしたと説明したつもりだったのですが、すみません。

一応こちらでもできる限りのことを調べて、ソースも読んでから書き込んだつもりですが、調べたことをかけてなかったら確かに意味がありませんね。

一応libgdk-pixbuf-2.0.0、libgdk-pixbuf-2.0.dvg はインストール済みで、wxWidgetsはもちろん入れています。glibやlibcもapt-cache searchを使って目についた関連がありそうなものをインストールしまくって、コンパイルした結果上記のエラーが出ています。
また、libc.aと言うファイルを5時間ほど探しつづけましたが見当たらず、また、下記のリンクの一番下の回答者の
Check your Output mode settings, I believe you have linking set to "static". So the linker is looking for libgdk-pixbuf-2.0.a, which is probably not present. If you switch it to "shared" it should begin to work..

www.ultimatepp.org/forum/index.php?t=rview&goto=34857&th=6160

をみると、私の英語力ではlibgdk-pixbuf-2.0.0はstaticで出力できないと読めるため、八方塞がりとなり、ここで聞いた次第です。
気分を悪くしてしまってすみません。

>>383
自演ではないです。

385 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 21:16:37.55 .net]
>>384
お前さんが知り合いの古い環境と同じ環境作って、
その環境でwxWidgetsとそのツールビルドすればええやん

386 名前:381 mailto:sage [2012/01/12(木) 21:32:18.61 .net]
>>384
なんか思ったより込み入った問題みたいだな、キツイこと言ったかもしれないけど冗談だと思って聞き流してくだされ

ちょっとググッたけどlibgdk-pixbuf-2.0.0のスタティックライブラリが生成できないのはバグみたいだぞ
そして2番目のリンクではパッチとかも出てる
askubuntu.com/questions/7990/what-can-i-do-about-missing-libgdk-pixbuf-2-0-la
https://bugs.launchpad.net/ubuntu/+source/gtkglextmm/+bug/662572

で、対策としては gdk-pixbufのソースをとってきて
./configure --enable-static でいけるんではないかと思う(./configure -h したら一応あったけどこれは試した?)


387 名前:381 mailto:sage [2012/01/12(木) 23:04:21.77 .net]
gdk-pixbuf-2.21.3にて
./configure --enable-static
make
make install

できた。めんどくせえ。

388 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:23:27.63 .net]
wx関係ない問題なのに面倒見いいな……

389 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 23:24:18.71 .net]
自演ですから

390 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 00:05:23.76 .net]
>>385
レスありがとうございます
すみません。また書き方が悪かったですね。
知り合いの環境で動かしたのは、Linuxの環境で作成したバイナリファイルを、Linuxの他の環境で動くかどうかを確かめるためでしたので、知り合いの環境だけで動いても目的を果たせないんです。
linux環境すべてで動かせるとは思ってはいないのですが、せめて、多少のバージョン違いは克服したい、と思いまして。

>>386
レスありがとうございます
いえ、こちらが勝手に謝ってるだけだと思ってください。
そもそも自力で解決できないのが悪いんですし。
そしてまさかそこまで調べていただけるとは思いませんでした。
本当にありがとうございます。
パッチを試してみて、また報告します。
こちらのwxWidgetsのバージョンは2.8.12と2.9.3があるのですが、--enable-staticというオプションが確認できないので、調べてみます。
そしてちゃんと調べればきちんとパッチなども出てきたのですね…
これからはもっとよく調べてから書き込むことにします。



391 名前:381 mailto:sage [2012/01/13(金) 00:44:46.25 .net]
>>388
wxはgtkもラップしてますしおすし

>>390
質問に答えるついででビルドしてみただけだよん

392 名前:371 mailto:sage [2012/01/13(金) 02:21:19.65 .net]
>>388
ここでするべき質問ではなかったでしょうか…それ以前にちゃんと隅々まで調べておくべきでしたね

>>391
--enable-staticはgdk-pixbufの方のオプションでしたね。勘違いしました。
無事に静的ライブラリでリンクすることができました。本当に有難うございました。


しかし本当に見返すとひどいですね。半年ROMって出直すことにします。

393 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 01:29:32.09 .net]
過疎ってんのかと思ったら割と繁盛してた

XRCでローカライゼーション機能(wxLocale)に対応してるみたいですが、普通にXRC中に文字列書いておけば
コンバートしてくれるのでしょうか?
自分で試せって?そうですね、すいません

久々に何か書いてみたかっただけです(^0^)

394 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 14:29:53.54 .net]
2.8.12をソースからコンパイルしました。
>>368が間違っているかどうかわからないのですが、今のコンパイル環境を書きます。
CODE::BLOCKSを使用する前提なので、CODE::BLOCKSスレかと思ったのですが、
ここで質問させてもらっていたのでここに書きます。
windows 7 64bit/32bit共にmingwだと、2.8.12はコンパイルが行えなかったです。
mingwだとコンパイルできなかったので、tdm-gcc tdm-gcc-4.6.1をインストールしました。
tdm-gcc-4.6.1は、setupの時に32bitを選択しています。
ttp://forums.codeblocks.org/index.php/topic,15283.msg102557.html#msg102557

PATHにC:\MinGW32\bin;C:\MinGW32\mingw32\binを追加。

DOSプロンプトで以下を実行。(2.9.3)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.9.3\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir%
(2.8.12)
C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean
c:\wxWidgets-2.8.12\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport"
c:\wxWidgets-2.8.12\lib\gcc_dll>copy *.dll %windir%

395 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 14:41:08.38 .net]
何が間違っているのか教えてください。
wxWigets2.9.3を使用しています。
docs.wxwidgets.org/trunk/group__group__funcmacro__file.html#ga599c484cd4deea8fed7275a9a7e0a11c
ここを参考にしました。
wxRenameFile(_T("z:\\test.txt"),_T("z:\\test2.txt"));
コンパイル後、実行すると Failed to copy the file 'z:\test.txt' to 'z:\test2.txt' (error 2: 指定されたファイルが見つかりません。と表示されます。
zドライブ上には、test.txtファイルはあります。

試しに、下記を試すと実行できました。
  wxMkdir(_T("Z:\\T"));
wxMkdir(_T("Z:\\T"));

と実行すると、ディレクトリの作成と削除はできました。
2.9.3が開発版だからなにか問題があるかと思い、2.8.12を入れてみたのですが同じ現象です。

多分書き方が悪いんだと思うのですが、どこがわるいのかわかりません。

教えてください。





396 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 14:50:42.64 .net]
馬鹿には無理

397 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:44:45.10 .net]
>>395
テキストファイルが読み取り専用になってたりしない?

398 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 16:01:13.12 .net]
>>397
レスありがとうございます。
読み込み専用ではなかったのですが、windowsの拡張子を表示する設定にしていませんでした。
拡張子を表示する設定にしたところ、test.txt.txtになっていました。
すみません、初歩的な事を数日見逃していました。

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


399 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 16:41:41.95 .net]
わろす

400 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:21:10.87 .net]
なんか若い子がいっぱい来た感じ

>>396
これはスクリプトなのかしら



401 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:24:47.81 .net]
>>394
エラーログを貼らないとどんなハッカーでも原因はわからんですよ^^;
そもそもCode::Blocksはビルドする必要ないような?初心者はバイナリバージョンをダウンロードすればいいと思うよ。
もしCode::Blocksの翻訳とかやってる方だったら全力支援しますが

402 名前:401 mailto:sage [2012/01/18(水) 18:27:55.92 .net]
ごめん>>401は忘れてください。ただの報告だったんですね・・・
またエラーかと思った


403 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:46:20.39 .net]
わろす

404 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:48:49.88 .net]
wxWidgets2.9.3を使用しています。
下記リンクを参考にしました。
docs.wxwidgets.org/trunk/classwx_string.html#a55b90a900c24e9555760265170dc051c

文字列の中に特定の文字が複数回出た場合の検索を行いたいです。

.find()この中に、aとか、txtとか入れると、最初の桁数だけ検索できます。
たとえば、[t]と入力すると、文字列の中に4回でてきますが、一個目のものしか検索されません。
また、[猫]や[犬]などを入力すると、ループの処理に入らずすぐに終了します。
[あ] を入力すると、1回ループ処理に入っているますが、検索結果に0が帰ってきます。

コードは以下のようになっています。

//wxString gpath C:\Users\x\Desktop\practice\猫犬象aAbB猫猫猫犬犬あいう.txt
    wxString bb,cc,dd;
size_t pos=0;
if((pos=::gpath.find(("猫"),pos))!= wxString::npos)
{
wxMessageBox(_T("ループ 処理開始"));
pos = ::gpath.find("猫",pos);
cc.Printf(_T("%d"),pos);
dd += cc;
dd += "\n";
pos + 1;
wxMessageBox(_T("ループ 判定処理に戻る"));
}
readpos -> SetValue(dd);
wxMessageBox(_T("終了"));

文法?など、何が間違っているか教えてください。

405 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:59:25.48 .net]
>>404
wxString gpath = L"C:\\Users\\x\\Desktop\\practice\\猫犬象aAbB猫猫猫犬犬あいう.txt";
wxString word = L"猫";
wxString result;
size_t pos = 0;
wxMessageBox(_T("ループ 処理開始"));
while ((pos = gpath.find(word, pos)) != wxString::npos) {
result += wxString::Format(L"%d\n", pos);
pos += word.size();
wxMessageBox(_T("ループ 判定処理に戻る"));
}
OutputDebugStringW(result.c_str());

pos + 1はpos += 1のタイポだと好意的に解釈するにせよ、それでも
「何故1なのか」が理解できてないのはちょっとまずい。
ifとwhileの区別が付いてないのもかなり厳しい。
charとwchar_tの違いについてとか、
1. (pos = gpath.find(word, pos)) != wxString::npos
2. pos = gpath.find(word, pos) != wxString::npos
は全く意味が違う、とか。
wxWidgets以前に、まず基本的な文法を押さえることから始めた方がいいと思う。


406 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:28:04.42 .net]
>>404
レスありがとうございます。

>>ifとwhileの区別が付いてないのもかなり厳しい。
理由がわからないので、whileとifを書き直してテストしてました。
これは、コピペを修正するのを忘れていました。 
ただ、最初はforで試したのですが、まったくだめでwhileやifなどを試してみました。
ただ理解してないのは間違いないです。

>>pos + 1はpos += 1のタイポだと好意的に解釈するにせよ
検索後、ひとつ右の文字から再度検索したかったので +1 にしたのでタイプミスではありませんでした。
+=でないとだめとのことなので、考え方が間違っているのですね。
見直します。

>>charとwchar_tの違いについてとか、
charがabとか半角文字で、wcar_tが2バイト文字が許されると漠然と認識しています。
ユニコードビルドなので、wxStringを使用した場合すべて2バイト文字が許されると認識していましたが、
なんか違うようですね。
wxString word = L"猫”;
wxString::Format
など、知らないものがでてきたので、これも調べます。

ありがとうございました。

407 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 03:10:53.18 .net]
VCでもmingwでも pos + 1; に対してはWarning出すから、
ちゃんとWarningは読んで意味を理解しよう。
VC使ってるならステップ実行も使おう。

>charがabとか半角文字で、wcar_tが2バイト文字が許される
L""を知らなかった、ということはたぶん間違った理解をしてる。
まずはstring, wstringを使って両者についての理解を深めた方が良いかも。
ちなみにVCとmingwでwchar_tの定義は異なるので、それに気付かず両者を混同して
テストすると理解が深まるどころか発狂しそうになるので要注意。

知らないことが出てきたらまず自分で調べる、というのは正しい姿勢だし、
これからも是非継続してもらいたいけれども、この辺はもう完全にスレチなので、
c++初心者スレとかで聞いた方がいいと思う。
まあ頑張ってくれ。

408 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:41:58.22 .net]
TDM-GCC 32bit wxWidgets2.9.3を使用しています。
docs.wxwidgets.org/2.9.3/classwx_reg_ex.htmlを参考にしました。
2ch.ac.la/read.php/tech/1268979408/955 を参考にしました。
wxRegExの機能を使用したいです。

[ももも]猫[]け[2.5]犬象()aA b  B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt
という文字列から正規表現で文字を検索の仕方を調べています。
試しに\[...\]と正規表現をいれて実行したところ[ももも]というのは検索できました。

もうひとつ[2.5]というのも検索されているはずかなと思うのですが、とうやればいいかがよくわかりません。

以下のコードで、\[...\]で[ももも]は検索できました。

wxString search (L"\[...\]")
wxString text; (L"[ももも]猫[]け[2.5]犬象()aA b  B(2012年01月24日)猫猫__@(H23)_猫(わんわん)犬犬あいう.txt"
wxRegEx cktext(search);
wxString result;
if(cktext.Compile(search,wxRE_EXTENDED) == TRUE)
if( cktext.Matches(text,wxRE_NOTBOL))
result += cktext.GetMatch(text,count);

で、2件以上ヒットする場合はループにする必要があるかと次のようにしてみました。

409 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 23:49:55.81 .net]
if(cktext.Compile(search,wxRE_EXTENDED) == TRUE)
{
wxMessageBox(L"正規表現です。");
if( cktext.Matches(text,wxRE_NOTBOL))
{
wxMessageBox(L"マッチ処理に入りました");
count = cktext.GetMatchCount();
wxMessageBox(wxString::Format("%d",count));
for (size_t i=0 ; i < count ; count--)
{
wxMessageBox(L"マッチループ処理に入りました");
result += cktext.GetMatch(text,count);
wxMessageBox(L"いったんすとっぷ1");
results -> SetValue(result);
wxMessageBox(L"いったんすとっぷ2");
}
results -> SetValue(result);
} else {
wxMessageBox(L"マッチ処理にヒットしませんでした。");
}
} else {
wxMessageBox(L"正規表現ではありません。");
}
実行しますと、「マッチループ処理に入りました」メッセージの後に、
faild in GetMatch() invalid match indexと表示されます。
wxMessageBox(wxString::Format("%d",count));
ここで1が帰ってくるのですくなくとも1件はヒットしていると思うのですが・・・・

考え方や、ソースのどこが間違っているのか教えてください。

410 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 00:46:43.23 .net]
>>409
詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
バグってる長いコードなんて誰も読みたくはない。

一応ヒントになりそうなコードは書いたが、
今回も残念ながらwxWidgets以前の問題だ。
正規表現に関してちゃんと勉強してくれ。

wxString regexText(L"\\[...\\](.)");
wxString text(L"[ももも]猫[]け[2.5]");
wxRegEx rx;
rx.Compile(regexText, wxRE_EXTENDED);

if (rx.Matches(text, wxRE_NOTBOL)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}
}




411 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 02:34:29.06 .net]
>>410
レスありがとうございます。

>詰まったら詰まった現象を再現できる可能な限り短いコードを晒してくれ。
>バグってる長いコードなんて誰も読みたくはない。
次からそのように心がけます。

>今回も残念ながらwxWidgets以前の問題だ。
>正規表現に関してちゃんと勉強してくれ。

もう一度、正規表現のコンテンツを読みます。

コードを書いてくれてありがとうございます。
参考にします。

しばらく時間がかかりそうですが、うまくいきましたら報告にきます。
ありがとうございました。

412 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 12:24:05.07 .net]
>>409
> for (size_t i=0 ; i < count ; count--)
count-- っておま


413 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:41:55.82 .net]
>>412
--ってあまりよくないようなので、i++に変更しました。

wxString regexText(L".?");
wxString text(L"abc123");
wxRegEx rx;
rx.Compile(regexText,wxRE_ADVANCED);
if (rx.IsValid()==TRUE)
{
if (rx.Matches(text)) {
int n = rx.GetMatchCount();
for (int i = 0; i < n; ++i) {
wxMessageBox(rx.GetMatch(text, i));
}}}

上記コードでコンパイルしたところ、faild in GetMatch() invalid match indexというのはでなくなりました。
((count--)と実行していた行で、エラーが発生していました。)

最短一致 .?を期待しています。 このソースだとaだけが表示されて、forを抜けてしまいます。
.?なので、全ての文字の1文字か0文字で、一文字が検索されると認識しています。

私の認識では、6回メッセージが表示されると思っているのですが、この考えは間違っているのでしょうか?
a,b,c,1,2,3と 一文字ずつメッセージが表示されると思っているのですが・・・

それとも正規表現の場合、一つの文字列から検索する場合には一回のみしか検索しないのでしょうか?
ただ、GetMatchCountでヒットした回数と内容を覚えているような気もします・・・

正規表現もこれであっているかの自信もないのですが、どこに間違えがありますか?
教えてください。

414 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:27:28.32 .net]
>正規表現の場合、一つの文字列から検索する場合には一回のみしか検索しないのでしょうか?
その通り。
むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。

>GetMatchCountでヒットした回数と内容を覚えているような気もします
覚えてない。
1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。

>正規表現もこれであっているか
あってる。

415 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 12:58:33.95 .net]
>>414
レスありがとうございます。

>むしろ前回の状態を記憶するとどうして思ったのかがよくわからない。
www.adras.com/RegEx.t11993-147-1.html
このようなページを時々見かけまして、一回の検索で、reEmail.GetMatch(email, 1);のように複数
書いているので、見つかったものは全部読めると思っていました。

>覚えてない。
>1が返ってきたなら「この正規表現にマッチした集合は1つ」という意味しかない。
なるほど、一つしか見つかっていないのですね。

>あってる。
了解です。

疑問なのですが、"(raw)(H24.2.4)北海道で撮影しました。"
という文字列を正規表現で検索した場合に、"北海道で撮影しました。"という文字列に
変換したい場合には、wxRegExを使用する場合には、以下の流れになるのでしょうか?

1・ \(.*?\)で、上記文章を最短一致で検索
2・ (raw)が検索にかかるので、これを削除。
3・ 削除後の文字列"(H24.2.4)北海道で撮影しました。"を新規で、wxStringに格納。
4・ \(.*?\)で再度最短一で検索。
5・ (H24.2.4)が検索にかかるので、これを削除。
6・ 削除後の文字列"北海道で撮影しました。"を新規で、wxStringに格納。

wxRegExで最短一致で検索した場合に複数一致する場合があった場合。
マッチした部分の削除・置き換えを行いたい場合はこのような流れにするしかないのでしょうか?
教えてください。

416 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 13:59:31.73 .net]
スレ違い

417 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 16:35:13.66 .net]
>正規表現
スレチだから詳しく書く気はない。

"北.+で.+た"
文字コードの問題はあるが、この正規表現は
"北海道で撮影しました"にも"北陸で撮影しました"にもマッチする。で、
"(北.+)で.+た"
とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
部分集合としてキャプチャされる。

>wxRegExのお話
GetMatchでindexを指定すると、0番目にマッチした全体が入り、
1番目以降はこの部分集合が順に入る。
例だとGetMatch(text, 1)で「北陸」か「北海道」が返ってくる。
たぶんその辺を理解してないんだろうなぁと思ったので
410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・


>()で囲まれた部分を消去したい
wxString text(L"(raw)(H24.2.4)北海道で撮影しました。");
wxRegEx rx(L"\\(.*?\\)", wxRE_ADVANCED);
rx.ReplaceAll(&text, L"");
wxMessageBox(text);


418 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 01:18:16.61 .net]
>>416 417
>スレチだから詳しく書く気はない。
すいません。

>とすると、全体がマッチした上で、北で始まり「で」で終わる文字列が
>部分集合としてキャプチャされる。

キャプチャという用語を知りませんでした。
正規表現に関して、コンテンツよんでいたつもりのようでした。
で、gogleで調べたところたくさん記載しているサイトがありました。

>たぶんその辺を理解してないんだろうなぁと思ったので
>410で "\\[...\\](.)" ってわざわざキャプチャ入れたサンプルにしたのに・・・
一度だけ、その正規表現で検索したときに、マッチカウント2回表示されました。
で、エラーもでなくなったので、コードが正常なのでそういう風になっているのかと
軽く考えていました。

本来は自分で考えることだと思いますが、消去したいコードを書いてくれてありがとうございます。

正規表現の書き方を完全に理解しないとやりたいことができませんので、一旦正規表現をしばらく調べます。
キャプチャ・・・かなりすっきりしました。

本当にありがとうございました。

419 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 17:29:11.83 .net]
最新の2.8を使ってるが勝手にメモリリークしていくな
しかもデバッグDLLがコンパイルすら出来ないからテスト出来ないし
中身を作り替えたとか言ってたがものすごい劣化してるな

420 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:19:16.26 .net]
GlassFishの質問てここでいいのかな。



421 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 03:27:42.33 .net]
no

422 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 10:54:20.81 .net]
>>246
>なんでいつも質問した後は簡単に見つかるんだろう…
安心しろ
それはRubber Duckingと言って有名なテクニックだ
www.aoky.net/articles/john_graham_cumming/talking_to_porgy.htm

423 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 06:42:47.35 .net]
wxPythonで使える俺俺モジュールの作り方を教えてくだされ

424 名前:デフォルトの名無しさん [2012/03/23(金) 11:08:49.75 .net]
サイザーage

425 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 11:24:00.67 .net]


426 名前:デフォルトの名無しさん [2012/04/30(月) 23:02:22.27 .net]
hoshu

427 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:39:02.10 .net]
wxFormBuilderで出力したコードで日本語が文字化けすると思ったら
BOMなしUTF8とVSの問題だった

428 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:47:34.43 .net]
Windows, Linux環境で使えるアプリを作っているのだが
Windowsの場合はバイナリを配布すればいい
Linuxの場合はソース互換だからソースを配布するべきなんだよな?

429 名前:428 mailto:sage [2012/05/19(土) 11:51:05.86 .net]
あとwx2.9をFedora15 x86_64でビルドしてインストールしたんだが
なぜか実行時にwxCSConvでコケる。同じ症状の方おまへんか〜?
この現象はwx2.8では起きてない。

(gdb) backtrace
#0 0x000000000079c785 in wxCSConv::DoCreate() const ()
#1 0x000000000079d7bd in wxCSConv::wxCSConv(wxFontEncoding) ()
#2 0x000000000079dacd in wxGet_wxConvLocalPtr() ()
#3 0x00007ffff3a79018 in _GLOBAL__sub_I_strconv.cpp () from /usr/local/lib/libwx_baseu-2.9.so.3
#4 0x0000003c4400e2b6 in call_init.part.0 () from /lib64/ld-linux-x86-64.so.2
#5 0x0000003c4400e393 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#6 0x0000003c440016ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#7 0x0000000000000001 in ?? ()
#8 0x00007fffffffe815 in ?? ()
#9 0x0000000000000000 in ?? ()

430 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 22:49:56.47 .net]
EVT_CLOSE に対して Close(True) しても終了出来ません



431 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 07:17:22.37 .net]
cametan-001.tumblr.com/post/5864304659/wxpython

432 名前:デフォルトの名無しさん [2012/07/04(水) 17:16:02.11 .net]
ほす
ttp://www.youtube.com/watch?v=8v52QIP4L9Y


433 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 16:29:10.99 .net]
mikunchu.wiki.fc2.com/wiki/%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%83%98%E3%83%AB%E3%83%91%EF%BC%86%E4%B8%80%E6%8B%AC%E5%B0%8E%E5%85%A5%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88

434 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 16:30:39.73 .net]
wxWidgetsでShift_JISからUTF-8変換
ttp://nantonaku-shiawase.hatenablog.com/entry/2012/05/16/031005

wxNotebookとwxAuiNotebookの違い
ttp://nantonaku-shiawase.hatenablog.com/entry/20120211/1328967345


435 名前:デフォルトの名無しさん mailto:sage [2012/07/08(日) 23:42:42.45 .net]
>>430
EVT_CLOSEのハンドラの処理では終了処理した後event.Skip(false);
Closeを呼ぶとまたハンドラが呼ばれる

436 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 07:12:24.08 .net]
wxpython.org/docs/api/wx.CloseEvent-class.html
You should check whether the application is forcing the deletion of the window
using CanVeto(). If it returns False, you must destroy the window using wx.Window.Destroy.
If the return value is True, it is up to you whether you respond by destroying the window or not.
For example you may wish to display a message dialog prompting to save files or to cancel the close.

437 名前:デフォルトの名無しさん mailto:sage [2012/07/13(金) 19:00:38.12 .net]
ソースに
  const char sjis[3] = {0x88, 0xa2, 0x00};
  wxString s(sjis, wxCSConv(wxT("CP932")));
  cout << s.mb_str(wxConvUTF8) << endl;
という部分があるとリンク時に下のようなエラーになります。

"hoge.sln" (Rebuild target) (1) ->
(hoge:Rebuild target) ->
  hoge.obj : error LNK2001: 外部シンボル ""class wxMBConvUTF8 & wxConvUTF8" (
?wxConvUTF8@@3AAVwxMBConvUTF8@@A)" は未解決です。
  hoge.obj : error LNK2001: 外部シンボル ""public: static unsigned int const
wxStringBase::npos" (?npos@wxStringBase@@2IB)" は未解決です。
  ..\hoge.exe : fatal error LNK1120: 外部参照 2 が未解決です。

何が足りないのでしょう?


438 名前:デフォルトの名無しさん mailto:sage [2012/07/13(金) 20:37:03.69 .net]
ヘッダファイルの読み込みかライブラリのリンクを行ってない

VC++なんて捨ててMinGWでやろうぜ!
MinGW + EclipseCDTで環境用意すればいい

439 名前:デフォルトの名無しさん mailto:sage [2012/07/13(金) 20:49:50.67 .net]
どのライブラリが足りないのか判らないんで
どのライブラリに含まれているかを教えろ

440 名前:デフォルトの名無しさん mailto:sage [2012/07/13(金) 21:49:44.49 .net]
>103-

ttp://diary.imou.to/~AoiMoe/2004.09/middle.html#2004.09.13



441 名前:デフォルトの名無しさん mailto:sage [2012/07/14(土) 23:52:18.18 .net]
c++とwxWidgetsを勉強中です。
わからないことがあるので教えていただけませんか。

void functestFrame::OnButton2Click(wxCommandEvent& event)
{
wxString str1 = L"まっぎょ";
functestFrame::wxStringfunc(&str1);
}
void functestFrame::wxStringfunc(wxString* str)
{ wxMessageBox(*str);}

4-10はコンパイルと実行できました。

void functestFrame::OnButton3Click(wxCommandEvent& event)
{
wxArrayString temp1;
temp1.Add(wxT("ぽけもん"));
functestFrame::wxArrayStringfunc(&temp1);
}
void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
for (int i=0 ; i< *arraystring.GetCount() ; i++)
{*arraystring.Item(i);}
}
コンパイルエラーがでます。
C:\Users\x\Desktop\functest\functestMain.cpp||In member function 'void functestFrame::wxArrayStringfunc(wxArrayString*)':|
C:\Users\x\Desktop\functest\functestMain.cpp|169|error: request for member 'GetCount' in 'arraystring', which is of non-class type 'wxArrayString*'|
C:\Users\x\Desktop\functest\functestMain.cpp|170|error: request for member 'Item' in 'arraystring', which is of non-class type 'wxArrayString*'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|

wxstringと同じ方法をしているつもりなのですが、どのようにすればコンパイルができるのでしょうか?

442 名前:デフォルトの名無しさん mailto:sage [2012/07/15(日) 11:07:19.04 .net]
>>441
ちょっとしたコードを書いてみた
pastebin.com/KCE8eyDe

コンパイルが通らない原因

wxArrayStringの通常変数とポインタ変数の違いがわかっていない
C++では実体に対しては「.」でアクセス、ポインタ変数に対しては「->」アロー演算子でアクセスする
参考:brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html

× arraystring.GetCount();
○ arraystring->GetCount();


あと関数の入り口で「wxArrayString *arraystring」と宣言されているならば
その関数内部では「*arraystring」ではなく「arraystring」でアクセスする
「*」をつけてしまうと「arraystring」のポインタのポインタになってしまう

void functestFrame::wxArrayStringfunc(wxArrayString *arraystring)
{
  for (int i=0 ; i< *arraystring.GetCount() ; i++)
   {*arraystring.Item(i);}                   ← ここもいまいち何をしようとしてるかわからん
}

443 名前:デフォルトの名無しさん mailto:sage [2012/07/15(日) 11:14:03.55 .net]
あと細かいことを言うと文字列の宣言を以下のようにしているようだが

wxString str1 = L"まっぎょ";

せっかく用意されているので「wxT」マクロを使った方がいい

wxString str1 = wxT("まっぎょ");

これでどのような環境でも日本語が変数に入れられるはず

444 名前:デフォルトの名無しさん mailto:sage [2012/07/15(日) 21:32:47.77 .net]
>>442
ありがとうございます。
サンプルをコンパイルして、実行できました。

通常変数と、ポインタ変数ですか。
リンク先を読んで理解します。

すみません、あと一点教えてください。

wxStringは、通常変数? wxArrayStringは、ポインタ変数?を利用しているというころでしょうか?

下記マニュアルをどのように調べればよいのでしょうか?
wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htm
wxwindowsjp.sourceforge.jp/docs/html/wx/wx32.htm



445 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 05:30:47.00 .net]
>>444
>wxStringは、通常変数? wxArrayStringは、ポインタ変数?を利用しているというころでしょうか?

C/C++ではクラスや変数の宣言時に実体を宣言するかポインタで宣言するか決められるので
その質問はそもそもちょっとポイントがずれている

【ポインタ】
例えば
wxButton *btn1 = new wxButton(panel, wxID_BUTTON1, wxT("ボタン1"));

はwxButtonクラスをポインタ変数で宣言している
*btn1内のクラスメソッドをいじるには「*btn1->GetLabel();」と書く必要がありますよ、と
普通は大きなクラスはポインタ変数でインスタンスを作って宣言したほうが良い

【実体】
wxString myTestStr;
myTestStr = wxT("テスト文字列");
myTestStr.IsEmpty();  ← 空文字であるかどうか調べてる

>下記マニュアルをどのように調べればよいのでしょうか?

もうお気づきかもしれないが
wxwindowsjp.sourceforge.jp/docs/html/wx/wx368.htmに載っているのは
wxStringという「クラス」についてのリファレンス
wxString::Hogehoge のように「::」がくっついた後半部分がそのクラスが使用出来るメソッド(関数)

myTestStr.IsEmpty();  ← wxStringのIsEmptyというメソッドをつかっている

自分が欲しい機能をクラスリファレンスで探し、クラスを宣言してどのように使えるかは
メソッド部分を見れば良いということ。

446 名前:デフォルトの名無しさん [2012/07/16(月) 07:23:17.68 .net]
DLLよりもstaticの方が配布サイズ小さくなるな

447 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 10:56:52.47 .net]
逆でわ?

448 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 11:06:12.02 .net]
DLLリンクで作るともちろんexeは小さくなるけど
DLLも一緒に配布するとなるとでかくなるって意味

449 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 11:08:34.14 .net]
そりゃあんたのプログラムの規模が小さいだけでわ?

450 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 11:12:44.68 .net]
いや先入観無しで聞いてくれ
最初はそう思ってたんだが
確かにDLLリンクで作るとexeはめっちゃ小さい
しかし実際そこそこの規模のプログラム書いて
staticで作ってみて出来たexeが
(前者のexeに必要なDLLを合わせたサイズに比べると)
意外と小さい



451 名前:デフォルトの名無しさん [2012/07/16(月) 11:15:19.52 .net]
exe だけ配布汁!

452 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 11:22:57.42 .net]
そりゃDLLはwxWidgets全部入りだしな

453 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 12:51:54.82 .net]
規模によるとしか言いようがない

454 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 12:57:22.32 .net]
MFC 最強ですねわかります

455 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 13:25:13.34 .net]
DLLはwxWidgetsのシンボル全部入ってるけど、
staticリンクだと本体が使うシンボルだけ.aから
引っ張ってくるんだから、そうなるのは当たり前

456 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 14:12:18.33 .net]
規模によるとしか言いようがない

457 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 14:13:00.02 .net]
DLL ってなんのためにあるんだっけ?

458 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 14:13:47.36 .net]
ワロタ

459 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 14:34:56.55 .net]
wxWidgetsで作ったexeが一個(あるいは少数)しかないときはそうなるのは当たり前。
DLLのメリットが生きるのはOS等のようにexeが無数にあってさらに共通部分(API)が多い場合。
趣味でやってるならSTATICでいいんじゃね?

460 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 14:56:37.82 .net]
めずらしくwxWidgetsスレが伸びている・・・



461 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 15:55:58.62 .net]
規模によるとしか言いようがない

462 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 15:56:38.27 .net]
2.9.4 出たからな

463 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 16:19:03.02 .net]
2.9.4 はまだ Development だよね。

いつ Stable になるんだよ、まったく。

464 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 16:28:29.73 .net]
馬鹿には無理

465 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 17:57:49.06 .net]
馬鹿には無理さんは帰って、どうぞ

466 名前:437 mailto:sage [2012/07/16(月) 19:32:54.08 .net]
事故解決しました。
リンカ設定ではディレクトリで vc_dll の方を指定していたのですが、
PreprocessorDefinitions に WXUSINGDLL が抜けていたため、
static link しようとしてシンボル未解決になっていたようです。

467 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 19:53:09.82 .net]
つ ttp://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide#Project_properties

468 名前:デフォルトの名無しさん mailto:sage [2012/07/16(月) 19:55:20.02 .net]
そうそう。
それです。

469 名前:デフォルトの名無しさん mailto:sage [2012/07/17(火) 23:59:29.64 .net]
>>445
レスありがとうございます。
>>その質問はそもそもちょっとポイントがずれている

ポインタ渡し、参照渡しを調べていたのですが、勘違いしていたようです。

int,charなどの型の場合・関数の場合・クラスの場合と大体は似ているようですが、
クラス内の機能を使用するときには、->を使わないとだめなことがなんとなくわかりました。

void functestFrame::OnButton2Click(wxCommandEvent& event)
{
wxString str1 = wxT("まっぎょ");
functestFrame::wxStringfunc(&str1);
}
void functestFrame::wxStringfunc(wxString* str)
{ wxMessageBox(*str);
str -> Last();}

教えてもらったとおりやると、コンパイルと実行ができ、str.Lastとやればコンパイルエラーがでました。

間接参照演算子の*strの使い方で勘違いしていました。
あくまで、データをみるだけで、クラス等のpointer渡しの場合かつその機能を使う
場合は、->を使うんですね。

ありがとうございました。


470 名前:デフォルトの名無しさん mailto:sage [2012/07/18(水) 09:07:55.01 .net]
全然違うw

C++の初心者用入門本読んで勉強汁



471 名前:デフォルトの名無しさん mailto:sage [2012/07/18(水) 13:24:00.41 .net]
wxWCharBuffer の使い方が良く判りません。

472 名前:デフォルトの名無しさん [2012/07/23(月) 08:38:27.68 .net]
過疎

473 名前:デフォルトの名無しさん mailto:sage [2012/07/23(月) 13:34:00.85 .net]
過疎かあヌ

474 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 14:24:37.30 .net]
わからないことがあるので、教えてください。

fossies.org/unix/misc/wxWidgets-2.9.4.tar.gz:a/wxWidgets-2.9.4/utils/helpview/src/client.cpp
のソースの中で、149行目と150行目の : は何という演算子で、どのようなことをしているのでしょうか? 
149 MyFrame::MyFrame(wxFrame *frame, const wxString& title)
150 : wxFrame(frame, wxID_ANY, title, wxDefaultPosition, wxSize( 200, 100 ) )

149行目は、コンストラクターというのはなんとなくわかりますが、その後の演算子?がなにをしているのかが
わかりません。

検索しても、スコープ演算子はでてくるのですが、: 一個だけの演算子の意味がでてきません。

試しに、150行目に該当する部分をコメントアウトしてみると、ビルドは通りますが、実行しても何も表示されません。

{}の中に、 wxFrame(frame, wxID_ANY, title, wxDefaultPosition, wxSize( 200, 100 ) );を追加してビルドして
実行しても何も表示されません。








475 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 14:33:22.20 .net]
すいません、リンク先の内容が質問したい内容と同じではありませんでした。

実際は、C:\wxWidgets-2.9.3\samples\sockets\client.cppの内容をビルドしながら理解しようとしています。

client.cpp
// frame constructor

MyFrame::MyFrame() : wxFrame((wxFrame *)NULL, wxID_ANY,
_("wxSocket demo: Client"),wxDefaultPosition, wxSize(300, 200))

ここのコンストラクタの後の、: の演算子?であっているのかどうかも不明なのですが・・・
これは何をしているのでしょうか?



476 名前:デフォルトの名無しさん [2012/08/10(金) 14:58:02.41 .net]
>>475
MyFrameは多分継承したクラスなので、基底クラスであるwxFrameのコンストラクタを呼び出している。

477 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 14:59:37.21 .net]
あげちゃった・・・。Orz

478 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 15:15:07.17 .net]
>>476

教えてくれてありがとうございます。
継承と基底クラスを調べてみます。


479 名前:デフォルトの名無しさん [2012/08/10(金) 16:12:34.61 .net]
若き日のヴィドゲンシュタインがよみがえったように


480 名前:デフォルトの名無しさん [2012/08/10(金) 16:21:56.40 .net]
連結グラフ G=(V,E) と重み d:E->R+が与えられたとき 最小木を求めよ。



481 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 17:06:28.44 .net]
演算子?ではありませぬ

482 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 18:53:02.77 .net]
初期化リストじゃね?

483 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 17:18:28.13 .net]
wxStaticBitmapに透過png画像を指定して描画しても、
透過になってくれてないようなのですが、
単にwx.BITMAP_TYPE_PNGで読んだものを貼るだけじゃ駄目なんでしょうか?

484 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 18:43:26.98 .net]
wxInitAllImageHandlers() の呼び忘れや
png を作成したソフトが原因で正常に透過処理されないとかかなあ
サンプルのimage参考にするといいと思うよ

485 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 22:09:21.20 .net]
wxPython in action の翻訳版が・・・
www.slideshare.net/ryanvan/wxpython-in-action


486 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 23:26:46.41 .net]
スライド565ページって、出版じゃないのかー。
それでも俺は原書を選ぶぜ。

487 名前:デフォルトの名無しさん mailto:sage [2012/08/31(金) 23:48:10.30 .net]
webはスライドだけど
savefileボタン押したら
普通にPDFが落ちて来た

488 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 02:49:55.50 .net]
・wxAuiPaneInfoで、一度設定したCaptionをCaptionVisibleのtrue, falseで切り替えたいけど
なぜか反映されん、なんでだぜ

wx 2.9.4使ってみた

・GTK環境 wx2.8でSetSizer呼んだ後Fit呼ぶと異常終了するバグが2.9.4では直ってた
・同じくGTK環境 wxListctrlでwxLIST_AUTOSIZEしても、自動でカラムの幅が調整されない
(なんかメーリス見たらwxPythonのロビンさんが「まだ直ってないの?」みたいなこと書いてた。誰か直して。)

489 名前:デフォルトの名無しさん mailto:sage [2012/09/01(土) 04:53:40.84 .net]
GTKは糞

490 名前:デフォルトの名無しさん mailto:sage [2012/09/05(水) 19:33:35.92 .net]
GTK+ は多段タブも実現できんのだな
WindowsにできてGTKにできんことが結構見えてきた

ミゲルさんもこんなこと書いてるし、Linuxのデスクトップはダメだな
www.yamdas.org/column/technique/linuxdesktopj.html



491 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 09:29:27.19 .net]
>>489
またおまえか
巣に帰れ

492 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 09:57:24.07 .net]
何度でも言うよ
欠かさず言うよ
GTKは糞

493 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 17:47:43.41 .net]
>>492
おっさんなにやってん?

494 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 03:49:13.19 .net]
eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP

495 名前:デフォルトの名無しさん [2012/10/24(水) 22:55:14.82 .net]
大量削除の危機を生き延びたんだな

496 名前:デフォルトの名無しさん [2012/11/01(木) 21:43:39.40 .net]
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

497 名前:デフォルトの名無しさん [2012/11/17(土) 01:59:11.60 .net]
hosh

498 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 17:34:28.86 .net]
wxWidgetsって、gtkを呼び出す抽象的なレイヤになるの?

499 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 18:00:39.95 .net]
OSとかbuildしたときの設定による
Windows版なら今は直接Win32API呼んでるはず

500 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:34:29.96 .net]
>>498
抽象的なレイヤって言い方が引っかかるけど
どのプラットフォームでも同じコードで動くよ



501 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 02:31:32.83 .net]
gtkを呼び出す抽象的なレイヤなんてないよ

502 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 14:03:35.35 .net]
wxGtkって何なんだ?

503 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 14:05:16.89 .net]
具象的

504 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 16:40:02.72 .net]
gtkをwxWidgetのバインディングで呼出してんだから抽象的じゃないの?
具象的だと日本語おかしくね?

505 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 16:46:58.65 .net]
gu
taite
ki

506 名前:デフォルトの名無しさん mailto:sage [2012/11/22(木) 21:38:02.68 .net]
>>505
はいはいワロス

507 名前:デフォルトの名無しさん mailto:sage [2012/11/22(木) 23:26:03.48 .net]
>>506
ひでー

508 名前:デフォルトの名無しさん mailto:sage [2013/01/10(木) 03:31:25.47 .net]
>>492
何度も言うよ
残さず言うよ
だろ
>>493
中途半端なつっこみするなら黙ってろよムズムズする

509 名前:デフォルトの名無しさん [2013/01/10(木) 07:36:12.49 .net]
何度でも言うよ
欠かさず言うよ
GTKは糞

510 名前:デフォルトの名無しさん mailto:sage [2013/01/10(木) 16:50:22.28 .net]
マイナーGUIスレを見たけど、以前はFOXが人気だったんだね
まだ息してるのかな



511 名前:デフォルトの名無しさん mailto:sage [2013/01/10(木) 16:53:16.15 .net]
今はもう、QtかWxWidgetsの二択にしか見えない。気のせい?

512 名前:デフォルトの名無しさん mailto:sage [2013/01/11(金) 08:37:58.62 .net]
FortranプログラムのGUIシェルをwxWidgetsで作ろうとsampleのexecを改造しているけれどよくわからない。
いい本ないでしょうか。
最近wxPythonの本が出ましたがパイプまでは書いていないので…

513 名前:デフォルトの名無しさん [2013/01/11(金) 09:01:20.21 .net]
eNprdGhEhnH6XMi8RgcFfQj71L1t6+FS
Cvr6jXc0G/c3BgLhfriwvl5No4NejUJz
LpIZQVwwPY0OQOkaBSBnDlRujgKYC4ZQ
ZfoKYGVzkkEcDYX4xjnxmo0OzXUKU/L6
1jadbDo7bfP0uVwwA8FqG4MgjH01YAMa
A7kgNND1LQtgroC6Kb4xDiyr1BiAAjP1
9JpzFQBRXmeP

514 名前:デフォルトの名無しさん mailto:sage [2013/01/13(日) 12:10:17.65 .net]
64bit版MinGWでwxWidgetsコンパイルしてるけど
作ったバイナリが起動すらしないので死にそう

515 名前:デフォルトの名無しさん mailto:sage [2013/01/14(月) 01:59:27.93 .net]
コンパイルできた
64bitネイティブアプリや、どや

516 名前:デフォルトの名無しさん mailto:sage [2013/01/15(火) 01:35:39.03 .net]
windows7を使用しています。

ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考に拡張子が、csvとtxtのファイル名のみを取得しようとしています。

wxDir::GetAllFiles(dir , &filename ,wxT("*.txt"));
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv"));
filespecが一つのときは指定拡張子のみ取得できます。

wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
2個指定すると何も取得されません。

指定方法が悪いと思うのですが、どのようにすればいいのでしょうか?
教えてください。

517 名前:デフォルトの名無しさん mailto:sage [2013/01/15(火) 06:14:19.90 .net]
trac.wxwidgets.org/ticket/4420

518 名前:デフォルトの名無しさん [2013/01/15(火) 06:31:29.95 .net]
分からないならレスしないでください

519 名前:デフォルトの名無しさん mailto:sage [2013/01/15(火) 17:15:14.30 .net]
>>517
レスありがとう。
一つしかサポートされないのですね。

ありがとうございました。

520 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 15:50:20.31 .net]
なんで
ttp://wiki.wxwidgets.org/Beech:Using_common_dialogs
を参考にすると
wxDir::GetAllFiles(dir , &filename ,wxT("*.csv;*.txt"));
が出てくるんだろ
基地外か



521 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 23:31:49.99 .net]
wxWidgetsを使おうとしてる時点でオカシイのだ(・∀・)

522 名前:デフォルトの名無しさん mailto:sage [2013/01/17(木) 18:18:55.83 .net]
童貞乙

523 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 07:42:35.24 .net]
この道はいつか来た道♪ああ そうだよあかしやの花が咲いてる

524 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 02:49:05.26 .net]
windowsで変な抽象レイヤなんて触るなら、c#使った方がマシ

525 名前:デフォルトの名無しさん mailto:sage [2013/01/21(月) 20:07:51.79 .net]
wxRubyでWindowsのイベントを捕まえたいのですがどのようにすれば出来ますか?
C++なんかだとMSWWindowProcをオーバーライドすることで出来るみたいですが
wxRubyには見あたらないような・・・

526 名前:デフォルトの名無しさん [2013/01/21(月) 23:44:55.73 .net]
Ruby を Windows で使う人って()

527 名前:デフォルトの名無しさん mailto:sage [2013/01/21(月) 23:59:56.58 .net]
【ActiveScript】RubyをWindowsで使うスレ【GUI】
toro.2ch.net/test/read.cgi/tech/1155031689/

528 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 01:57:17.09 .net]
>>521
MFCを直に触りたくないとき、他に候補なんてある?

529 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 04:51:35.91 .net]
Qt

530 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 07:01:30.47 .net]
CLX, GTK+, Qt, Tk, FLTK, FOX

C言語/C++ベースおよびマルチ言語ベース
ウィジェット・ツールキット - Wikipedia



531 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 07:03:10.89 .net]
Agar
CEGUI
GLUI
Juce
Ultimate++
Visual Component Framework (VCF)
YAAF

532 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 12:24:11.63 .net]
MFCならWindowsのみで動けばいいんだろ

WTL
OWLNext

533 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 05:40:10.73 .net]
このひとまた変な本出してるな
ttp://www.amazon.co.jp/dp/4877832890/
このひとの他の本酷かったから買うつもり無いけど

534 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 14:11:47.04 .net]
またバグを発見してしまった

docs.wxwidgets.org/stable/wx_wxinputstream.html#wxinputstreamlastread

wxInputStream::LastRead
size_t LastRead() const

LastReadをlinuxで使うと常に0で返ってくる。
6年前に修正されてるはずだけどbranchに入ってないからバグったまんまですかVZさん。。。

535 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 14:13:49.27 .net]
チケットは以下

trac.wxwidgets.org/changeset/44485

536 名前:デフォルトの名無しさん mailto:sage [2013/02/28(木) 14:15:06.81 .net]
そうか、 2.8のブランチには入ってるけど2.9には反映されてないのか、どちらにせよだめぽ

537 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 00:54:34.59 .net]
wxInputStreamなんて使わんから

538 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 01:16:17.90 .net]
馬鹿には無理

539 名前:デフォルトの名無しさん mailto:sage [2013/03/01(金) 08:18:29.29 .net]
wxWidgets は正規表現とか、
文字コードの変換がいまいち信用出来ないので、
window のフレームワークだけに使って、
基本的なロジックは boost とかで済ますのが正解。

540 名前:デフォルトの名無しさん [2013/03/16(土) 15:59:13.75 .net]
wxwidgetsのListCtrlのカラムに直接描画したいんだけどどうしたらいい?
具体的には、ダウンローダなどによくあるようなダウンロード状況を表す
横棒のグラフに%が表示されてるような奴なんだけど



541 名前:デフォルトの名無しさん mailto:sage [2013/03/16(土) 16:03:03.35 .net]
馬鹿には無理

542 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 11:08:01.89 .net]
ググったら>>64がヒットした。
x64のgcc4.7以降でソースからコンパイルすると途中でcc1plusが止まった
x64のvc9じゃ止まらない。更新途絶えてるから修正期待するのは無理か

543 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 13:02:54.41 .net]
>>64
>>542

共有ライブラリもしくはモノリシックライブラリをビルドする場合、公式のMinGWだとメモリを使い果たしてしまう
TDM-GCCに切り替えた上で CXXFLAGS='-fno-keep-inline-dllexport' を付けて configure実行するよろし

これはwxWidegts側のバグと言うよりもMinGWのバグだ

544 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 01:17:29.35 .net]
>>543
あらゆるオプションくっつけてもダメだった
FLTKはvcでもgccでも問題なかったんだけどな、これgccじゃなくてmingw側の問題なのか

545 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 01:21:48.05 .net]
wxWidgetsってVisualStudio2012で動く?

546 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 05:07:51.79 .net]
>>545
普通にVS2012でビルドして使ってるよ

547 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 07:42:14.94 .net]
昨晩発見、mingw-w64-dgnってトコのパッチ当てたらx64MinGWでもビルド出来た。
gccはTDM4.7.1、時間が無いのでconfigureのオプションくっつけて無いけど一発で通った

具体的には、textentry.cppの#include <shlguid.h>を削除するだけ

548 名前:デフォルトの名無しさん [2013/04/04(木) 14:07:26.83 .net]
ハードディスクのMBR領域をバックアップしたいんだけど
どうやってプログラム書いたらいいかな

Linuxのときは/dev/sdaを開いて読むだけだったけど
Windowsとコード一緒にできない

549 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 14:19:00.69 .net]
共通の方法は無いかって話?

550 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 15:10:10.41 .net]
dd.exe のソース見ると良い



551 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 15:49:15.97 .net]
そうするわ
でもパスカルわかんねーんだよな・・・

552 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 16:02:05.02 .net]
wxWidgets 関係の話?

553 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 09:13:04.65 .net]
wxPythonなんですがベジエ曲線を書くにはどうすれば良いですか?

554 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 18:52:10.99 .net]
描画系クラスならwxDC使えばいいんじゃないかなあ
docs.wxwidgets.org/2.8/wx_wxdc.html

555 名前:デフォルトの名無しさん mailto:sage [2013/04/10(水) 11:56:17.56 .net]
出来ました
ありがとうございました
docs.wxwidgets.org/2.8/wx_wxgraphicspath.html#wxgraphicspathaddcurvetopoint

556 名前:デフォルトの名無しさん [2013/06/24(月) 15:12:38.36 .net]
Latest Development Release: 2.9.4
Current Stable Release: 2.8.12
Previous Stable Release: 2.6.4
www.codeproject.com/Articles/11515/Introduction-to-wxWidgets

557 名前:デフォルトの名無しさん mailto:sage [2013/06/26(水) 18:58:08.93 .net]
Mac OSX LionだとwxWidgets 2.8 がビルドできない・・・
wxWidgets 2.9ビルドするとダイナミックリンクライブラリが一部作成されない・・・
Mac PortのwxWidgets-devをダウンロード するのが一番良さげ

あとMac OSXでpthreadをバイナリにリンクさせたらいきなり実行ファイルが落ちやがる
罠多すぎだろあのOS

558 名前:デフォルトの名無しさん mailto:sage [2013/06/26(水) 19:01:52.04 .net]
ttp://www.HackInt0sH.org/

559 名前:デフォルトの名無しさん mailto:sage [2013/07/17(水) NY:AN:NY.AN .net]
wxWidgets-2.9.5では>>429で言ってたバグが直ってるぞ、やったぜ

560 名前:デフォルトの名無しさん [2013/08/24(土) NY:AN:NY.AN .net]
wxってlispで使えますか?



561 名前:デフォルトの名無しさん mailto:sage [2013/08/24(土) NY:AN:NY.AN .net]
馬鹿Lisperには無理

562 名前:デフォルトの名無しさん mailto:sage [2013/08/24(土) NY:AN:NY.AN .net]
lispなんて使ってかっこつけやがって

563 名前:デフォルトの名無しさん [2013/08/30(金) NY:AN:NY.AN .net]
みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます

564 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN .net]
wxWidgetsのコミッタのVadim ZeitlinがC++11でwxWidgets書いてるぞ

wxWidgets and C++ 11
wxwidgets.blogspot.com/2013/08/wxwidgets-and-c-11.html

565 名前:デフォルトの名無しさん [2013/08/31(土) NY:AN:NY.AN .net]
時既におすし

566 名前:デフォルトの名無しさん [2013/09/06(金) 17:26:06.71 .net]
chrome.blogspot.jp/2013/09/a-new-breed-of-chrome-apps.html
itpro.nikkeibp.co.jp/article/NEWS/20130906/502868/
news.mynavi.jp/news/2013/09/06/057/
internet.watch.impress.co.jp/docs/news/20130906_614308.html

567 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 23:08:20.72 .net]
>>566
昔から何度も提唱されてるブラウザによる全てのGUIの描画ですか
Googleは達成できるか

568 名前:デフォルトの名無しさん mailto:sage [2013/09/11(水) 00:44:38.34 .net]
Firefoxって知ってる?

569 名前:デフォルトの名無しさん mailto:sage [2013/09/20(金) 22:19:19.81 .net]
mozillaに出来なくともgoogleになら出来る

570 名前:デフォルトの名無しさん [2013/10/10(木) 10:11:38.40 .net]
wcSVG



571 名前:デフォルトの名無しさん [2013/10/16(水) 23:19:09.83 .net]
3.0.0-RC1

572 名前:デフォルトの名無しさん mailto:sage [2013/10/17(木) 08:33:10.45 .net]
wxD

573 名前:デフォルトの名無しさん [2013/10/17(木) 12:18:17.29 .net]
>>572
どうしてるんだろうな
そのプロジェクト...

574 名前:デフォルトの名無しさん [2013/10/20(日) 16:58:10.15 .net]
wxTcl

575 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 22:48:07.34 .net]
3もRC2まで行ってるし、次は今月中に正式版出るかな

576 名前:デフォルトの名無しさん [2013/11/05(火) 23:10:06.75 .net]
出たとしたらLinuxのパッケージにwx-3.0が出て使えるようになる
楽しみ

577 名前:デフォルトの名無しさん [2013/11/13(水) 21:36:52.45 .net]
3.0.0キテタ━━ヾ(゚∀゚)ノ━━!!

578 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 22:26:30.66 .net]
おいおい3.0だぞ?出たんだぞ?なんでこんなに盛り上がんないんだよ…

579 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 23:36:17.18 .net]
メインの機能追加がUnicode対応だからなぁ
今までも別に日本語使えなかったわけではないし

580 名前:デフォルトの名無しさん [2013/11/14(木) 23:52:35.30 .net]
何言ってだこいつ
unicodeは前から使えてるっての

所感
・Mac向けビルドの安定化
・wxwebviewが全ポートで使える
→ ネットワーク接続して、html, Javascriptの解釈可能に
・aui系のバグ修正と見た目の品質向上
・c++11, clang対応
・その他即死系のバグ修正

間違ってたらすまん
とりあえず2.9で出てたバグは直ってるはず



581 名前:デフォルトの名無しさん [2013/11/15(金) 00:03:58.47 .net]
あと>>364で出てたUTF-8以外の文字列からの変換とかどうなったんだろ
うまく変換できてるなら嬉しいけど

その他にもクラスは2.8の時より増加してるよね

582 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 00:55:39.31 .net]
MinGW gcc + wxWidgets 2.8.12で作っていたプログラムを3.0.0で作り直したら、
ウィンドウリサイズ時のwxStaticText、wxCheckBox、wxListBoxのフリッカーが見るに耐えんレベルになった。
かと言ってSetDoubleBufferを使うとリサイズがモタつく上に、何故かwxRadioBoxの枠線が消えるんだよなー。
仕方ない、一つ一つwxEVT_ERASE_BACKGROUNDを潰す作業を初めるか…。

583 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 03:59:07.98 .net]
gcc4.8で動くなら使う
x86_64-w64-mingw32じゃ、2.9はとうとうビルドさえ無理だった

584 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 04:14:31.91 .net]
4.8だとやっぱりcc1plusが停止した、しかも2.9と同じファイル
公式から落としてきたライブラリ使ってもリンクに失敗
4.7ならライブラリのビルドもリンクも問題なし

585 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 05:11:08.20 .net]
あ、やっぱ出来た
パラレル無しでビルドするか>>543
CXXFLAGS='-fno-keep-inline-dllexport'
をつけると大丈夫みたい、後者だと1度止まるけど再ビルドすれば通るしサンプルもビルド出来た

586 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 06:44:39.98 .net]
連投失礼、>>584-585は見なかった事にしてね
当方の環境、win7 64bit msys上からビルド、gccは4.9、静的リンクでビルド

configureにCXXFLAGS="-fno-keep-inline-dllexport"をつけてもevent.cppで止まる
その時あらためてmake CXXFLAGS="-fno-keep-inline-dllexport"としてビルドすると通る

gcc4.8だと2.9はビルドでこけるしリンクも失敗するってのは国内外でよく見かけたし、実際俺も
あきらめてたけど…ひょっとして2.9もこの方法で通ったのかなあ。

でも、なぜかサンプルのimage.exeだけ強制終了した(ビルドは可能)

587 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 07:29:00.37 .net]
VCでやったほうが実行速度速くなるんじゃないの

588 名前:デフォルトの名無しさん [2013/11/15(金) 07:40:36.25 .net]
VC++?知らない子ですね…

589 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 07:53:20.59 .net]
損してると思うよ

590 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 00:14:03.66 .net]
constexprも使えないコンパイラは要らないんですよ



591 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 00:58:40.41 .net]
メタプログラミングって奴でしょ?
何が何だかサッパリ分からないよー。
つまり俺にはまだ早い代物だという事は承知してるが、
どういう用途で使うものなのか教えてほしい。

592 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 03:33:03.68 .net]
wxと同時に浸かって委員会

593 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 03:39:24.39 .net]
GCC3xの頃はvc++の方が速かった気がするけど、4.6から急激に速度が向上した気がする
あくまで自作プログラムでの話だけどね
ただ、gccでビルドされる様々なテストプロブラム見てるとvc++でビルドって安全性って意味
でヤバいんじゃないかって思っちゃうの

594 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 04:27:47.92 .net]
>>591
実行時の計算オーダーを減らす機能。事前計算機能だね。
コンパイルタイムにできるだけ計算して結果を出しておくことで実行時の計算量を減らす。
ネットの変人がそれでレイトレーシングやったりしてる。
C++14のやつはそれなりに簡単だよ。

595 名前:590 [2013/11/16(土) 09:47:07.37 .net]
>>590はちょっと冗談気味だが
正直VC++はC++とは言えない
C++の機能を最大限活かす/楽しむにはgccやclangを使うべきだと思います
会社でプログラム書けと依頼されたらもしかしてVC++使うかもしれないけど

596 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 16:23:57.98 .net]
chrome のブックマークバー、 IE のお気に入りバーのようなコントロールクラスを探しています。
全てのアイテムが編集可能でアイコンとテキストが表示されて
そのアイテムの値のテキストを編集できるメニューを作りたいのですが
最適なコントロールクラスはどれか教えてください。

wx.Menu を使おうと思ったのですが、
右クリックやコンテキストメニューのイベントが Bind しても呼び出されず苦戦しています。

wx.ListCtrl を使った場合は右クリックのイベントは受けられるのですが、
左クリックのイベントが wx.EVT_COMMAND_LEFT_CLICK のみで
これは MS Windows のみと書いてあるのでできたら使いたくありません。
これらのイベントについても誤りがあれば教えて欲しいです。

環境は wxPython 2.8-msw-unicode です。
よろしくお願いします。

597 名前:デフォルトの名無しさん mailto:sage [2013/12/28(土) 17:54:40.37 .net]
>>596
理想の実装になるかわからない&C++しかわからないが
wxMenuをそのまま使うのが良いと思います

実装の骨子
・メニューの項目一つ一つにwxWindowID ( enum )を振る
・wxWindowIDはwxCommandEventで起動するようにしておく
・上記のwxCommandEventを処理する関数はenumをswitch文で処理する
・wxCommandEventはEVT_MENU_RANGEで定義しておく(enum値が 1000~1200の場合反応する関数を作るなど)

アイテムを編集可能にするために
・EVT_UPDATE_UIをwxMenuに設定しておき、ユーザーがメニューの項目を触ったら更新を実施

右クリック
・wxのConnectとかBindでwxMouseEventをくっつければいいと思う

-------------------------------------------------------

上記をやろうとすると、ユーザーが設定した項目でループを回して常に更新かける
感じになるんじゃないでしょうか。

wxMenu *menu = new wxMenu;
wxMenu *foo  = new wxMenu;

for ( ユーザーが設定した数だけループ ) {

foo->Append(wxID_HOGEHOGE_RANGE + i , wxT("ユーザー設定項目1"));
foo->Connect(); // 右クリックイベントを定義しておく
}

598 名前:596 mailto:sage [2013/12/29(日) 12:00:00.67 .net]
>>597 レスありがとうございます。

wxMenu に対して Connect/Bind を試してみたのですが、
クリックイベントは wxEVT_MENU または wxEVT_MENU_RANGE だけが呼び出されました。

LEFT_UP, RIGHT_UP, COMMAND_LEFT_UP, COMMAND_RIGHT_UP, CONTEXT_MENU のイベントを試しましたが、
こちらは EVT_MENU の有無にかかわらず呼び出されませんでした。

試したソースコード : codepad.org/S9vtw4yX

wxEVT_MENU の際に右クリックか左クリックかわかれば処理を分岐できるのですが、
wxCommandEvent でクリックしたボタンの情報の取得方法がわかりません。

wxWindow::PopupMenu では wxMenu を参考にして GUI を作り出すようですが、
そこですでにイベントが途絶えているように思えてしまいます。
ウィンドウハンドルも得られないようだし、
ポップアップメニューにイベントを追加することはサポートされていないように感じます。

wx.ListCtrl でも思ったことなのですが、
wx.CommandEvent 系のイベントを使うコントロールクラスでは
wx.MouseEvent 系のイベントは関連付けられないのでしょうか?

599 名前:デフォルトの名無しさん mailto:sage [2013/12/29(日) 12:26:46.93 .net]
>>598
う〜ん、メニュー上での右クリックは悲しいことにできなさそうね

[wx-users] Trapping wxMouse events over wxMenus
https://groups.google.com/d/msg/wx-users/xAGPwk-f9Ao/0BGV9JD55L4J

この会話の中で、Vadimさん(wxWidgetsのコミッタ)が無理やでとか言ってる
メニューの項目の中で右クリックするとイベントはメニューのほうに行ってしまう
から、そのイベントをつかむのは無理だと。
で、それはWindowsとGTKのネイティブ実装がそうなっているから。

> Ideally, I would like to be able to left-click and
> right-click WITHOUT the menu disappearing.
This is impossible under the two main platforms: MSW and GTK. Menus grab
the mouse when popped up (down?) and so all mouse events go to them.

600 名前:デフォルトの名無しさん mailto:sage [2013/12/29(日) 12:34:09.46 .net]
いや、ちょっと違うか
メニューの右クリックイベントは掴めるけど
その時呼び元のメニューの項目が消えるといってるのか

その解決策としてはwxMenuを使わずに
menuのウィジェットを自分でエミュレートするしかないとのこと



601 名前:デフォルトの名無しさん mailto:sage [2013/12/29(日) 13:16:30.36 .net]
>>599-600
ありがとうございました。
wxMenu を流用できないのは残念ですが、
これで踏ん切りがつけたので、 wxListCtrl を使ったものを試そうと思います。

引き続き、wxListCtrl のような wxControl 派生に対して
wxMouseEvent 系のイベントをつける方法を求めていますので
何か参考になることがありましたらよろしくお願いします。

602 名前:デフォルトの名無しさん [2014/01/27(月) 14:20:14.73 .net]
了解

603 名前:デフォルトの名無しさん mailto:sage [2014/01/27(月) 14:35:57.41 .net]
>>601 です。 >>596 について進展したので参考になればと思い報告します。

メニューアイテムの上で右クリックしてポップアップメニューを表示することが可能なクラスが wxPython にありました。
wx.lib.agw.flatmenu がまさにぴったりのクラスでした。
RIGHT_UP のイベントはありませんが、 FlatMenuItem::SetContextMenu(FlatMenu) で >>596 でしたいことが簡単にできます。
自作のために PopupWindow あたりを調べているときに見つけました。

また何かありましたらよろしくお願いします。

604 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 17:32:22.79 .net]
サンプルが多すぎて逆にわからないのですが、
ランタイム時にGUIパーツを生成消滅させることって可能ですよね?
例えばユーザが読み込んだファイルによってボタンの数を変化させるなど

605 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 17:48:08.47 .net]
マジレスすると
出来ますよ

606 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:02:12.58 .net]
ありがとうございます
関連するサンプルなどありましたら教えていただけると幸いです

607 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:06:08.80 .net]
きっと君のHDD(SSD)に既に入ってるよω

608 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:19:55.82 .net]
そうなんですよね〜でもsample多くてどっから見ればよいか、という感じです
まあできるということがわかればとりあえず見て回ります

609 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:34:00.97 .net]
チュートリアルで最初の方から見ればすぐ出ると思う。

610 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:38:10.36 .net]
デモ実行してみて自分の欲しい機能と似たものを見つけたら「ソースを見る」をクリック。



611 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:44:29.66 .net]
すいません、見てるものが違うかもしれないので確認させてください
チュートリアルとは何を指してますか?
デモはdemosフォルダの中にあるプロジェクトですよね?「ソースを見る」とはなんでしょうか?

612 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:48:03.88 .net]
ごめん。
見てるものが違った。
wxPython の方見てた。

613 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 18:53:20.95 .net]
wxPythonのDemo見て目星を付けて
wxPythonのソースを参考にwxWidgetsでCソース書くのもあり

614 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 19:08:22.51 .net]
なるほど
wxPythonでコードを書いたものがC++に直接変換できたりしたら便利ですね
wxGladeみたいに

615 名前:デフォルトの名無しさん [2014/02/26(水) 20:20:43.75 .net]
なんか久しぶりにwxスレが伸びてるぞ、新規ユーザー大歓迎
ボタンとかテキストエリアの動的な生成は、wxPanelとかwxSizerを使った簡単なサンプルを作ったら理解できると思う
言葉で説明するよりコード書いたほうがよいけど一応書いとく

例えばボタンを生成・削除しようとする場合
親Panelをparent, 子panelをchildとすると

1. ウィジェットの生成:parentをnewして、必要な分だけchildをnew
child = new wxPanel(parent, …);
...

2. ウィジェットの削除:parent.DestoryChildren();
この関数で子ウィジェットを全部きれいに削除できる

説明の意味がわからなければ、まずは適当なチュートリアルサイトに行くべし
おすすめ
zetcode.com/gui/wxwidgets/

616 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 20:22:35.51 .net]
>>614
慣れたら直接C++で書けるから多分コンバータは需要無いよ

617 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 20:29:50.32 .net]
>>615
詳しくありがとうございます
拝見致します

>>616
wxGladeも要りませんかね?
フローはwxGladeで枠を作って機能をC++で書く感じになるのかと

618 名前:デフォルトの名無しさん mailto:sage [2014/02/26(水) 20:30:17.32 .net]
そのくらい wx は良く出来てるね。

619 名前:デフォルトの名無しさん mailto:sage [2014/02/28(金) 21:18:50.52 .net]
Qt以下の品質。gtkならcで書けた。

620 名前:デフォルトの名無しさん [2014/03/01(土) 00:37:16.59 .net]
そらQtのほうがメジャーやろ、死ね



621 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 01:40:12.84 .net]
どっちも1992年頃にできた。OSSといえども商業的な成功がコミュニティ形成の鍵。
それ以外はGood Oldを懐かしむロートルか宗教的価値観に支えられているだけ。

622 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 01:51:22.19 .net]
GUI比較スレってなんだよね・・・
比較的な話ってここで展開してもよいものやら
というかwxWidgetとQtどっちも使ってる人っているのか

623 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 02:28:31.91 .net]
世の中のアプリケーションはQtかAwt/Swingが採用される流れ。
直交性ならgtk。サクッと安定したものを書くならtk。
トイプログラムならSDL+OpenGL。生きるとは残酷なことである。

624 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 12:13:44.67 .net]
バイナリサイズでかいですな
VC2010でサイズ最適化オプションかけてもHelloWorldで5MB...
これはもうどうしようもない感じ?

625 名前:デフォルトの名無しさん [2014/03/01(土) 12:23:48.03 .net]
どうしようもないっす
ベース部分(wxStringとかwxWindowとか)の定義が容量食ってるから?ではないかという疑惑

626 名前:デフォルトの名無しさん mailto:sage [2014/03/01(土) 12:27:18.78 .net]
うーんなるほど
ランタイムで色々判断出来るような設計なんですかねえ

627 名前:デフォルトの名無しさん [2014/03/01(土) 12:32:32.69 .net]
そうですねwxWidgetsはRTTIの仕組みが活かされてるみたいなドキュメントはどっかで見た
たぶんwxWidgetsの中核であるwxWindowクラスはそんなんばっかしなんだろう

628 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 12:40:46.24 .net]
ファイル操作系が異様にやりにくい
wxString dir_name("some directly name");
dir_name.Traverse(some_traverser,wxString(""),flags);
でディレクトリたどりながらファイル抽出できるかなとおもったが
flags = wxDIR_FILES
だとそのディレクトリの中身”のみ”探す
flags = wxDIR_DIRS
だとその下の”全ての”階層のディレクトリを抽出する
wxDIR_DEFAULT
だとその下の”すべての”ファイルを探す
なんでこんな仕様なんだ

629 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 12:45:32.18 .net]
ああわかった
ディレクトリが見つかった場合のみその下も探す、ということなんだな
するとファイルのみだと当然下なんぞ無いからそれ以下を探すことはなく
ディレクトリのみ、とすると下にもいけるから最下層まで探そうとするわけか
うーん

630 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 12:55:52.46 .net]
連投失礼
Traverserクラスを継承してそのOnDir関数の返り値で制御すればいいということでした



631 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 15:51:27.09 .net]
浮動小数点を扱えるsliderってデフォルトではなさそうですか?

632 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 17:23:40.57 .net]
たとえば 0 - 100 を 10 で割ると
0.0 - 10.0 のレンジになります

633 名前:デフォルトの名無しさん mailto:sage [2014/03/11(火) 17:30:20.25 .net]
やっぱそんな感じなんすね
最大値最小値現在値ラベル表示が便利だなーとおもったんですが、小数点付きでやろうと思ったら
自分でラベル付けるしかなさそうですね

634 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 21:45:40.12 ID:w4oGcJBI.net]
右側のボタンを押したら左側のパネルを再描写させたい、など
あるイベントから(親でない)ほかのイベントを誘発させたい時ってあると思うのですが
その辺に関する記事てどっかにあります?

635 名前:デフォルトの名無しさん [2014/03/15(土) 23:13:55.37 ID:eHN/5w2/.net]
>>634
そのへんはイベント処理の領域になりますね
wxWiki見るしかない感じ

イメージとしては
Sample::LeftPanelRedraw(wxCommandEvent& event);
というイベント関数のIDがID_LeftPanelRedrawであった場合

そのイベントは
wxCommandEvent e(wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED, ID_LeftPanelRedraw));
LeftPanelRedraw(e);
で呼べる

636 名前:デフォルトの名無しさん mailto:sage [2014/03/15(土) 23:39:19.87 ID:w4oGcJBI.net]
>>635
了解です、参考にさせていただきます

637 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 12:58:58.01 ID:hjbpSh7I.net]
わかりました
wxWindowBase::wCaptureMouse()を呼び出すと以降座標とイベントが取得されるようです

638 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 17:51:04.60 ID:cY3NJQQl.net]
はい。知ってますよ。

639 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 19:26:21.87 ID:0loqh5rV.net]
いや、知らないです

640 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:36:09.61 ID:d288LkW9.net]
クロスプラットフォームの開発環境について調べてるんですが、wxWidgetsの
GUIは外観とかは各プラットフォームのものが使われるんですか?それとも
独自のテーマになってしまうんでしょうか?



641 名前:デフォルトの名無しさん [2014/05/12(月) 21:48:19.14 ID:N4i3m2/R.net]
>>640
各プラットフォームのものが使われます
つまりWindowsならWIN32、LinuxならGTK、MacならCocoa
それぞれの外観になります

対してQtやTk、JavaのSwingなどは独自のテーマになります

642 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:58:07.29 ID:KhXbSVtN.net]
Qtってそうだったんだ

643 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:57:11.37 ID:d288LkW9.net]
>>641
ありがとうございます。他の環境まで概括してくださるとは助かりました。

644 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 02:25:29.32 ID:mUTDx2p/.net]
>>640
敢えてプラットフォームのを使わず
テーマ選ぶ方法もあったはず

645 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 01:42:23.54 ID:NdcsMWjh.net]
wxFormBuilder 3.4.2betaがリリースされていたので試してみたら、
wxWidgets3.0ベースのGUI描画になったおかげか、2.8をベースに作っていたレイアウトがごっそり狂った。
これから3.0で作る分にはいいと思うけど、2.8で作る分には3.4.0betaで止めておいた方が良いかも。

646 名前:デフォルトの名無しさん [2014/06/03(火) 09:02:12.18 ID:va6vQ78Z.net]
Swiftスレ
peace.2ch.net/test/read.cgi/tech/1401736341/

647 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 21:33:25.19 ID:EBZlr/6D.net]
いまこのスレ開いたら、>>645にあったはずの有益な書き込みが消えている…
貼っておこう

> 646 名前:デフォルトの名無しさん [sage]: 2014/05/23(金) 01:42:23.54 ID:NdcsMWjh
> wxFormBuilder 3.4.2betaがリリースされていたので試してみたら、
> wxWidgets3.0ベースのGUI描画になったおかげか、2.8をベースに作っていたレイアウトがごっそり狂った。
> これから3.0で作る分にはいいと思うけど、2.8で作る分には3.4.0betaで止めておいた方が良いかも。

648 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 01:15:41.59 ID:/T91KtMA.net]
なんと、板移転したときに消えたのかもしれないね。

649 名前:デフォルトの名無しさん mailto:sage [2014/06/19(木) 12:54:27.42 ID:sMGAuaVR.net]
wxWidgetsを使って作られたプログラムの一覧ってあったりするのかね?
とりあえずAudacityは知ってる

650 名前:デフォルトの名無しさん mailto:sage [2014/06/19(木) 19:37:20.57 ID:Brdb8B0I.net]
www.wxwidgets.org/about/screenshots/
とか



651 名前:デフォルトの名無しさん mailto:sage [2014/06/19(木) 19:41:04.43 ID:sMGAuaVR.net]
おーありがとう
後で見て回る
テンプレにあってもいいじゃないかな?

652 名前:デフォルトの名無しさん mailto:sage [2014/06/19(木) 20:07:59.88 ID:gduOxxnf.net]
車の再発見

653 名前:デフォルトの名無しさん mailto:sage [2014/06/19(木) 22:56:02.45 ID:Brdb8B0I.net]
商用アプリは
wiki.wxwidgets.org/Commercial_applications_using_wxWidgets

654 名前:デフォルトの名無しさん mailto:sage [2014/08/20(水) 15:57:43.03 ID:TAUePqVhc]
>>644
そんなんあったっけ?

655 名前:デフォルトの名無しさん mailto:sage [2014/08/24(日) 18:20:53.22 ID:Gtnn2j9y.net]
wxWidgetsで、フォームを閉じる処理をして実際に閉じるまでの間に発生するイベントとかある?
.NETで言うところのOnClosingみたいな感じで。

656 名前:デフォルトの名無しさん [2014/08/25(月) 02:12:21.61 ID:OTL7uAT+.net]
OnClose
OnVeto

657 名前:デフォルトの名無しさん mailto:sage [2014/08/25(月) 14:23:49.85 ID:IQl9g11m.net]
>>656
d
おかげで作業が進みました。

658 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 17:09:00.43 ID:QEgdFK7f.net]
Windows で、
CrossBlock + MinGW + wxWidget
で最も簡単な GUI アプリを基本プロジェクトで作成してみたところ、

MyTest.exe のサイズ:736KB
(wxWidgetのDLL) wxmsw28u_gcc_custom.dll のサイズ : 15.9MB
MyTest.exe のメモリ使用量 : 7,732KB // TaskManagerの表示

となった。

この基本アプリは、HelpでAboutでメッセージ・ボックスが表示できる
ようになっているが、メニュー項目をクリックしてから実際にそれが
出るまで数秒かかる。実験したのはそこそこ速いマシンと速いWindows
での事。

659 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 17:09:45.00 ID:QEgdFK7f.net]
ただし、遅いのは最初の一回だけ。
一度でも表示すると後は速い。

660 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 17:56:51.72 ID:QEgdFK7f.net]
Mailer の Thunderbird-Portable なんかもマルチプラットフォーム対応
だけど、起動がかなり遅い。これも巨大な dll を読み込んだりしてる
からかな。

起動やメニュー操作が遅くなるのはマルチプラットフォーム化する代償
として負わされるのかも知れん。

こういうツールキットで軽快なアプリを作るのは難しいのかもな。



661 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 19:14:34.45 ID:OmJCXozv.net]
小規模の自作ソフトでwxWidgetsをスタティックリンクしない理由が分からん
わざわざ合計バイナリサイズを大きく、速度も遅くする理由がどこにあるのだろう

662 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 21:27:38.25 ID:QEgdFK7f.net]
>>661
なるほど、スタティックリンクにすれば、起動後になってからユーザーの
命令に対する応答が遅れる事はなくなるかもしれない。
起動が遅くなるだけで済むんなら、そっちの方がストレスが少ないかも。

663 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 21:50:56.10 ID:JtVIC4MG.net]
ある程度規模が大きくなるとスタティックリンクだと初回起動が遅すぎになので
dllにモジュールを分割してやったほうがいい
起動時のメモリへのロード時間はどうしようもないのでスプラッシュをつけてごまかす

664 名前:デフォルトの名無しさん mailto:sage [2014/08/26(火) 22:39:34.76 ID:QEgdFK7f.net]
CrossBlockでは、monolithic タイプのライブラリをビルドしてから使う
ようになってるんだけど、それも遅い原因なのかな。

でも起動後にユーザー入力に対するレスポンスが遅いのはどう説明すれば
いいんだろう?

普通の Windows の仕様だと原則、起動時に全ての DLL をロードする。
LoadLibrary()を使えば動的にロードすることも可能は可能だけど、
それをする必要は旧OSでサポートしてなかった新OSのDLLをロードする
ような場合は、多言語化のサポートなど。

なるほど、多言語化のせいかも。_("xxx") みたいなのがあったから、
gettext を使ってる。それでリソースを動的ロードしているのか。

665 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 04:40:25.51 ID:IfBPvyzm.net]
何度かアプリ起動しているうちにWindowsのFetchが学習してくれて
DLLとか先読みしてくれるようにならないのだろうか

666 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 06:47:58.33 ID:J2peHUgZ.net]
>>665
それはなる。
・ディスクの内容は、メモリにキャッシュされる。
・同じDLLは、全てのアプリで物理メモリが共有されると聞いたことがある。

# >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。

それより、wxWidget 本家のソース配布に入っている samples を
Windows の mingw32 でビルドしてみたところ、全然遅くなかった。

・アプリの起動は速い。
・起動後のメニューコマンドやユーザー入力に対するレスポンスも速い。
・Aboutダイアログも瞬間ではないが、0.3秒程度で、Windows Nativeアプリ
 でも、その程度の遅さはある場合があるので遜色ない。

CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
ライブラリを使用しているからか。

667 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 07:54:18.52 ID:X38Kg7Ty.net]
>>666

># >>664 は、CrossBlockではなく、CodeBlocksだった。スマン。

なんだと思ったらわりと素人じゃねえかおい

>CodeBlocks で作ったものが遅い原因は今のところ謎。やはり monolithic な
>ライブラリを使用しているからか。

monolithicってのはwxWidgetsのモジュール全部入りのDLL作るという意味なので遅くて当然
(実際試したことないので遅いというのは初めて知ったが…)

普通は ./configure --prefix=/mingw --enable-shared みたいに指定してビルドするから
モジュールごとに分割されたDLLが作成される
Windows上で開発する時はMinGW + NTEmacs/eclipse CDTの環境がおすすめ

668 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 09:58:52.27 ID:J2peHUgZ.net]
>>667
最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
configure は使えない気がする。
CodeBlocks のQuickなんたらRefの説明では、いきなり、
make するように支持されていた。しかも、-fno なんたら dll-export
みたいなオプションを付けろと指示。これは、MinGW32のバグで、
付けないと最後のldの段階でldがクラッシュする事をたまたま発見。


ところで話は変わって聞いておきたいのですが、 eclipse では
wxWidget のイベントを書くようなときに

・BEGIN_EVENT_MAP に自動的に一行マクロを挿入してくれて
・*.h にもメンバ関数宣言を書いてくれて
・*.cpp にも5行くらいの関数定義本体の雛形を書いてくれ

たりしますか?

669 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 10:01:06.29 ID:J2peHUgZ.net]
つまり、イベント・ハンドラを追加したとき、

BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow)
EVT_PAINT (wxListMainWindow::OnPaint)
EVT_MOUSE_EVENTS (wxListMainWindow::OnMouse)
EVT_CHAR (wxListMainWindow::OnChar)
EVT_KEY_DOWN (wxListMainWindow::OnKeyDown)
EVT_KEY_UP (wxListMainWindow::OnKeyUp)
EVT_SET_FOCUS (wxListMainWindow::OnSetFocus)
EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus)
EVT_SCROLLWIN (wxListMainWindow::OnScroll)
EVT_CHILD_FOCUS (wxListMainWindow::OnChildFocus)
END_EVENT_TABLE()

とか、クラスを書くとき

IMPLEMENT_DYNAMIC_CLASS(wxListMainWindow,wxScrolledWindow)

見たいなものの自動生成があるとうれしいんですが、そういう IDE
はありません?

670 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 11:13:03.59 ID:AEJEOYpd.net]
wxWidgetsの問題点の1つは、プログラムのサイズが大きくなる事。
特に静的リンクしたときに顕著。

Windows は、VC++ にて、
ac1rd: CUI の Win32 と printf() を使ったもののリリース・動的リンク版が 16KB程度。
    puts() を使えばもっと小さく出来る。
ac1rs: CUI の Win32 と printf() を使ったもののリリース・静的リンク版が 40KB程度。
    puts() を使えばもっと小さく出来る。
ag2rd: GUI の MFC の 基本的な MDI アプリがリリース・動的リンク版で 36 KB 程度。
ag2rs: GUI の MFC の 基本的な MDI アプリがリリース・静的リンク版で 332 KB 程度。


wxWidgets 2.8.12 の samples では、
bc1rd: CUI の console.exe がリリース・動的リンク版で 138KB
bc1rs: CUI の console.exe がリリース・静的リンク版で 863KB
bc1dd: CUI の console.exe がデバッグ・動的リンク版で 184KB

bg2rd: GUI の keyboard.exe がリリース・動的リンク版で 293KB
bg2rs: GUI の keyboard.exe がリリース・静的リンク版で 2,924KB
bg2dd: GUI の keyboard.exe がデバッグ・動的リンク版で 492KB

ただし、bc1xx は、アプリ本体のプログラムが複雑なことをしているようなので、
もっと小さく出来る可能性があり。



671 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 19:04:31.75 ID:GS9LyL7J.net]
その説明にac1だの何だの自分以外分からない定義を使う必要があったのだろうか

672 名前:デフォルトの名無しさん mailto:sage [2014/08/29(金) 19:07:59.00 ID:AEJEOYpd.net]
今から見るとそうかも。
a: Windows Native or MFC
b: wzWidgets
c: CUI
g: GUI
r:release, d:debug
d:dynamic link, s:static link

673 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:17:55.46 ID:S/CtHe8u.net]
>>668

>最後の段落:多分、wxWidgets 本体を MInGW32 用のビルドする際は、
>configure は使えない気がする。

なにいってんだCodeBlocksのドキュメントにそう書いてあるだけで
基本autotoolsで作られたソースはconfigureでビルドできるぞ
実際自分はWindows上のmingw32/64、LinuxのクロスビルドからのMinGWでconfigure使ってる

なぜMakefileでやれという指示なのかというと、そのほうが簡潔で保守しやすいからだ
あとGNU MakeじゃないMakeでもビルドできるようにしたいとかいう微妙なこだわりが有る場合も有る

>>669
エディタの補助機能を使うべきだ、Emacsなら矩形範囲選択で一気に書ける
ソースのひな形自動生成機能は知らんなあ

674 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 00:21:29.81 ID:S/CtHe8u.net]
>>670
MinGWビルドでバイナリをストリップしたやつとか比較しないのか

675 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 07:56:49.02 ID:pUv0T+7B.net]
>>674
Stripに詳しくないので、言っている意味が分からない。

Stripって Release 用に Build した Binary に対して行っても
サイズダウンできたりするの?

676 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 07:58:19.03 ID:pUv0T+7B.net]
>>674
Stripに詳しくないので、言っている意味が分からない。

Stripって Release 用に Build した Binary に対して行っても
サイズダウンできたりするの?

677 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 08:15:51.54 ID:hpIa4Qjb.net]
日本語インライン入力の対応ってまだなの?
というか予定自体なくて諦めた方がいい?
wxWidgets使ってるEditraってエディタにそろそろ移行できるかなと
思って試してみたら、未だにインライン入力できない

678 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 08:19:53.34 ID:pUv0T+7B.net]
>>674

小さくなりますた!!


Relese, 動的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_mswdll/keyboard.exe

strip 前:299,808 bytes
strip 後:124,430 bytes

Relese, 静的リンク
/wxWidgets-2.8.12/samples/keyboard/gcc_msw/keyboard.exe

strip 前:2,993,255 bytes
strip 後:1,887,758 bytes

strip 後も、*.exe が正常に起動することを確認済み。

679 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 08:22:26.84 ID:pUv0T+7B.net]
>>673
>エディタの補助機能を使うべきだ、Emacsなら矩形範囲選択で一気に書ける

詳しく:

680 名前:デフォルトの名無しさん [2014/08/30(土) 11:51:11.86 ID:RJxcDZkh.net]
馬鹿には無理



681 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 12:02:34.82 ID:S/CtHe8u.net]
スタンド・アローン・コンプレックスと化した馬鹿には無理さんオッスオッス

>>679
cua-modeでググって
qiita.com/yyamamot/items/7efcbfdcccdb5fa45ebe

例えばイベントテーブルとかはこれでザクッと一気に書ける
もちろん個々のwxWindowIDとメソッド定義は書かなくてはいけないが
クラス名とマクロ定義は同じ文字列の繰り返しなのでだいぶ楽になる

682 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 13:53:01.64 ID:pUv0T+7B.net]
>>681
あー、そういう風に沢山のイベントを一気に書きたいんじゃなくて、
開発段階で徐々にイベントを追加して行く際に、

1. *.h のクラス内にメンバ関数宣言
2. *.cpp に EVENT MAP
3. *.cpp に メンバ関数定義の本体

の三箇所にコードを書くのが面倒ということなんだわ。

683 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 14:33:49.98 ID:S/CtHe8u.net]
>>682
それは自分で作らないと無さげですねえ

684 名前:デフォルトの名無しさん mailto:sage [2014/08/30(土) 19:11:57.66 ID:5dlfaubU.net]
wxFormBuilderでしかGUIとイベントを設計できない俺には何言ってるのかさっぱりわからんぜよ……

685 名前:678 mailto:sage [2014/08/31(日) 15:54:21.95 ID:X+I89xFV.net]
wxAUI のデモ・アプリ wxauitest.exe のサイズは、1,417,216 bytes。
スタンドアロンのアプリで、環境変数からパスを完全に消去しても起動
できた。つまり、ライブラリはDLLを使わずに静的リンクされている。
wxAUIはFloating & Dockingのできる強力なGUI。

>>678 に示した keyboard.exe はキーボードから押されたキーの値を
表示するだけで、上記アプリよりずっとシンプルなのにも関わらず、
1,887,758 bytes と 470,542 bytes も大きい。

理由は不明。

686 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 15:56:18.96 ID:5rh0udnx.net]
そんなことしなくても
DLLの依存関係調べるツールあるのに

687 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 16:01:12.95 ID:5rh0udnx.net]
ちなみにwxWidgetsで作った一番小さいexe探したら65kbのがあった

688 名前:678 mailto:sage [2014/08/31(日) 17:34:23.46 ID:X+I89xFV.net]
Windows実行形式であっても、コンパイラが、MinGW32 と VC++ でサイズに
大幅な違いが出てくるのかな?

689 名前:678 mailto:sage [2014/08/31(日) 17:41:03.82 ID:X+I89xFV.net]
>>687
それは DLL 版だよ。絶対に。

690 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 19:56:13.33 ID:F1QgxQvq.net]
>>685
実行ファイルの関数テーブルに何が入っているか nm で確認したら少しはわかるかもね

>>688
大幅とは行かないかもしれないがVC++はWindowsのみをターゲットにしているから
基本的にコンパイル後のバイナリサイズは MinGW > VC++ だよね



691 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 20:18:05.13 ID:da+aRwUf.net]
CodeBlocks + MinGW32 で、
wxWidgets の Monolithic、ASCIIライブラリ, 静的リンク で
最も簡単な Frame Based な GUI を作成してみたら、
2,073,600 バイトよりは小さくならなかった。

wxWidgets のライブラリは、
-Os
-ffunction-sections
-fdata-sections
でコンパイルし、
-Wl,--gc-sections -s
でライブラリ化した。その時のコマンド:

mingw32-make -j2 -f makefile.gcc CPPFLAGS="-MD -MP -DHAVE_W32API_H
-D__WXMSW__ -DNOPCH -DwxDEBUG_LEVEL=0 -DNDEBUG" CFLAGS="-mthreads
-fmessage-length=0 -ffunction-sections -fdata-sections -fno-builtin
-Os" CXXFLAGS="-mthreads -Wno-ctor-dtor-privacy -fmessage-length=0
-ffunction-sections -fdata-sections -fno-builtin -Os
-fno-keep-inline-dllexport" LDFLAGS="-Wl,--subsystem,windows
-Wl,--gc-sections -s -mthreads -mwindows"
BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1


CodeBlocks でアプリのリンクのオプションにも、
-Wl,--gc-sections -s
は付けてある。

692 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 20:27:38.74 ID:da+aRwUf.net]
ちなみに、Unicode 版より ASCII 版のほうが小さくなることを確認済みである。

[Compiler settings - #defines]
が、標準では、
__GNUWIN32__, __WXMSW__, WXUSINGDLL, wxUSE_UNICODE, WX_PRECOMP
となるところを:
__GNUWIN32__, __WXMSW__
だけとし、

[Search Directories] の Compiler, Linker, Compiler
の、gcc_dll の部分を、gcc_lib に変えた。

アプリにリンクするリンクライブラリとしては、上記で作成した Monolithic
ライブラリだけでは足りず、以下が必要であった。Win32のimport libraryは、
ライブラリを動的リンクする場合はライブラリのDLLが行っているので必要ない
が、ライブラリを静的リンクする場合は、アプリが直接リンクする必要がある
ため必要となるのは理解できる。libwxpng, libwxjpeg, libwxtiff, libwxzlib
が必要となった理由は不明。

libwxmsw28 // これが wxWidgets の monolithic ライブラリ本体。
libwxpng
libwxjpeg
libwxtiff
libwxzlib
libuuid // Win32 の import library
libcomctrl32 // Win32 の import library
libwinspool // Win32 の import library
liboleaut32 // Win32 の import library
libole32 // Win32 の import library

ちなみに、wxWidgets を動的リンクする場合は、ここが、libwxmsw28
だけで済む。

693 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 20:33:24.61 ID:da+aRwUf.net]
誤:[Search Directories] の Compiler, Linker, Compiler
正:[Search Directories] の Compiler, Linker, Resource Compiler

誤:Win32のimport libraryは、ライブラリを動的リンクする場合はライブ
  ラリのDLLが行っているの
正:wxWidgets ライブラリをアプリに動的リンクする場合は
  wxWidgets ライブラリの DLL 部分が Win32 の import library の
  リンクを行っているの

694 名前:デフォルトの名無しさん [2014/08/31(日) 20:45:44.37 ID:0aT2mco7.net]
サイズはどうでもよくないか。exeを使う側としては速度では?
あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。

695 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 20:48:05.22 ID:ks+4W1rG.net]
完全テンプレートライブラリにしたら軽くなるんだろうか

696 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 20:58:57.78 ID:da+aRwUf.net]
>>694
でも wxWidgets がやっていることの割にはリンクされるバイト数が多すぎる
感じがする。
基本、Win32をラッピングしているだけなのだから、2MBも必要ない。

697 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 21:00:34.83 ID:ks+4W1rG.net]
ラッピングしてるだけじゃなくマルチプラットフォームのために徹底した抽象化をしてるんでしょ
とソースも読まず推測

698 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 21:04:00.35 ID:da+aRwUf.net]
>>697
でもソースを呼んでみたら、たとえば、wxListCtrl なんかは、
Win32 の LIST CONTROL をそのまま使っていた。
DrawRect()などで書いているわけではない。
ただし、wxGenericListCtrl だったかは、DrawRect()みたいなグラフィック
関数で独自に描画していた。が、それは、Windows版では簡単には使えない
という噂を聞いたが。

699 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 21:06:47.60 ID:da+aRwUf.net]
>>697
wxWidgets の基本設計は、Widgetは、OS nativeの物を使うが、
どんなサイズであっても対応できるように Sizer で Layout を
コントロールする、という物。

なので、抽象化はサイズと配置程度で済むはずなのだが・・・。

700 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 21:09:35.31 ID:F1QgxQvq.net]
>>696

>>697の言ってることが正しい。

---------------------
    wxWidgets
---------------------
Win32 | GTK | Cocoa etc...
---------------------

wxWidgetsは通常のGUI用ライブラリに一枚レイヤを重ねた形になるので
型情報・関数テーブルの情報だけで結構容量食う

>>692
ASCIIモードでビルドするのはやめておいたほうがいい
日本語使えないし

というかなぜMonolithicビルドにこだわるのか…
普通にconfigureからビルドしてdllごと配布したほうが立ち上がりは早い



701 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 23:57:56.42 ID:da+aRwUf.net]
wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。

実は、Win32 の LIST CONTROL は、

・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
 行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
 とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
 奇妙な動作をする。奇妙な動作と言ったがバグに近い。

こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。

702 名前:デフォルトの名無しさん mailto:sage [2014/08/31(日) 23:59:28.64 ID:da+aRwUf.net]
wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。

実は、Win32 の LIST CONTROL は、

・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
 行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
 とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
 奇妙な動作をする。奇妙な動作と言ったがバグに近い。

こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。

703 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 00:00:47.70 ID:X69OanmZ.net]
>>700
>wxWidgetsは通常のGUI用ライブラリに一枚レイヤを重ねた形になるので
>型情報・関数テーブルの情報だけで結構容量食う

オイラはコンパイラの基本部分に詳しいが、それだけで1MBなどには
ならない。

704 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 00:06:51.19 ID:X69OanmZ.net]
>>694
諦めることも手かも知れないけど、やっている事の規模とサイズとの
ギャップに納得がいかない人もいるはず。

wxWidgetsはラッピング・ライブラリの一種。

8bit時代、16bit時代を知る人にとって、Widget 程度が64KBを超える
事があってはならない。どういうプログラミングをしたら2MBにもなる
のか。

705 名前:デフォルトの名無しさん [2014/09/01(月) 01:16:10.03 ID:7Pg7L2PA.net]
>>703
>>704
一理あるのでちょっとメーリングリストを探ってみたり
まず、wx/wx.hがいろいろなヘッダファイルを事前にincludeしているので
それがバイナリサイズの増加の一因になっているらしい

[wxMSW]: why EXE-files are so large?
https://groups.google.com/d/msg/wx-users/psTmm3nB6AU/9j6-4ir95-gJ

706 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 07:25:22.06 ID:X69OanmZ.net]
>>591 のライブラリを samples/keyboard にも使ってみたら、
keyboard.exe のサイズを 1,619,968 にまで縮小することに成功した。
コンパイラは MinGW32 のまま。
条件は:release, 非UNICODE(ASCII), SHARED=0(静的リンク), MONOLITHIC = 1

どうやら MONOLITHIC であるかどうかは最終 exe サイズには関係してないらしい。
ライブラリと言うのは集めてもばらしても、最終 exe のリンク結果には影響を
及ぼさない事が基本なので、元々当たり前なことなのだが。



[samples/keyboard]
$ mingw32-make -f makefile.gcc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1


[samples/keyboard/makefile.gcc の修整]
-------------------------------------------------------------------------------------
$(OBJS)\keyboard.exe: $(KEYBOARD_OBJECTS) $(OBJS)\keyboard_keyboard_rc.o
     $(CXX) -o $@ $(KEYBOARD_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG)
-L$(LIBDIRNAME) -Wl,--subsystem,windows -Wl,--gc-sections -Wl,-s -mwindows
$(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p)
$(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)
-lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG)
$(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) $(__CAIRO_LIB_p)
-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32
-loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32
--------------------------------------------------------------------------------------

上記は original の makefile.gcc に、
-Wl,--gc-sections -Wl,-s
を追加しただけ。

707 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 07:31:05.33 ID:X69OanmZ.net]
誤:>>591
正:>>691

708 名前: 【大吉】 mailto:sage [2014/09/01(月) 07:40:36.83 ID:zQucGkuf.net]
wxWidgets の samples で ListCtrl 関連を見てみたが、ヘッダを
ドラッグしようとしてもドラッグできないので、ドラッグによる列の入れ替
えは出来ないようだった。

実は、Win32 の LIST CONTROL は、

・マウスドラッグによる自動的な列の入れ替えをした際、どこにどの列が
 行ったかを掌握するには注意が必要。動作を知るには基本的に実験を必要
 とする。
・第1カラムを削除すると第2カラム以降を削除した時とは同じとは言えない
 奇妙な動作をする。奇妙な動作と言ったがバグに近い。

こういった辺りがどう処理されているか知りたかったのだが、サンプルでは
故意か偶然か、全くそこに触れていないようだった。

709 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 07:45:41.49 ID:X69OanmZ.net]
>>694
>あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。

>>692」で示した Win32 import library は、Windows のシステム DLL
をリンクするための小さなライブラリ。例えば、
libcomctrl32 をリンクしていても、実際は、comctrl32.dll が動的リンク
される。libcomctrl32.a は、MinGW32 が用意している import library で:

/xxx/CodeBlocks/MinGW/lib/libcomctl32.a # 86,428 bytes
C:/WINDOWS/system32/comctl32.dll     # 617,472 bytes

のように、windows/system32 の comctrl32.dll を動的リンクするための
呼び出し部分だけを提供する小さなライブラリ。

710 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 08:18:53.15 ID:1emh7fCQ.net]
map出力して何がリンクされてるか見れば?



711 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 14:09:14.38 ID:X69OanmZ.net]
MONOLITHIC の値が違うと別の *.o が作成されることが判明。
以下は、SHARED=0(静的リンク)の場合の、MONOLITHIC が 0 と 1 の場合。

CORELIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
  $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
  $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
  $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
  $(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
  $(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
  -I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
  -I..\..\src\expat\lib -DwxUSE_BASE=0 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
  -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)

MONOLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
  $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
  $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
  $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
  $(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
  $(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall -DWXBUILDING -I..\..\src\tiff \
  -I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex \
  -I..\..\src\expat\lib -DwxUSE_BASE=1 $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \
  -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS)

712 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 14:13:21.84 ID:X69OanmZ.net]
違いは、-DwxUSE_BASE の部分で、
 MONOLITHIC = 0 の場合 : -DwxUSE_BASE=0  // #define wxUSE_BASE 0
 MONOLITHIC = 1 の場合 : -DwxUSE_BASE=1  // #define wxUSE_BASE 1
となっている。

例えば、/xxx/src/msw/dc.cpp は、同じソースに対し make に渡すオプションに応じて
以下の2種類の *.o ファイルが作成される。
1つ目は、MONOLITHIC=0の時に作られ、2つ目は、MONOLITHIC=1の時に作られる。

ifeq ($(USE_GUI),1)
$(OBJS)\corelib_dc.o: ../../src/msw/dc.cpp
  $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif

ifeq ($(USE_GUI),1)
$(OBJS)\monolib_dc.o: ../../src/msw/dc.cpp
  $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif

ソースを見ると、wxUSE_BASE の値に応じて場合分けされている箇所が多数ある。
つまり、MONOLITHIC の 0 と 1 の違いは単に *.o ファイルの集め方の問題では無い。
コンパイル時点のソース自体が変更されるのである。故にリンク後の*.exe のサイズ
が変わって来ても不思議は無い。これは驚くべきことである。

713 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 15:21:49.13 ID:M8Jh9ISi.net]
別に驚くほどのことじゃ無いけど

714 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 16:14:53.94 ID:X69OanmZ.net]
>>713
コンパイルオプションまで変えてしまって何をやっているかと言うこと
なんだよ。ライブラリの集め方だけの問題じゃないって事なんだ。

ライブラリの動作が変わってしまい、MONOLITHIC が 0 と 1とで結果が違うことに
悩まされる可能性もある。

単にライブラリのオブジェクトの集め方(含み方)の問題では無いとすると、MONOLITHIC
オプションの意味はいったい何かと言う問題になる。


また、最終EXEが大きくなる理由として、アプリが使ってないオブジェクトを
非常に基本的なライブラリの一部が参照している可能性がある。
そしてそのオブジェクトが別のオブジェクトを勝手に参照して・・・という
事が続いて最終EXEのサイズが肥大化してしまっているのかも知れない。

715 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 16:33:12.36 ID:X69OanmZ.net]
wiki.wxwidgets.org/WxWidgets_Build_Configurations

「MONOLITHIC=1 :
 Packages all libraries in a single file.
 (Note: do not combine this option with a static build.)」

とあった。static build の時は、MONOLITHIC=1 にするな、と
書かれている・・・。

716 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 16:49:54.89 ID:zU7EZBBQ.net]
いったい何を目的として何を検証しているんだ?

717 名前:デフォルトの名無しさん [2014/09/01(月) 17:12:16.45 ID:bPa0tOdz.net]
このライブラリを使うなとなる。

718 名前:デフォルトの名無しさん mailto:sage [2014/09/01(月) 17:31:47.05 ID:X69OanmZ.net]
>>717
そういうわけではない。

719 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 13:46:25.35 ID:TmMSlGm8.net]
configure を試してみたら、configureのヘルプ通りには行かなかった:

・以下、xxx = wxWidgets-2.8.12 とする。/xxx/ に configure スクリプトがある。

・configureを使用するために、単なるcmd.exeではなくcygwin環境が必要であった。

・cygwinを起動する際、cygwin に入ってからの PATH が、
 (MinGWのbin) : /usr/local/bin/ : /usr/bin/ : (Winからのbin)
 の順になるようにした。

・カレントを /xxx/ にして configure した。configure の引数には少なくとも

・--build=i686-pc-mingw32 --host=i686-pc-mingw32 --target=i686-pc-mingw32
 を指定し、例外, rtti, regex, zlib, jpeg, png, tiff は無効にするオプション
 を設定した。他にも無効にしたものも多い。大量に及ぶので スクリプトに記述した。

・Makefileが普段の /xxx/build/msw/ ではなく、/xxx/ に作られた。

・/xxx/samplesのサブディレクトリにあるMakefileが書き換えられた。

・setup.h が、
 /xxx/lib/wx/include/msw-ansi-releasw-static-2.8/wx
 /xxx/lib/wx/include/msw-ansi-releasw-2.8/wx
 の二箇所に作成された。元々各所にあるが、例としては
 /xxx/include/ws/msw や /xxx/lib/gcc_lib/msw/wx にある。 

・/xxx/ で make[ret] してみた。

・途中で例外を有効にするように言われたので有効にした。

720 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 13:46:50.57 ID:TmMSlGm8.net]
・regex, zlib, jpeg, png, tiff は全て無効にしていたにも関わらず、
 src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
 ないエラーとなった。。
 そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
 を最後尾に追加した。

・make には成功した。

・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
 /build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
 である。

・/xxx/samples/console で make してみたら、成功した。

・「プロシージャエントリポイント _gxx_persolanity_v0 が
  ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
  のメッセージボックスが出て起動できず。

・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。



721 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 13:48:11.36 ID:TmMSlGm8.net]
・regex, zlib, jpeg, png, tiff は全て無効にしていたにも関わらず、
 src/regex, src/zlib, src/jpeg, src/tiff にしかない *.h ファイルが見つから
 ないエラーとなった。。
 そこで、Makfileを直接修整して、CPPFLAGS に -I 指定によって、上記ディレクトリ
 を最後尾に追加した。

・make には成功した。

・/xxx/ に大量の *.o ファイルが作られ、*.a は /xxx/lib/ に作られた。
 /build/msw から make した場合は、/xxx/lib/gcc_lib に作られるのと対照的
 である。

・/xxx/samples/console で make してみたら、成功した。

・「プロシージャエントリポイント _gxx_persolanity_v0 が
  ダイナミック リンク ライブラリ libstdc++-6.dll から見つかりませんでした。」
  のメッセージボックスが出て起動できず。

・Makefileを書き換えて、LIBS の最後に -lstdc++ を書いても症状は治まらない。

722 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 16:41:02.66 ID:TmMSlGm8.net]
console.cpp の中身を printf() だけを使う4行の main() 関数だけに
書き換えてみたら問題なく起動して普通に文字列が表示された。

なので、MinGW 環境の問題ではなさそう。

723 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 17:12:10.67 ID:TmMSlGm8.net]
wxPrintf()だけを使った console 版 hello world が、static link
で 96,468 bytes で済んだ。

ところが、wxString を使った場合、作成した exe を実行しようとすると
>>721 後半で書いたメッセージ・ボックスが出て起動できない。

724 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 17:17:49.98 ID:DoCZo715.net]
libstdc++がダイナミックリンクになってるだけだろ。

725 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 17:44:29.48 ID:TmMSlGm8.net]
>>724
ダイナミックライブラリであるところの
 libstdc++-6.dll
は既に読み込めているんですわ。
「libstdc++-6.dll から見つかりませんでした。」
の「から」がそれを表している。

なお、configureを使わずに、build/msw から build したライブラリだと
wxStringとwxPrintfだけを使ったconsoleアプリは、静的リンクでも
451,584 バイトで済むことが判明。こちらはちゃんと起動できる。

726 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 19:04:52.66 ID:DoCZo715.net]
パスが通ったところに互換性のない別バージョンのdllがあるんだろ。
mingwだとsjljとdw2の2種類あるから。

727 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 19:56:42.14 ID:TmMSlGm8.net]
MinGW/bin を

i686-pc-mingw32-g++ と MinGW/bin/g++ は別物らしくコンパイラのサイズ
(作ったプログラムのサイズではなく変換機のサイズ)がそもそも違う。

また、前者では、リンク段階で何もエラーを出さないが、
後者では、ちゃんと、_gxx_persolanity_v0 や _Unwind_Resume が
undefined reference というエラーになる。

728 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 20:00:33.47 ID:TmMSlGm8.net]
>>726
最初、xxx dw2 yyy.dll が見つからない、と言うメッセージ・ボックス
が出たのだが、そのdllを検索すると MinGW/bin にある事が分かって、
そこにパスを通したらそのメッセージ・ボックスは出なくなった。

その代わりに >>721 のメッセージ・ボックスが出るようになった。

729 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 20:55:48.58 ID:TmMSlGm8.net]
結論的に言うと、自分のローカルにMinGW32 の別バージョンが沢山あった。
サンプルのコンパイルに使われたのと同じMinGW32のbinだけをパスに
設定してからサンプルを起動すると実行できるようになった。
実行結果も問題ない。実行ファイルはstripするとサイズが小さくなったが、
>>691のライブラリをリンクした物よりも大きくなってしまった。

[wxStringを使った最小な cui program のサイズ]

>>691 のwxライブラリ使用時 : 451,584 bytes
 コンパイラは CodeBlocks付属のMinGW

・configureしたwxライブラリ使用時 : 547,342 bytes
 コンパイラは cygwinにインストールしたMinGW

[wxFrameを使った最小な gui program のサイズ]

>>691 のwxライブラリ使用時 : 1,611,264 bytes
 コンパイラは CodeBlocks付属のMinGW

なお、今回は、>>719-720 のような不具合を回避するため、RegExや、png,jpeg,tiff,zlib
などはconfigureで有効にしておいた。そうすると>>720の最初のヘッダファイル問題は
消えたので、何か良いことがあるかと思ったから。ただし、様子を見るとそれは必要なかった
かも知れない。サイズ縮小のためには disable にすべきかも。

730 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 21:12:01.59 ID:WV3CuJcS.net]
よかったな
-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
にすればlibstdc++とスタティックリンクできるかもな



731 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:46:11.97 ID:TmMSlGm8.net]
cygwin版のMinGWと、cmd.exe 版のMinGWって結構違うような気がしてきた。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。

build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。

さらに、makeが(?)
process_begin: CreateProcess(NULL, sh xxxxxx, ...) failed.
というエラーを出すことがあり、その原因を探る必要もある。

732 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:56:33.59 ID:RsSqk3ed.net]
もう完璧にスレ違いだな

733 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:56:38.09 ID:TmMSlGm8.net]
cygwin版のMinGWと、cmd.exe 版のMinGWって結構違うような気がしてきた。
Makefileなんかもcygwin版だと/cygdrive/c/xxx/yyy/zzz の形式になっている
のに対し cmd.exe版は c:\xxx\yyy\zzz になっているらしい。
また、コンパイラに -I 指定したパスなんかも同様の違いがあるらしく、
configureが作ったMakefileは、cygwin版MinGW用で、
cmd.exe版のMinGWでは、#inclde "wx/setup.h" のパスが探せなかったり
する。

build, host, target の指定は、全て mingw を指定していたのだから、
cygwinが入り込む余地は無かったはず。これは、configure.inか、
Makefileのどちらかを自前で修整する必要がありそう。

Makfileの / を \ で置換して、/cygdrive/x/ を x:/ にしてみたら結構
行ける。途中、pch でファイルにアクセス拒否で書き込めないと言われるが、
もう一度 make すると、何事も無かったように続行する。

734 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 22:57:58.06 ID:TmMSlGm8.net]
>>732
wx アプリのサイズダウンの仕方関連なんだけど。

735 名前:デフォルトの名無しさん mailto:sage [2014/09/02(火) 23:40:17.26 ID:wgXgojMH.net]
作ったバイナリのサイズなんてwxWidgetsのビルド方法によって大きく変わるうえ、
最終的に使い物にならないライブラリの出来上がりとなるのが目に見えている
本当に必要なものだけを炙り出すつもりなら止めはしないが、どう考えても徒労でしかないと思うぞ

736 名前:デフォルトの名無しさん [2014/09/02(火) 23:47:28.37 ID:r9jqoPj2.net]
正直wxWidgetsのバイナリサイズの話以外はほとんど既出だし
CygwinとMinGWの仕様の違い、クロスコンパイラのターゲット、configureの基本
それらの件に関しては自分のブログにでも書いていてほしい

737 名前:デフォルトの名無しさん [2014/09/02(火) 23:54:47.98 ID:r9jqoPj2.net]
まあ一応上から目線でコメントしとくと

>>725
libgccの存在に関して勉強不足、>>726の言うとおりdllの種別が2種類ある
DLLにするよりもlibgccだけスタティックリンクしたほうがいいが、libtoolにかませるのが
割と面倒なので一緒に配布したほうが楽、まぜこぜにするとか初心者くさい

>>727
クロスコンパイラとネイティブコンパイラを混同している

>>731
もうネット上で一万回は言及されたであろうCygwinとMinGWのファイルパスについて
述べているが無駄なのでやめてほしい、てか環境を混ぜるな

738 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 00:12:32.54 ID:RSu3l9Ti.net]
>>737
最後の段落について。

・cygwin版のMinGW ---> ファイル名はUnixライクな /cygdrive/c/xxx/yyy/zzz 形式だが、
             出来た実行ファイルはcygwinが無くても動作する。
             ユーザー・プログラムからは主にWin32 APIを使う。

・cmd.exe版のMinGW ---> 何もかも Windows 用。ファイル名もDOS式、
             出来た実行ファイルは Windows のみで動作。
             ユーザー・プログラムからは Win32 API を使う。

・cygwinのgcc    ---> cygwin環境で動く実行ファイルを作成する。
             ユーザー・プログラムからはUnix系関数を使う。

739 名前:デフォルトの名無しさん [2014/09/03(水) 00:20:01.40 ID:qMd+w6/O.net]
>>738
スレ違いだ、こっちでやれ
Cygwin + MinGW + GCC 相談室 Part 7
peace.2ch.net/test/read.cgi/tech/1357019230/

あとMinGWはcmd.exeではなくminttyから使うべきだ
さっさとネットで資料を探す作業に戻るんだな

740 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 00:37:00.57 ID:kYvXCnau.net]
ちなみに c:\cygwin\bin と c:\cygwin\usr\local\bin にパスを通せば、
cmd.exe からでも cygwin のコマンドが実行できるようになる。
gccもlsもmakeも。ここでbashを起動すればcygwin環境になる。



741 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 08:47:34.91 ID:VnTCGwbS.net]
久しぶりに2ちゃん観に来たら
wxのスレめっちゃ野比てて嬉しい

742 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 14:50:56.74 ID:kYvXCnau.net]
wx のソースを修正したら、wxString() を使った最小サンプルが、
静的リンクしても 70KB で済むようになった。

PATHには、MInGW/bin しか設定せずにテストしているので、wx の DLL
がリンクされている可能性は無く、間違いなくスタンド・アローンの
プログラム。

ちなみに、wx のソースを修正しなければ、451,584 バイトになってしまう。
>>729 に書いたものとほぼ同じプログラムだから。

743 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 15:05:09.35 ID:SXoWEkGr.net]
wxというよりgccとライブラリのお話で伸びている

744 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 16:58:33.04 ID:3zk9T5qQ.net]
>>742
dllの依存関係すらまともに調べられないのか
dependency walkerとかobjdumpとか使え

745 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 17:02:39.87 ID:SXoWEkGr.net]
mingw入ってるならlddコマンドでもいける>依存動的ライブラリ

746 名前:デフォルトの名無しさん mailto:sage [2014/09/03(水) 18:30:34.52 ID:kYvXCnau.net]
ただ、パス設定を空にして起動できるかどうか見るのも1つの確実な方法。

747 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 03:37:02.91 ID:FQO1vG1R.net]
性格悪いな。
コンピュータ・ソフト関連の人って。

748 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 17:23:39.03 ID:FQO1vG1R.net]
GUIアプリのサイズ縮小を試みていたが、断念するかも知れない。

749 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 18:46:24.22 ID:Sd68Xi30.net]
△性格が悪い
○無駄が嫌い
◎無駄な事をしてる奴が嫌い

750 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 15:14:57.29 ID:PbioWCRT.net]
>>749
何も悪いことをせず、自分にも害を与えない人を嫌うのが性格が悪いんだよ。



751 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 15:46:20.79 ID:JjYqHkIR.net]
公園の蚊を駆除するのに外側からじゃなくて内側から始めるとかが無駄
自分にも危害が及ぶので嫌

752 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 17:37:07.79 ID:MynIP2yf.net]
>>749>>750
言われた側が一方的に立場が悪くなるという効能は興味深いと思う
言ったもん勝ちという現象は絶対にあるのだ
>>751
生死にかかわる難しい判断を
「無駄なこと」に無理やりおしこめた詭弁
物事を矮小化させる効果もある

753 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 18:18:43.88 ID:NH0YjWIH.net]
>>751
正直言って、今回のこととの関連も分からない。
それ以前に外側から、内側から、ということの意味が全く分からない。
まるで会話ロボットが生成した文書のようだ。

>>752
この文書も意味不明。人間が書いたとは思えない全く理解できない文書だ。

754 名前:デフォルトの名無しさん [2014/09/05(金) 22:33:12.96 ID:Mt1E1+r6.net]
俺の大好きなwxWidgetsスレがめちゃんこ糞スレになって泣きそう

755 名前:デフォルトの名無しさん mailto:sage [2014/09/05(金) 22:52:37.72 ID:rFI2iHSs.net]
案の定あらし化したか
これ以上触れないで放っとくの推奨

756 名前:デフォルトの名無しさん mailto:sage [2014/09/10(水) 10:22:55.86 ID:8Y3LAJyJ.net]
wxWidgets って、GTK をバックエンド(port to)に使うことも出来るらしい
ね(wxGTK)。

上位のツールキットが、下位のツールキットに被さっているってことか。

X11 を直接バックエンドに使うのともまた違うのかな?

757 名前:デフォルトの名無しさん [2014/09/10(水) 18:37:52.75 ID:/KH51cxp.net]
      \       ヽ           |        /        /
          \      ヽ               /      /
‐、、         殺 伐 と し た ス レ に 鳥 取 県 が ! !      _,,−''
  `−、、                  __/\            _,,−''
      `−、、              _|    `〜┐         _,,−''
                      _ノ       ∫
                  _,.〜’        /
───────‐     ,「~             ノ    ───────‐
               ,/              ` ̄7
                |     島 根 県     /
           _,,−'   ~`⌒^7            /    `−、、
        _,,−''            丿            \,      `−、、
 ,'´\           /  _7       /`⌒ーへ_,._⊃         /`i
 !   \       _,,-┐    \    _,.,ノ          r‐-、、      /   !
 ゙、   `ー--<´   /      L. ,〜’             ゙、  >−一'′   ,'
  y'  U      `ヽ/     /            ヽ      ヽ '´     U   イ
                                ____
         /      __        |       \____\
    ___/__ / ̄    ____|____ \ \____\
       //ヽ   /___         /|\       \ \____\
     / / ヽ  / /__     /  |  \       \_______
   /  /   / /   /     /    |    \          |    \
  /   /  / /  _/   __/      |      \__      |     \  ̄―_

758 名前:デフォルトの名無しさん [2014/09/11(木) 00:33:29.51 ID:na3nzgh2.net]
>>756
X11は組み込み向けのportなので一般的には使われないよ(メンテされてるかもよくわからん)
Linuxでの使用の際はGTKベースと思っていた方がいい
つまりwxWidgetsのクラスやメソッドでコードを書いてLinux上でビルドするとGTKアプリができる

最近はwxQtというwxWidgetsからQtをバンドルするイカれたプロジェクトが本流にマージされたようだが…

759 名前:デフォルトの名無しさん mailto:sage [2014/09/11(木) 07:34:16.28 ID:BpRRpzGv.net]
wxQtってなんかメリットあるの?

760 名前:デフォルトの名無しさん mailto:sage [2014/09/11(木) 20:49:49.06 ID:na3nzgh2.net]
>>759
目的は、Qtベースのデスクトップ(KDE)でもwxWidgetsアプリを使うためとか
(→まあKDE上でGNOMEアプリを使うツールもあった気がするのだが…)
あとQtをバンドルすることでAndroid対応も果たしていた(実用性は不明)



761 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 10:47:54.87 ID:w24nfmYL.net]
wxWidgetsで、POPUP Menu (Windows では、Context Menu が正式名称かも)を作る場合、
どうしてますか?

特に、CodeBlocksなどのIDEで行う場合の最良の作法が知りたいです。
自分は、基本的な wxSmith の使い方が分かったところです。

762 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 11:29:17.36 ID:vSDiSYyP.net]
MenuItem作って
SubMenu作って
AddItem

763 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 11:47:23.49 ID:S8WOzChk.net]
>>762
それは手作業の場合ですよね。
そこの部分は対した手間ではないですが、
イベント・ハンドラを*.cpp, *.h, EVENT_TABLEの全てに書くのが面倒で。

764 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 11:47:52.57 ID:vSDiSYyP.net]
どうぞ
https://www.youtube.com/watch?v=jCW7DZ6gdAo

765 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 12:20:43.41 ID:k4huCAJU.net]
>>764
これ、今ちょうど数秒前に見終わったところだった。

これ見てると、

1. wxSmithでwxFormをエディット中に、「MenuBar」ではなく「Menu」ボタンを押して
 「要素」を追加する。
  そうするとwxSmithの上辺に要素のアイコンが並んでいる末尾に新しいアイコンが追加される。
2. 追加したMenu要素に名前を付ける。
3. wxFormの中に既に配置してあったwxPanelに対して、マウス右UPイベントに対応するハンドラを追加する。
4. そのハンドラの中に、手作業で PopupMenu()関数の関数呼び出しを書き、
  その引数に2.でMenuに付けおいた名前を書く。

こここまでは大した手間じゃない。

その後が問題で、EVENT_TABLE の「自動的にwxSmith が作成する範囲」の外側(直後)に、
POPUP MENUのMENU項目数分だけ、手作業で Connect() 関数を書いている。メニュー項目が7個だと、
Connect()関数も7個書く。それぞれ、MENU項目に付けた ID_xxxx の値と、対応する自前の
イベント・ハンドラの関数名を引数に指定して。


最後の部分が知りたかった事で、POPUP MENUの作り方としてはかなり面倒な方法に属する。

766 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 12:28:57.27 ID:ylwL1QX/.net]
馬鹿には無理

767 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 14:27:34.99 ID:8yVPY0Zt.net]
7個のメニュー項目にイベント結びつけるのに7行コード書くのって、そんな突出して面倒か?

768 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 15:27:57.79 ID:mqgnzDe4.net]
>>767
それは、「EVENT_TABLE」の箇所だけの話で、実際は、*.h に
メンバ関数宣言を7つ書き、*.cpp に
Zzzz Ccccc::OnXxxxx( Yyyy *pYyyy )
{
return Qqqqq;
}
みたいなの(4行)を 7 つ書く必要がある。

少なくとも (1+1+4)*7 = 42 行だ。

769 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 16:36:39.60 ID:ylwL1QX/.net]
IBみたいなのを期待したら駄目

770 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 19:11:10.85 ID:cDGrnlyB.net]
なんで今更wxSmithなんだよ古臭いな
なんでイベントテーブル使ってんだよ古臭いな
黙ってwxFormBuilder使ってみろよメッチャ簡単で笑えるぞ



771 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 19:15:42.12 ID:nAjxttHn.net]
>>770
IDEとの組み合わせは?

IDEがサポートしていなくてもいけるんだろうか?

772 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 19:26:00.24 ID:cDGrnlyB.net]
>>771
ちんまい個人用ツールしか作った事が無いから大規模プログラムでどうなるかは分からんが、
俺はwxFormBuilderでGUIデザインし、VisualStudioでコード書いてる。
GUI部品を追加したくなったら、いつでも追加編集できる。
もちろんイベント追加も問題ない。
VSでコード書きつつGUIエディットしても、VSにフォーカスを移したら勝手に読み込み直してくれる。

今まで書いたコードがGUI生成時に消去される事も無い。
これにはちょっと条件があるけどな。

773 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 19:30:56.63 ID:nAjxttHn.net]
>>772
POPUP MENU を作る時、EVENT_TABLE を使わずに何か良い方法で
やってくれるのかな?

774 名前:デフォルトの名無しさん [2014/09/12(金) 19:38:30.73 ID:RfUl3Wi+.net]
wxFormBuilderかあ
もはやクロスプラットフォームでGUIがGUIでデザインできるのか(しかもフリーソフトウェア)

775 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 19:39:02.29 ID:nAjxttHn.net]
VSは、外部エディタでソースを編集した場合、VSに戻ると自動的に再ロード
してくれる機能がある事は知ってる。これは昔からある機能。

776 名前:デフォルトの名無しさん mailto:sage [2014/09/12(金) 20:52:41.52 ID:cDGrnlyB.net]
>>773
凝りに凝ったメニューは知らんが、ポップアップメニューの作成および
メニュークリック時のイベント生成なんかは全部wxFormBuilder上で出来る。
従来のイベントテーブルでも生成してくれるし、Connect関数を使ったイベント生成も出来る。
今はConnectも古くてBindがトレンドらしいが、詳しくは知らない。

www.dotup.org/uploda/www.dotup.org5309542.zip.html
参考までに、wxFormBuilderのみで作ったサンプルコードを添付する。
自分で書いたのはmain.cppとthis->Close();だけ。
VS2013 + wxWidget3.0.1でビルド確認済。

777 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 07:40:07.50 ID:CAfEAxmE.net]
>>776
これは、どうやって作ったの?
生成されたコードも参考にはなるけど、wxFormBuilder上での操作方法が
知りたい。

778 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 16:39:39.92 ID:JrIr4YUs.net]
>>777
説明がめんどくさいから、wxFormBuilderでこの「wxMenuTest.fbp.」を開いて確認してくれ。
あとは適当に触ってれば理解できるだろ。
www.dotup.org/uploda/www.dotup.org5310926.zip.html

適当にGUIを作ったらF8キーでメインクラスを生成して、
その後F6キーでサブクラスを生成すればいい。

あとは添付した「main.cpp」みたいなコードを書いてビルドすれば目出度くGUIプログラムの完成だ。

779 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 17:37:50.07 ID:dXOJBgge.net]
レイアウトやイベントの仕様が
前もって分かって一発で決まるようなものならいいけど
そうでない場合は細かいテクが必要になるんだよなぁ
VB,delphi,VisualStudio他のポトペタとは違って
基本クラスや継承クラスの生成コードは
上書きしちゃってよしなにしてくれないから目視マージが必要になる
で、それならxrcでいっかなとなったりとね
あとは最近のバージョンでは修正されてるかも知らないけど
splitter > panel > sizer > xxx
の深いネストが嫌いだったな
バグだよね

780 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:03:46.11 ID:iQniTJEB.net]
>>778
出来れば言葉で説明していただけるととても有難いんだけれども。



781 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:20:32.24 ID:iQniTJEB.net]
>>776
MyProject1MyFrame1.cpp に、

void MyProject1MyFrame1::m_button1OnButtonClick( wxCommandEvent& event )
{
  // TODO: Implement m_button1OnButtonClick
  this->Close();
}

と類似の行が沢山あるけど、this->Close() 以外は、wxFormBuilder が自動生成したとのことで Ok ?

>>779
>基本クラスや継承クラスの生成コードは
>上書きしちゃってよしなにしてくれないから目視マージが必要になる
>で、それならxrcでいっかなとなったりとね

この辺りとの関連が知りたい。自分で書いたコードが勝手に上書きされて消されてしまうということ?

782 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:22:33.01 ID:iQniTJEB.net]
そもそも wxFormBuilder って、人間が書いたコードと「マージ」や「アペンド」する機能は全くなくて、
デザイナのテキスト領域に表示されるコードをコピペして使う程度の事しかできないのかな?

783 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:27:14.64 ID:lhtCGruO.net]
xrcはwxFormBuilderだとwxRibbonとかで生成に抜けがあるよね
これ自体はそのうちなおるだろうけど、案外使われてないのかなxrc

784 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:54:43.70 ID:iQniTJEB.net]
class MyFrame1 : public wxFrame {・・・};
class MyProject1MyFrame1 : public MyFrame1 {・・・};

となっていて、

stackoverflow.com/questions/8255753/how-to-add-personal-code-into-wxformbuilder-generated-class



・build your frame/panel in formbuilder
・generate inherited class
・implement your handling code in inherited class
・make changes to form/panel in wxFormbuilder ->
 will only affect generated class, not inherited class

の最後の行と矛盾するね。

wxFormBuilder は、MyFrame1 は書き換えるが、それを継承した所の MyProject1MyFrame1 は、最初の
一回しか書き換えない(というよりユーザーが指示しないと生成しない)、ということらしいから。

785 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 18:57:59.23 ID:iQniTJEB.net]
つまり、>>781 のイベント・ハンドラにおいて、this->Close(); の外側の部分も手作業で
書くしかないのではなかろうか?

そして、対応する *.h ファイルの中に、同じ関数のメンバ関数宣言も手作業で追加するしかないのでは?

786 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:05:46.06 ID:lhtCGruO.net]
実装の中身以外は何一つ手では書かないっていうなら、wxWidgetsは投げ捨てて
QtCreator有するQtか、C++ Builderあたりを使うしかないよ。
wxFormBuilderはIDEじゃないし。

787 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:07:33.52 ID:iQniTJEB.net]
>>786
QtCreator では、それが出来るのかな?

788 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:09:46.08 ID:o7tow4WW.net]
XRC最強なんですけど

789 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:18:48.99 ID:JrIr4YUs.net]
>>785
言葉通りに受け取ってくれればいい。
本当に「this->Close();以外書いてない」んだ。
つまり関数実装部は全て自動生成される。

つーか試してくれよ。
これだけ御膳立てしたんだからさ。

790 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:23:58.85 ID:iQniTJEB.net]
>>789

大体、答えが分かった。

つまりあなたは、wxFormBuilder に MyProject1MyFrame1 を生成させて、
this->Close();
を追加したんだ。


そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
this->Close();
を自分で書かなきゃならない。

それが、>>779 の意味だね?

だとすれば、this->Close(); の部分は、実践的には、もっと長くなるのだから、
物凄く面倒で、なおかつ危険が伴う作業になるね。



791 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:27:26.32 ID:iQniTJEB.net]
>>790

>そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
>this->Close();
>を自分で書かなきゃならない。

ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
コピーする必要があるということになる。

ボタンやメニュー項目の個数をN とすると、O(N^2) の作業時間が必要になるね。

792 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 19:44:06.05 ID:JrIr4YUs.net]
>>790
> そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
> this->Close();
> を自分で書かなきゃならない。

そこらへんに少しコツがあってな。
自動生成された部分を一切変更しない限りにおいて、
後から機能追加して再度サブクラスを生成した時、以前書いた部分は削除されない。
つまり今回の例では「this->Close();」は消えずに残る。
逆に言えば「// TODO〜」コメントの削除や編集すら許されないという事なんだけどな。

これが守られなかった場合、同名の(空の)関数が別に生成される。
この場合は旧関数から新関数へのコピペおよび旧関数の削除の手間が生じるが、
いずれにせよ一度書いたものが消える事は無い。

ヘッダファイルにおいても同様であり、
//// end generated include と
/** Implementing MyFrame1 */ の間、それと
//// end generated class members 以降の行に書いた内容は削除されない。
安心して機能追加できる。
不安だったら再生成する前にバックアップ取っておけばいい。

問題があるとすれば、コードのインデントが全て消える事。
Eclipse等開発環境のコードフォーマッタで解決するが、3.4.0beta時点では
インデント維持されてた筈なんだ。なんで維持されなくなったんだ?
俺の見落しか仕様かバグか。

793 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 06:35:44.14 ID:wTwol/0w.net]
なるほど、wxFormBuilderも新規出力(全書き換え)しかできないわけではないという
ことなの?

どうやるのかな?

794 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 06:44:15.89 ID:wTwol/0w.net]
あと、EVENT TABLEが古いと言ってる人がいたけど、Connect()がそれに置き換わっただけ
だからね。使う側から目線では(抽象的な意味では)変わってない。配列で静的に持っているか、
関数で登録するかの違いに過ぎないから。

795 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 07:18:40.80 ID:wTwol/0w.net]
以下によると、wxSmith には、TOP LEVEL RESOURCE を2つ以上作成する方法が見つからないらしい。
いったん、1つのTOP LEVEL WINDOW を作ると、全てがそのウィンドウの子供になってしまう。
POPUP MENU や、メインウィンドウに付随する1群のダイアログは、作るのが難しいらしい。
それに対して、wxFormBuilderは、2つ以上の TOP LEVEL RESOURCE を作ることが出来る、
と主張している。


forums.codeblocks.org/index.php?topic=15742.0

It's one of reasons why I have switched from wxSmith to wxFormBuilder.
I haven't found how can I create more than one "top level" resource in my XRC file using wxSmith.
Once I created a top level window, everything needed to be a child of this window.
Create a set of popup menus? Forget it. Create a set of dialogs along with your main window? Forget it.
wxFormBuilder allows more than one top level resource.
Moreover, wxFormBuilder can create only a XRC file - well, it creates a code, too,
and you can paste parts of the code in your own code.

I am curious what I have missed. I am a "XRC user", too.

796 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 10:11:50.71 ID:pzVlR1Le.net]
お前が返信に時間かかってるのは煽るための文言を探してくるためか?
これだけ御膳立てしてやっても自分では一切手を動かす気は無いんだから、
呆れを通り越して笑いすら出てくるわ。俺はお前の保護者じゃねえよ。
英文は読めるみたいだからソフトの使い方が分からない筈があるまいに。

>>793
こんな問いに答える気はもう無い。理由は上記の通りだ。
今まで以上に噛み砕いた説明は俺には出来ないし、
そもそも手を動かしていれば既に理解している筈の内容ばかりだからな。
F8とF6からクラス選んで名前付けてコード生成すら出来ん奴が本当にプログラム書けるのか?
無理しないでVSやMonoでC#あたり使ってればいいんじゃないか?
そっちの方がずっと楽だぞ。

>>794
それ書いたのは俺だが、利用上はそれだけの違いでは済まないという事も
英文読んだなら理解できてるはずだろ。煽るためのネタにはならんぞ。
柔軟性は高いに越した事はなかろうよ。
もちろんその機能が自分にとって役立つかどうかは別問題だ。

797 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 12:57:54.21 ID:wTwol/0w.net]
>>796
誰も悪気がやってやってるわけじゃない。
あなたが勝手にそう取ってるだけだよ。

798 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 19:26:47.68 ID:P8BkuFbg.net]
>>791
それは難癖だよ
継承側で動的バインドという
他と同じ手法を取ればいいだけの話だから
手間はおんなじだよ

>>792
その癖やコツをつかむのに
試行錯誤したりソースを読み解く必要性があるのが辛いんだよね
正味な話不安で信用ならない
手動目視でDiffるか
PEGでも使って自前で書いたほうが楽

799 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 19:52:29.25 ID:wTwol/0w.net]
>>798
前半意味不明です。

800 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 20:11:08.81 ID:P8BkuFbg.net]
>>799
> ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
> でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
> コピーする必要があるということになる。

電卓とか参考になると思うよ



801 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 08:45:18.98 ID:7daUusVM.net]
>>800
ならないと思う。
全てのボタンを一気に wxFromBuilder で作ってからイベントハンドラの
コードを手作業で書けば問題は表面化しないから。

そうでなくて、実際のプログラミングでは、機能追加のたびにボタンを追加して行く
ような作業が必要となる。

その時に上書きされてしまうかどうかがポイント。

802 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 10:58:47.94 ID:WIy8nvhC.net]
xrcでFA

803 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 19:07:00.41 ID:LoW0dSpU.net]
だから「ソフトの様式さえ守っていれば」書いたコードが消去されるような事は無いと何度言えば分かってくれるんだ。
試してないのが丸判りだ。ほんっっっっっっとに口ばっかりだなお前は。
これで悪気が無いというんだから最悪だ。本当に本当に最悪だ。

そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?

804 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 00:01:13.35 ID:5MCxTvVt.net]
>>803
全部自分で試さなきゃならないなら、人に聞く権利がなくなるじゃん。
試すのが時間がかかりすぎるから、誰かが試した結果が文書化されるん
だから。

805 名前:デフォルトの名無しさん [2014/09/16(火) 02:40:02.42 ID:JmUjnEhI.net]
これは一緒に仕事できないタイプですわ

806 名前:デフォルトの名無しさん [2014/09/16(火) 02:41:50.55 ID:JmUjnEhI.net]
自分はネット上に調べ物を書くときは自分が試した範囲のことしか書かないよ
妄想の実行結果で文句言ったりしないし、困難があれば自分で突破する

807 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 09:52:32.15 ID:5MCxTvVt.net]
「共助」という概念を知らないの?
「自助」しかしてはならないなら、掲示板の意味がほとんど無くなる。

808 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 15:26:46.89 ID:5MCxTvVt.net]
>>803
>そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
>保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?

これは駄目。

なぜなら、また、*.cpp と *.h に決まりきったコードを書く必要が出てくる
から。イベントハンドラ 1 つずつにこれを書く作業が大きなロスを
生む。

809 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 22:49:04.68 ID:rQo1SAiX.net]
>>804
共助?お前だけは言っちゃいかん言葉だ。
1から100まで他人に聞いてばっかじゃんかお前。
お前がスレの閲覧者に対して何か有益な事一つでも書いたか?
ぜ〜〜〜〜〜んぶ愚痴もしくは煽りじゃんか。

全部自分で試さなきゃいけないとか言ってるがよ。
そもそもお前、俺の言った事何一つ聞く気が無いだろ?
徹頭徹尾お前はコードが消える前提でしか話してない。
信じてるなら未だにコードが消えるなんて言ったりする筈が無いからな。
書かれた事を信じず、そのくせ試す気も無い奴が共に助け合う?笑わせんな。

あと、決まりきったコードを書く必要が出てきてはダメな理由がまるで分からん。
そもそも一度書いたら終わりなのに、なんでロスなんだ?
具体例をサンプルコードで挙げてくれないか。
共助とか抜かしてるんだから勿論やってくれるよな?

810 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 22:56:48.49 ID:l7dE9nrH.net]
>>809
もうほっとけよ。相手するだけ無駄だ。



811 名前:デフォルトの名無しさん mailto:sage [2014/09/16(火) 23:45:52.12 ID:5MCxTvVt.net]
>>809
あんたが作ってるプログラムとは規模が違うからだよ。

812 名前:デフォルトの名無しさん [2014/09/16(火) 23:46:54.65 ID:JmUjnEhI.net]
てか決まりきったコードを減らすためのテンプレート?
そのためのメタプログラミングでしょ

813 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 00:02:45.14 ID:i4FG8Gei.net]
>>812
はあ?

814 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 00:51:45.07 ID:i4FG8Gei.net]
>>809
中段、あんたの言っていることはある程度は分かるんだよ。
でも、wxSmith の方が遥かにドキュメントが充実している上に、
CodeBlocks に統合されており、元々の設計からしてwxFormBuilderの
ような勝手な新規上書き仕様にはなってない。

wxSmithではマージやアペンドは当たり前なんだよ。その上で、
POPUP MENU だけは、作り方が分かたなかったから詳しい人に
聞いてみたかったんだ。質問する側が、答える側の言っていることを
全部試すなんて期待すべきじゃないぞ。

815 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 00:56:23.54 ID:i4FG8Gei.net]
なんちゅうか、wxSmithは古いと勝手に決め付けて、wxFormBuilder
の方がいいという主張なんだから、どう良いかはあんたが説明すべき
でこっちに試せと言うのはお門違いなんだよ。

そもそもドキュメントが少なすぎる。試すしかないないなんて、
原始人レベルじゃないか。仕様は紙に書くのが基本だが、wxSmithの
場合は動画も多いからまだいいんだよ。wxFormBuilderなんて駄目
なんじゃないのか。進めている海外サイトもあるが、開発者本人が
書いているだけかも知れんから、信用すべきじゃない。

816 名前:デフォルトの名無しさん mailto:sage [2014/09/17(水) 20:01:28.47 ID:OwhU3Vur.net]
wxFormBuilderがどう良いかはもう書いた。お前が理解しようとしてないだけだ。
あとはお前が試すだけなんだが、自分が知らない新しい技術を試す気が無い
臆病者には永久に理解する事は無理。だからもう何もやらなくていい。お前を諭す事は諦めた。

まだ「勝手な新規上書き」とか言ってるしな。しないって何度言わせるんだか。
なんで理解しようとしないんだ。正規のドキュメントじゃないからか。
同じ事を書いてる奴が俺以外にいないからか。
それとも2chの落書きは信用ならんと?だったらなぜここで質問なんかしたんだ。
wxSmithだろうが何だろうが2chの書き込みって時点で信用度は同じだろう。

なんのかんのグダグダ言っても、結局wxSmithに関する事以外は試す気が一切無いという事も良くわかった。
もうお前が俺を論破して俺が尻尾巻いて退散したって事でいいや。相手するのがバカらしくなった。
所詮お前はマニュアルがブ厚いだけで満足する好奇心の無い老害だって事もわかったし。
ついでに口だけプログラマで、ちょっとしたサンプルコードも書けない無能だって事もね。

「馬鹿には無理」
いい台詞だわ。今頃になってつくづく思うよ。

817 名前:デフォルトの名無しさん mailto:sage [2014/09/18(木) 06:03:45.56 ID:xGrJvmYs.net]
自己紹介乙

818 名前:デフォルトの名無しさん mailto:sage [2014/09/18(木) 12:03:25.71 ID:jy/8T9ef.net]
>>816
質問者に対して試さないから無能だなんて、なんて性格悪いの。

819 名前:デフォルトの名無しさん mailto:sage [2014/09/18(木) 12:08:26.46 ID:exm91MOI.net]
だよな。ゆとり世代がメインストリームのご時世に
再質問する前に手を動かすなんて面倒なことしてくれるなんてかんがえるほうが愚か

820 名前:デフォルトの名無しさん mailto:sage [2014/09/18(木) 12:22:18.94 ID:bb7rxdqO.net]
感情や思考を産み出しているのはあなた自身
怒るか怒らないかを決めるのもあなた自身



821 名前:デフォルトの名無しさん mailto:sage [2014/12/19(金) 20:18:18.31 ID:TVDdwTgk.net]
mingw32でwxWidgets作ったら、それを使って作ったプログラムがwinspool.dllがないって怒られるんだよね。
ググったらlibwinspool.aのwinspool.dllをwinspool.drvにバイナリエディタで書き換えたら桶みたいなのがあって試したら動きやがんのな。
まあ、自分のパス通している所にwinspool.drvをwinspool.dll名義で置く方が安全かもしれんが。

822 名前:デフォルトの名無しさん mailto:sage [2014/12/19(金) 20:32:35.26 ID:rnHGXeI5.net]
プログラミング未経験者も大歓迎

823 名前:デフォルトの名無しさん mailto:sage [2014/12/20(土) 10:21:06.56 ID:NupXv0Mp.net]
>>821
今ならmsys2のpacman使えばwxWidgetsのバイナリがすぐ手に入る
自前ビルドはライブラリのデバッグするのでもないかぎり不要やで

824 名前:デフォルトの名無しさん [2014/12/20(土) 12:24:25.48 ID:e+FqSQyU.net]
JaneCloneのひとかな

825 名前:デフォルトの名無しさん mailto:sage [2014/12/20(土) 12:43:19.97 ID:NupXv0Mp.net]
正体ばらすのやめろや

826 名前:デフォルトの名無しさん mailto:sage [2014/12/22(月) 04:48:02.90 ID:+z5apoGR.net]
自分でコンフィグ(config.h)いじってライセンスに問題ありそうなregexや必要ないコンポーネント除去したり
必要なものだけ自分のプロジェクトに含めて一緒にコンパイルしたほうが小さくなるし最適化よく効いていいで

827 名前:デフォルトの名無しさん [2014/12/22(月) 05:05:52.44 ID:BayKO7Ke.net]
thx!

828 名前:デフォルトの名無しさん [2015/02/21(土) 05:55:29.37 ID:QWPWn37f.net]
trunkのgcc5をビルドした
"これまでのgccでビルドしたwxライブラリ"はgcc5じゃ使えなくなるっぽい
自前ビルドのwxライブラリが"再配置が必要"とか言われて使えなかった
gccを4.9.2に変えたらビルド出来た

fltkも同じで、gcc5でfltkのライブラリ作り直したらビルド出来た
が、gcc5でビルドしたライブラリをgcc4.9で使うとビルド出来ない
ひょっとするとgcc5になるとほとんどのc++ライブラリ(特にguiのヤツ)はビルドし直しになるかもしれん
ググったらABIの仕様が変わるって書いてあるけどそのせいかしら

829 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 07:34:22.52 ID:naHue2Us.net]
情報ありがとう

830 名前:デフォルトの名無しさん mailto:sage [2015/02/28(土) 22:02:38.00 ID:PvSLHqNB.net]
メジャーバージョン上がっちゃうとAPIレベルで変わっちゃうからしゃーないね
たぶんlibcとかglibとかも同じじゃないかな



831 名前:デフォルトの名無しさん mailto:sage [2015/03/28(土) 17:27:29.56 ID:P0TSch/c.net]
wxWidgetsいじってみたいのだが、基本ビルドしないのでwin環境でビルドの最に必要になってくるライブラリ列挙していただける方居ませんか?

832 名前:デフォルトの名無しさん [2015/06/26(金) 16:25:48.92 ID:Z/m1CsSA.net]
とりあえずpacman -S mingw-w64-x86_64-wxWidgetsしたんだがこの後どうすればいいんだ

833 名前:デフォルトの名無しさん [2015/06/26(金) 16:31:37.93 ID:GEWLy8h+.net]
なんでmingw版落としたん?

834 名前:デフォルトの名無しさん [2015/06/26(金) 16:38:13.77 ID:Z/m1CsSA.net]
えっバイナリあるからそれ使っちゃえって思ったんだけどもしかして自前ビルドの方がいい?

835 名前:デフォルトの名無しさん [2015/06/26(金) 16:44:59.52 ID:GEWLy8h+.net]
なにこの右斜め上に返事したら左斜めに質問が来た感じ

836 名前:デフォルトの名無しさん [2015/06/26(金) 16:50:00.99 ID:Z/m1CsSA.net]
おすすめの導入記事とかあったら教えてほしいです

837 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 15:27:20.76 ID:8LbvcvQd.net]
そんなものがあったら、もっと広まっている

838 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 16:29:29.77 ID:n/fjwSaZ.net]
導入さえ乗り越えれば後はサンプルみればどうにかなるしな

839 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:39:04.28 ID:YBvq0FDq.net]
情報が少ないって事は記事書けばアクセス数稼ぐチャンスだと思いな

840 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 15:24:09.15 ID:KifmszY9.net]
wxWidgetsはマジ糞だな、MFCの方が全然イイ



841 名前:デフォルトの名無しさん [2015/09/04(金) 08:35:48.11 ID:efXmgHpK.net]
MFCのどこが良いのかわからん

842 名前:デフォルトの名無しさん mailto:age [2015/10/06(火) 15:40:27.57 ID:ZA2UYVtv.net]
サイザーage

843 名前:デフォルトの名無しさん [2015/10/15(木) 18:04:05.06 ID:bdlPZJI1.net]
じゃね

844 名前:デフォルトの名無しさん [2015/10/20(火) 22:22:51.11 ID:YDU/TMA1.net]
またね

845 名前:デフォルトの名無しさん [2015/10/22(木) 17:54:23.14 ID:522gqyPw.net]
>>841

846 名前:デフォルトの名無しさん [2015/12/20(日) 14:18:08.28 ID:8RLYRFXT.net]
MainLoopをマルチスレッドしたいんですけど

847 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 18:09:14.97 ID:gfHpj7/Q.net]
>>846
多分出来ないと思うけど、一体何がしたくてそんなことを思いついたの?

848 名前:デフォルトの名無しさん mailto:sage [2016/03/08(火) 21:50:09.25 ID:GSBFVjCW.net]
wxRichToolTipってwxToolTipのサブクラスじゃないのか…
マウスカーソルがしばらく置かれたら表示ってしたいときは、自分で全部動きを用意するしかないのかな

849 名前:デフォルトの名無しさん [2016/08/07(日) 17:01:07.98 ID:sg2m+nAp.net]
>>848
そうでもない

850 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:33:57.93 ID:yMAnqOnE.net]
wxInputFileStream使ったらゲロ遅でワロタ



851 名前:デフォルトの名無しさん [2017/04/05(水) 01:28:05.09 ID:RSHU1D2c.net]
XWindowのオススメの書籍ってありますか?

852 名前:デフォルトの名無しさん [2017/07/19(水) 18:46:12.39 ID:IRmsE5AJ.net]
オチ防止

853 名前:デフォルトの名無しさん [2018/04/22(日) 12:40:47.44 ID:Z/3cdx8F.net]
wxpythonでボタンをクリックしたら別のpyに書いたウィンドウを表示させているのですが、開いたpyウィンドウを閉じるともとのボタンをクリックしても再実行されません。
importは一度だけというのはわかっているのですが・・・

どのような記述をすれば閉じても何度でも再実行できるようになるのでしょうか。

教えて下さい。

854 名前:デフォルトの名無しさん [2018/04/22(日) 16:52:52.79 ID:/RR+q6wr.net]
うちは問題ないよ

855 名前:デフォルトの名無しさん [2018/05/23(水) 19:41:55.71 ID:Au5e7VGg.net]
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

M8KJ6

856 名前:デフォルトの名無しさん [2018/07/05(木) 01:49:53.33 ID:RfoszcD2.net]
C44

857 名前:デフォルトの名無しさん [2018/07/05(木) 11:37:49.79 ID:IcGtf/nv.net]
なんなん

858 名前:デフォルトの名無しさん mailto:sage [2018/08/17(金) 09:54:58.81 ID:xjFqJl5K.net]
サイザー age

859 名前:デフォルトの名無しさん [2019/01/17(木) 11:26:06.61 ID:uUdEyVn6.net]


860 名前:デフォルトの名無しさん [2019/03/13(水) 20:13:36.76 ID:fxOETnKT.net]
閑古鳥〜
みんな使ってないんか



861 名前:デフォルトの名無しさん [2019/03/14(木) 13:20:37.52 ID:q8OuUl64.net]
これの文字コード変換ツール(UTF8とwchar)バグってない?

862 名前:デフォルトの名無しさん [2019/06/19(水) 05:00:24.24 ID:tVNS+22r.net]
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/

863 名前:デフォルトの名無しさん mailto:sage [2019/07/31(水) 12:43:07.98 ID:H3/ddQUH.net]
サイザー age

864 名前:デフォルトの名無しさん [2020/07/07(火) 15:21:00.59 ID:HEz8AVd5.net]
wxPythonのDataViewCtrlでValueChanged()呼んだ後のソート結果がおかしい(ソートが途中で終わってる)ことがあるんだがなんでやろ。
ValueChanged()で指定したオブジェクトがその後のDataViewModel.Compare()でなぜか引数のitem2の方に入ってるときはそうなる。
助けて…

865 名前:デフォルトの名無しさん [2020/07/07(火) 16:27:36.85 ID:092JXqIf.net]
codepad.org/
ideone.com/

866 名前:デフォルトの名無しさん [2020/07/08(水) 17:58:54.49 ID:jTRnvqGS.net]
https://pastebin.com/49kBvu8t
https://github.com/wxWidgets/Phoenix/
にパッチ当てて
demo/DVC_DataViewModel.py を実行してAcquired列でソートしてみてください
こちらの環境はPython 3.7.3@windows10、wxPython 4.1.0

867 名前:デフォルトの名無しさん [2021/04/09(金) 15:12:16.49 ID:tQcHQU6Y.net]
wxGLCanvas 意外と使えるな

868 名前:デフォルトの名無しさん [2021/05/31(月) 13:43:35.00 ID:mi0ruDzC.net]
ViewクラスにXRCファイルからwXWidgetsのコントールを読み込む処理を作成しました
ViewクラスはViewModelクラスのポインタを持っていて、ViewModelクラスで
何かデータが変化した時に、Viewクラスのコントロールを更新したいのですが、
どのように実現すればいいか、ご存じの方は教えていただけないでしょうか?

869 名前:デフォルトの名無しさん [2021/05/31(月) 14:19:23.95 ID:C2PTAmxw.net]
途中までで良いからソース貼れ

870 名前:デフォルトの名無しさん [2021/06/06(日) 21:37:01.42 ID:hpmzgs3h.net]
wxwidgetsのGUIスレッドでstd::threadを立ち上げたらアプリがabortしましたけど、
wxThreadを使わないといけないのでしょうか?



871 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 14:51:51.74 ID:UnXvou2L.net]
wxWidgetsってQt以上に人気ないの?

872 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 17:56:42.42 ID:aG7CICp1.net]
少なくとも日本人にとっては、
日本語の良い解説が無いからじゃないか?

873 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 19:02:38.40 ID:nyeQQDyY.net]
Qtよりはマイナーかな
個人的にはQtよりも好きだけどね

874 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 21:35:58.59 ID:oB4GdYJQ.net]
「日本語の良い解説がないから使えない」が本当だったら、
ヘタレすぎないか?

875 名前:デフォルトの名無しさん mailto:sage [2021/07/31(土) 23:05:54.00 ID:aG7CICp1.net]
いやだってさ、日本人なら出来ることにそこまで違いがなく、日本語リファレンスがある方とない方があるなら、
ある方に流れるでしょやっぱり
で、Qtにはあるし、JAVAや.NETにもある

876 名前:デフォルトの名無しさん mailto:sage [2021/09/29(水) 15:19:48.59 ID:semLD1u8.net]
みんな 3.1.5 の方を使ってます?

877 名前:デフォルトの名無しさん mailto:sage [2021/10/01(金) 17:08:42.13 ID:7tHsN3Wb.net]
実質C++からしか使えないというのが痛い

878 名前:デフォルトの名無しさん [2021/10/01(金) 18:32:03.77 ID:1zfOHrDZ.net]
今wxwidgetsを学びつつGUI版のマインスイーパ作ろうとしてるけど
肝心のマスを表示する部分とマウス操作をどうするのか決まりそうにない

879 名前:デフォルトの名無しさん mailto:sage [2021/10/02(土) 13:54:50.57 ID:IoabfGko.net]
>>877
ああ、3.1.5 は開発版だからまだ各種言語用のバインディングが無いんですね

880 名前:デフォルトの名無しさん [2021/10/02(土) 15:11:12.62 ID:yFRwYWli.net]
日本語情報少ないから(日本では)利用者少ない
っていう程度の話ならちょうど良い馬鹿除けフィルタになってると思うが



881 名前:デフォルトの名無しさん mailto:sage [2021/10/03(日) 17:54:03.35 ID:qP8PqoPY.net]
Code::Blocksでウィジェットの編集が不安定じゃね?
プロパティ弄っただけで落ちてしまうんで初心者には辛い
なるべくコード側で設定しろというwxWidgets神からのお告げか?

882 名前:デフォルトの名無しさん [2021/10/05(火) 13:54:36.82 ID:qj/R0ihU.net]
ふつうはxrcをload

883 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 21:27:04.45 ID:antuggG5.net]
wxFormBuilderの方が安定しているやろか?

884 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 21:20:37.86 ID:5UKSiAtl.net]
GUIな開発系の支援ツールを作ると仮定して
・wxWigets
 省リソースで起動も速いくほぼ何でも出来るが特に今基準だとお手軽とは言い難い
・Webアプリ
 お手軽で起動速度の心配もないがファイルの読み書きが出来なかったりデータを保存できなかったり制限が多い
・Node.js系
 ストレージとメモリ消費が多い上に起動が遅い
・Tk/Tcl系
 省機能版wxWigets。メリット、デメリットもほぼ同じだが更にレガシー
・HTA
 Windowsならかなり理想的だったけど今基準だと時代遅れ感が・・・
なかなか良さそうなのがない・・・

885 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 22:17:39.30 ID:LoZJNxBr.net]
今のC++は昔のC++と比べると使いやすくなっているし、
wxWidgetsもMFCと比べたら作りやすいから問題ない
こんなソフトが無料で使えるなんて有難いわ

886 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 22:59:52.41 ID:5UKSiAtl.net]
wxLua(しかもLuaJITサポート)なんてのがあるらしい。動くなら良さそうかも?
wxRubyは死んでしまったからなぁ・・・

>>885
C++は今のご時世にメモリ不安全な時点でお手軽からはほど遠い感

887 名前:デフォルトの名無しさん [2021/10/25(月) 10:43:12.97 ID:vmRZrQEp.net]
wxWidgets の Rust 版があれば最強か wxRust ?

888 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 09:14:30.46 ID:SfYw1fpT.net]
今まで食わず嫌いして使わなかったが、意外と使い易いぞ
日本でももっと普及しないかなぁ

889 名前:デフォルトの名無しさん mailto:sage [2021/10/30(土) 00:43:26.14 ID:/jzrIUlr.net]
qiitaで情報集めようと思ったら僅か13件しかヒットしなかったんですが・・・

890 名前:デフォルトの名無しさん [2021/11/03(水) 14:28:06.60 ID:6fv+OhcH.net]
qiita国際化してないからなω



891 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 15:03:39.01 ID:ZVk0SEUi.net]
そもそも、Qiitaで情報を集めること自体が無意味。

892 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 17:32:29.82 ID:kr8blWMm.net]
公式のドキュメントとサンプルでけっこう何とかなるよ

893 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 14:13:01.70 ID:NHrktyHj.net]
古いのが多い
https://www.youtube.com/results?search_query=wxwidgets
3以降すごく使いやすいよね

894 名前:デフォルトの名無しさん mailto:sage [2021/11/06(土) 11:39:00.29 ID:OTGjrHTi.net]
小規模のソフトなら、わざわざ高価な開発ソフト用意しなくても
wxWidgets で十分だよな
慣れは必要だが、それはどんな開発ソフトでも同じ事だし

895 名前:デフォルトの名無しさん mailto:sage [2021/11/06(土) 12:07:27.84 ID:gOhwvTWe.net]
個人的に、QtよりもwxWidgetsのほうが好み。

896 名前:デフォルトの名無しさん [2021/11/07(日) 19:26:20.70 ID:jZCrDLaA.net]
Bindを使う時どういう場面だとwinidだのlastidだのを指定する必要があるのかまじで訳分からん

897 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 02:20:09.45 ID:J6d/ajGt.net]
>>895
ほんそれ

>>896
必要最小限でいいんじゃね
基本付けない方が楽

898 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 12:39:36.31 ID:QzkUvy+x.net]
windowやframeに対してBind()するのか
control.Bind()するのか
どっちが良いの?

899 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 16:13:21.33 ID:TvjlwvuH.net]
>>898
どちらが推奨されているのかは分からないが、
俺だったら、controlのイベントは、control.Bind()を使うな

900 名前:デフォルトの名無しさん [2022/01/28(金) 22:36:57.84 ID:sn8ydhaJ.net]
別クラスでもキャプチャしてるラムダをさっとbindできる楽でいい



901 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 17:27:13.09 ID:0RbsA99r.net]
Qt5.15LTSの商用版を1年後にオープンソースにするという約束だったが、
それはきちんと守られた様だ・・・

902 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:47:48.32 ID:0RbsA99r.net]
>>901
すまん、スレ違いやったわ(^ω^;)

903 名前:デフォルトの名無しさん mailto:sage [2022/03/31(木) 21:11:08.32 ID:6IMATkRV.net]
そろそろ3.2の足音が・・・聞こえませんねぇ

904 名前:デフォルトの名無しさん [2022/04/05(火) 01:23:25.52 ID:wTg+fYKW.net]
3.1.6きたか

905 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 03:11:01.30 ID:NFxs7VO2.net]
キタ━━━━(゚∀゚)━━━━!!

906 名前:デフォルトの名無しさん [2022/04/06(水) 20:47:20.16 ID:81+UcTAq.net]
3.1.6は最後の3.1.x系列で次は3.2らしいけど次は一年後ぐらいかな?

907 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:43:38.69 ID:HO1kidbQ.net]
なんだかんだで、
wxWidgetsでGUI開発するのが一番保守ができるわw

908 名前:デフォルトの名無しさん [2022/06/11(土) 20:55:43.41 ID:zBk/MBZO.net]
効率も良い

909 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 16:44:47.69 ID:aaCpCI22.net]
以前試した時、デザイナがメニュー項目やアイコンボタン的なものだけはあるが、
押してみると機能しないものが多かった。
また、チュートリアル通りと全く同じ順番で全く同じ操作した場合には
動作するが、ちょっとでも違うと動作しなかった。
それから、サイザーで箱的なものを最初に作ったとき、箱が小さすぎて
分かりにくかった。

910 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:34:31.88 ID:pBvoUsv+.net]
Code::Blocks使ってみたら、
最初、フレームにいきなりサイザーを置いたら物凄く小さくなってびっくり
どうやってこれにウィジェット配置するんやと・・・
しかし、いろいろ試していたら、先にパネルを配置してそれからサイザーを
配置すれば小さくならないことが分かった



911 名前:デフォルトの名無しさん [2022/07/02(土) 17:20:05.66 ID:ovAPXZPK.net]
3.2.0のRC版がきたねぇ

912 名前:デフォルトの名無しさん [2022/07/03(日) 13:49:52.52 ID:PqlrjItE.net]
汚ねぇ

913 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 16:48:44.71 ID:B/8qu6Mc.net]
と思っている間に3.2.0が来たっ!

914 名前:デフォルトの名無しさん mailto:sage [2022/07/07(木) 22:32:29.87 ID:2uwXdv/5.net]
RCから早かったな
久しぶりにビルドしてみるか

915 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 12:29:23.01 ID:UEfodfOp.net]
そういえば、まだCode::Blocksが3.2.0に対応していないのか?

916 名前:デフォルトの名無しさん [2022/08/01(月) 15:20:44.96 ID:jhXgj6wH.net]
https://zero-cheese.com/6667/
(本記事略)
雑談
世間では、「(略)」が流行している中、wxPythonが作る「PC用ネイティブアプリ」は、取り残されている感あります。そう思うのは、私だけでしょうか?
現代の「ネットとスマホの時代」、PC用ネイティブアプリの開発は、優先度は低いように感じてしまいます。
なぜなら、Webアプリや、スマホアプリで、ほとんどが代用できるからだと、思われます。(スプレッドシート等がいい例です。)
私自身、本記事のために、久しぶりに「PC用ネイティブアプリ作り」のためのコードを書いてみました。すごく懐かしい感じを覚えました。
(もちろん業界により、違いはあると思います。日々、PC用ネイティブアプリを開発されている方々には、不快な思いをさせたかもしれません。その際は、お詫びいたします。)
思い返せば、Windowが95 とか 98 の時代は、Visual C++、Visual Basicが流行っており、PC用ネイティブアプリを作るのが当たり前でした。
(当時、まだ学生でしたが、「VIsual Basic」を買うのに(確か5万円位)、とても苦労した記憶が・・ それが今や無料版があります。)
その時代をインターネットが、流れを変えてしまいました。ご存じの通り、技術の成長速度は、年々早まっています。
本記事は2022年3月時点に書いていますが、今後の20年は、過去120年分の技術進歩に相当すると、予測している研究者もいます。(技術の成長曲線に対し、外挿が当てはまると、その通りになるとの事。)
その時代にあって、PC用ネイティブアプリを作るニーズは、将来、あまり明るくないかもしれません。
既にBlenderみたいなソフトも、Steamを使って遠隔操作できるので、今後5G、6Gが普及してくと、ますますPC用ネイティブアプリの開発ニーズが、減少していきそうです。
(Blenderや、Steam自体が、PC用ネイティブアプリじゃん! というツッコミが入りそうですが(笑)。 ただ、既に遠隔で操作できるという事から、今後、Webアプリに置き換わっていくかな? と思った次第です。)
(以下略)

917 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 08:53:57.02 ID:Cm9is4wi.net]
wxPython/wxWidgetsのAndroid/iOS版でええやん

918 名前:デフォルトの名無しさん [2022/08/26(金) 10:00:56.35 ID:i2SIEm4o.net]
OpenCV との相性は?

919 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>915
ウィザードスクリプト弄ればwxWidgets 3.2系に対応出来るようになってたのね

920 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 12:41:19.62 ID:tqseCjT9.net]
ソースはsrcフォルダにまとめようとおもってウィザードスクリプト変更したら、
なんかイベントハンドラが一発で登録できんようになった。
再度、定義されたハンドラを指定するとなぜか登録できるが、なんかめんどくさい。
念のため、プロジェクトファイルと同じ階層に保存するように戻したら直った。
もしかして、Code::Blocksっていうか、wxSmithプラグインって
プロジェクトファイルと同じ階層に.cpp.hを入れないと正常に動作しないのやろか?



921 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 14:34:26.78 ID:VJtsy5Ud.net]
うーん、wxTextCtrlのインスタンスを複数作っただけで終了時に落ちてしまう
どうやらバグらしいね
せっかく3.2出たから試していたが、やっぱまだ不安定か・・・
(自分で直せればいいんだけど、さっぱり分からんw)

922 名前:デフォルトの名無しさん [2022/10/17(月) 00:09:02.40 ID:HhZwrJiW.net]
>>921
自分の環境だけじゃなくて、他でも再現しているような話が出てるってこと?

923 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 14:19:01.19 ID:tJ8jOMzt.net]
>>921
> どうやらバグらしいね
なぜバグと判断できる?
具体的にGitHub IssueかPRの何番かに上がっているの?

924 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
どうやら、TDM-GCC 10.3 (64bit のみ?) でビルドするとダメみたい
(MSVC や MSYS2 上の gcc では発生していないらしい)
一応対策済みファイルは上がっているけど、
根本的な原因が分かっているわけではない模様...
(TDM-GCC の libstdc++ に問題があるかもしれないとのこと)

925 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 19:31:32.54 ID:9nPH5ObM.net]
すまん、Issue 番号書き忘れたわ
Issue #22639

926 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 20:15:56.19 ID:9nPH5ObM.net]
PR 番号も見つけたので上げておきますわ
PR #22641

927 名前:デフォルトの名無しさん [2022/10/17(月) 20:28:56.63 ID:HhZwrJiW.net]
tdm-gcc固有の問題だったか…

928 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 22:32:12.86 ID:4eU5lv6N.net]
実際に確認するの遅れたが、
関連するファイルを更新してビルドし直したら、tdm-gccでも普通に動作しましたわ
問題を修正してくださった開発者の方々に感謝します

929 名前:デフォルトの名無しさん [2023/02/16(木) 13:59:58.69 ID:gbcOKHrW.net]
3.2.2.1来たか

930 名前:デフォルトの名無しさん [2023/02/17(金) 09:51:31.12 ID:D+7lDrIu.net]
change log見ると#22639も修正されてんね



931 名前:デフォルトの名無しさん [2023/07/29(土) 05:13:35.94 ID:N3JTCJeuX]
世代による公平も憲法の下の平等も知らない、しつこい不公平促進ハ゛カ税金泥棒立憲って,もはや莫大な税金で開いてる国會にイラネーだろ
何が孑供給付財源カ゛―だ,資本家階級イオン岡田か゛私腹を肥やすために未来の家畜か゛ほしいだけなんた゛ら岡田から徴収した金でやれや寄生虫
日銀に金刷らせて株買わせて圧倒的格差と優越的地位の濫用社會にしておいて価格転嫁カ゛─とか.何ひとつ価値生産しない公務員だの大企業
従業員だの税金泥棒に莫大な金銭給付してるしわ寄せが中小零細にゆくのは当然だろうに.外形課税て゛もして大企業を全滅させるのか゛筋た゛ろ
クソ航空機によって勉強妨害技術後進國気候変動災害連発物価暴騰してる中、食料自給率カ゛━とか人ロ減少させて緩和させるしかないものを
─部の貧乏人の子をネタに騷いた゛り氷河期に謝れた゛のほざいて金銭強奪の布石を打ってみたり,社會全体て゛子育てなら赤の他人から金銭強奪
して社会分断引き起こして犯罪惹起するのて゛はなく、てめえの意思で産み落としておいて子育て罸だのほざいてる虐待系クス゛を豚箱に入れて
親権も児童手当も廃止して,余裕ある家にあちこち寝泊まり飲み食い好きなもの買ってもらう斡旋をすることが理にかなった解決方法た゛ろ

創価学会員は.何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まで出てる世界最悪の殺人腐敗組織公明党を
池田センセ―が口をきけて容認するとか本気で思ってるとしたら侮辱にもほどがあるそ゛!
hтΤрs://i,imgur、cоm/hnli1ga.jpeg

932 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:47:26.81 ID:rMH1whrn.net]
(^-^)y- (^o^)y-。o0○ ( ;゜゜)ノ⌒-~ ←……( ̄ー|柱| ポイステキンシ

933 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 02:04:19.29 ID:RVn+O5xq.net]
なんだかんだで、wxWidgetsも使っとるわ

934 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 20:12:37.89 ID:1ALChO1a.net]
フリーのGUIフレームワーク最後の希望
3.2.3が来たよーーーっ!

935 名前:デフォルトの名無しさん mailto:sage [2023/10/14(土) 18:18:29.68 ID:jT0obcgM.net]
3.2.3に更新したついでにcode::blocksの夜間ビルド試してみようと思ったらサーバダウンしてるやんけ!!!

936 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 09:31:29.05 ID:rcYEOPS6.net]
C++に特化し過ぎてるのが珠に瑕

937 名前:デフォルトの名無しさん mailto:sage [2023/10/20(金) 01:23:35.43 ID:PlrD8Vmz.net]
>>936
そうであれば、多言語にbindingしたらええがな

938 名前:デフォルトの名無しさん mailto:sage [2023/12/10(日) 14:45:26.92 ID:nMrakhie.net]
これええな
mingw-w64-i686-wxwidgets3.2でCP932って使えないん?

939 名前:デフォルトの名無しさん mailto:sage [2023/12/10(日) 16:10:09.94 ID:1SEWkZic.net]
msvc 使うなら CP932 でも大丈夫だと思うけど
gcc 使うなら素直に UTF-8 を使った方が良いんじゃね

940 名前:デフォルトの名無しさん mailto:sage [2023/12/10(日) 17:36:28.57 ID:W9q6P+To.net]
もういい加減、WindowsはCP932を廃止せなあかんわ
いつまで、「ワールドワイド言語サポートでUnicode UTF-8を使用」を標準でonにしないのか



941 名前:デフォルトの名無しさん mailto:sage [2023/12/12(火) 15:33:02.64 ID:myGJa9tx.net]
以前から思っていたのですが
5chではなんでみんな似非関西弁使うねん!
(あかん、俺にも伝染しとるわ・・・)

942 名前:デフォルトの名無しさん mailto:sage [2023/12/13(水) 11:03:48.11 ID:O/gjiltM.net]
なんでも実況板で似非関西弁で書き込むのが習慣になったから

943 名前:デフォルトの名無しさん mailto:sage [2023/12/14(木) 09:04:05.22 ID:z105pWuk.net]
なるほどそういうことだったんですね。ありがとう
次回は、なぜ実況版で似非関西弁で書き込むのが習慣になったのかの謎に迫る!

944 名前:デフォルトの名無しさん mailto:sage [2023/12/17(日) 10:37:07.84 ID:Srk0UVxP.net]
Code::Blocks 20.03が古過ぎるためかスミス氏の機嫌が悪い
試しに夜版バイナリを使ってみたらこっちはご機嫌やった
32bit版のバイナリが無かったけどこっちは自前でビルドしてみた
公式のドキュメント通りにやっても上手くいかなかったけど
エラーの内容を検索しながらやったらポンコツの俺でも出来たわ(涙目)

945 名前:デフォルトの名無しさん mailto:sage [2024/02/07(水) 08:41:48.36 ID:EI19ByVY.net]
マイルストーンを見たら3.3.0と3.3.99があったんだけど違いはなんやねん!

946 名前:デフォルトの名無しさん [2024/02/07(水) 14:10:42.18 ID:pcsaZQr4.net]
>>945
一般的には
3.3.0 Release
3.3.1 Release ... バグ修正
...

3.3.99 3.3系で取り敢えず入れたい直したいごった煮

3.4 中機能改変
4 大機能改変

ブランチタグやIssueが、管理しやすくなるでしょ?

947 名前:デフォルトの名無しさん mailto:sage [2024/02/08(木) 08:55:03.48 ID:B2+wXGdT.net]
>>946
ありがとうございます
バージョン管理ソフトを使用したことないから良く分からないけど
何らかの意図があってやってるんですね

948 名前:デフォルトの名無しさん [2024/02/08(木) 12:42:10.27 ID:4BZ1QF0m.net]
>>947
バージョン管理「ソフト」の話じゃないでしょ、
バージョン管理の話だよ

949 名前:デフォルトの名無しさん mailto:sage [2025/01/04(土) 08:49:49.68 ID:Qjdiqb4r.net]
hosyu

950 名前:デフォルトの名無しさん [2025/02/20(木) 21:06:15.47 ID:HuWT/MnoP]
何もかも支離滅裂て゛突っ込むのもウンザリな斉藤鉄夫だの竹谷とし子だの強盗殺人推進公明党がカンコ━立国だのほざいてJALた゛のАNAた゛の
クソポリヘリだのテロリス├に莫大な温室効果ガスまき散らさせて気候変動、災害連発させて人殺しまくっていなか゛ら気候変動対策だの
防災だの平然と嘘八百ほざいて憲法13条25条29条とガン無視でカによる一方的な現状変更によって閑静な住宅地まで騷音まみれ
知的産業根絶やしにして国際競争力壊滅させて孑の学習環境破壞して私腹を肥やしていながら闇バヰトは無差別強盗で卑劣、強盗殺人は俺らの
専売特許だからなとか寝言は寝てから言えやインバウンド何兆円だのほざきながら一千億とか補助金出してるあたりて゛気づくべきた゛が
力ンコーこそが国民貧困化の根源、流出する石油代や農作物その他の被害など物価高騰引き起こしたり何年も力ンコーだのほざいていながら
儲かってるのは癒着業者だけ国民不倫民主党の戯言とかどうでもいいが犯罪惹起して税金泥棒してるクソポリ公から悪質おもちゃ取り上げて
航空燃料税リッター1萬円にするだけでもくだらない扶養云々全廃して公平な最低所得保障財源で治安回復するわ
(ref.) ttps://www.call4.jp/info.php?tуРe〓items&id〓I0000062
ttΡs://haneda-projeCТ.jimdofree.com/ , ttps://flight-route.com/
ttρs://n-souonhigaisosyoudan.amebaownd.сom/



951 名前:デフォルトの名無しさん mailto:sage [2025/03/21(金) 07:51:58.56 ID:/ZxkdwF/.net]
>>948
つまりはバージョン管理「ソフト」の話じゃなくて、バージョン管理の話って事でOK?

952 名前:デフォルトの名無しさん mailto:sage [2025/03/22(土) 16:47:07.64 ID:6eJKN593.net]
3.2.7が早めに来たよぉ〜

953 名前:デフォルトの名無しさん mailto:sage [2025/03/24(月) 16:59:41.85 ID:tWxitKr9.net]
C++であることが売りだったはずなのに
今はC++が負債

954 名前:デフォルトの名無しさん [2025/03/24(月) 17:02:08.25 ID:tWxitKr9.net]
>>938-940
Unicode版しか勝たん

955 名前:デフォルトの名無しさん mailto:sage [2025/03/24(月) 19:03:15.16 ID:/lNBwDBZ.net]
wxWidgetsはRustと相性悪いな

956 名前:デフォルトの名無しさん mailto:sage [2025/03/24(月) 21:49:02.70 ID:LmMFLNBK.net]
個人的には、wxRubyだな
手元でオレオレbindingして、自分が使うものだけオレオレwxRubyにしとるわ

957 名前:デフォルトの名無しさん [2025/03/25(火) 05:26:08.24 ID:ztarSHRB.net]
うbyはオワコン

958 名前:デフォルトの名無しさん [2025/03/29(土) 11:30:50.98 ID:H1uP14U2.net]
wxWidgetsならNimが相性とばっちりよ

959 名前:デフォルトの名無しさん mailto:sage [2025/04/07(月) 12:50:54.44 ID:wz5/bVHn.net]
ノーマルボタンの中に画像をpngのアイコンを入れたい
テキストはいらない
どうするのが一番簡単?

960 名前:デフォルトの名無しさん mailto:sage [2025/04/07(月) 14:32:07.53 ID:w0rhHNCz.net]
pngをloadしてwxBitmapを造る(サンプルがゴロゴロある)



961 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 18:05:12.99 ID:9h38tbmu.net]
ここでdiscussion
https://forums.wxwidgets.org/viewtopic.php?t=2718

962 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 09:43:15.96 ID:K1Pjz07i.net]
wxAnyButton継承した方が良くね?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<300KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef