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


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

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

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

ここまで見た
  • 790
  •  
  • 2014/09/13(土) 19:23:58.85
>>789

大体、答えが分かった。

つまりあなたは、wxFormBuilder に MyProject1MyFrame1 を生成させて、
this->Close();
を追加したんだ。


そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
this->Close();
を自分で書かなきゃならない。

それが、>>779 の意味だね?

だとすれば、this->Close(); の部分は、実践的には、もっと長くなるのだから、
物凄く面倒で、なおかつ危険が伴う作業になるね。

ここまで見た
  • 791
  •  
  • 2014/09/13(土) 19:27:26.32
>>790

>そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
>this->Close();
>を自分で書かなきゃならない。

ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
コピーする必要があるということになる。

ボタンやメニュー項目の個数をN とすると、O(N^2) の作業時間が必要になるね。

ここまで見た
  • 792
  •  
  • 2014/09/13(土) 19:44:06.05
>>790
> そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
> this->Close();
> を自分で書かなきゃならない。

そこらへんに少しコツがあってな。
自動生成された部分を一切変更しない限りにおいて、
後から機能追加して再度サブクラスを生成した時、以前書いた部分は削除されない。
つまり今回の例では「this->Close();」は消えずに残る。
逆に言えば「// TODO〜」コメントの削除や編集すら許されないという事なんだけどな。

これが守られなかった場合、同名の(空の)関数が別に生成される。
この場合は旧関数から新関数へのコピペおよび旧関数の削除の手間が生じるが、
いずれにせよ一度書いたものが消える事は無い。

ヘッダファイルにおいても同様であり、
//// end generated include と
/** Implementing MyFrame1 */ の間、それと
//// end generated class members 以降の行に書いた内容は削除されない。
安心して機能追加できる。
不安だったら再生成する前にバックアップ取っておけばいい。

問題があるとすれば、コードのインデントが全て消える事。
Eclipse等開発環境のコードフォーマッタで解決するが、3.4.0beta時点では
インデント維持されてた筈なんだ。なんで維持されなくなったんだ?
俺の見落しか仕様かバグか。

ここまで見た
  • 793
  •  
  • 2014/09/14(日) 06:35:44.14
なるほど、wxFormBuilderも新規出力(全書き換え)しかできないわけではないという
ことなの?

どうやるのかな?

ここまで見た
  • 794
  •  
  • 2014/09/14(日) 06:44:15.89
あと、EVENT TABLEが古いと言ってる人がいたけど、Connect()がそれに置き換わっただけ
だからね。使う側から目線では(抽象的な意味では)変わってない。配列で静的に持っているか、
関数で登録するかの違いに過ぎないから。

ここまで見た
  • 795
  •  
  • 2014/09/14(日) 07:18:40.80
以下によると、wxSmith には、TOP LEVEL RESOURCE を2つ以上作成する方法が見つからないらしい。
いったん、1つのTOP LEVEL WINDOW を作ると、全てがそのウィンドウの子供になってしまう。
POPUP MENU や、メインウィンドウに付随する1群のダイアログは、作るのが難しいらしい。
それに対して、wxFormBuilderは、2つ以上の TOP LEVEL RESOURCE を作ることが出来る、
と主張している。


http://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
  •  
  • 2014/09/14(日) 10:11:50.71
お前が返信に時間かかってるのは煽るための文言を探してくるためか?
これだけ御膳立てしてやっても自分では一切手を動かす気は無いんだから、
呆れを通り越して笑いすら出てくるわ。俺はお前の保護者じゃねえよ。
英文は読めるみたいだからソフトの使い方が分からない筈があるまいに。

>>793
こんな問いに答える気はもう無い。理由は上記の通りだ。
今まで以上に噛み砕いた説明は俺には出来ないし、
そもそも手を動かしていれば既に理解している筈の内容ばかりだからな。
F8とF6からクラス選んで名前付けてコード生成すら出来ん奴が本当にプログラム書けるのか?
無理しないでVSやMonoでC#あたり使ってればいいんじゃないか?
そっちの方がずっと楽だぞ。

>>794
それ書いたのは俺だが、利用上はそれだけの違いでは済まないという事も
英文読んだなら理解できてるはずだろ。煽るためのネタにはならんぞ。
柔軟性は高いに越した事はなかろうよ。
もちろんその機能が自分にとって役立つかどうかは別問題だ。

ここまで見た
  • 797
  •  
  • 2014/09/14(日) 12:57:54.21
>>796
誰も悪気がやってやってるわけじゃない。
あなたが勝手にそう取ってるだけだよ。

ここまで見た
  • 798
  •  
  • 2014/09/14(日) 19:26:47.68
>>791
それは難癖だよ
継承側で動的バインドという
他と同じ手法を取ればいいだけの話だから
手間はおんなじだよ

>>792
その癖やコツをつかむのに
試行錯誤したりソースを読み解く必要性があるのが辛いんだよね
正味な話不安で信用ならない
手動目視でDiffるか
PEGでも使って自前で書いたほうが楽

ここまで見た
  • 799
  •  
  • 2014/09/14(日) 19:52:29.25
>>798
前半意味不明です。

ここまで見た
  • 800
  •  
  • 2014/09/14(日) 20:11:08.81
>>799
> ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
> でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
> コピーする必要があるということになる。

電卓とか参考になると思うよ

ここまで見た
  • 801
  •  
  • 2014/09/15(月) 08:45:18.98
>>800
ならないと思う。
全てのボタンを一気に wxFromBuilder で作ってからイベントハンドラの
コードを手作業で書けば問題は表面化しないから。

そうでなくて、実際のプログラミングでは、機能追加のたびにボタンを追加して行く
ような作業が必要となる。

その時に上書きされてしまうかどうかがポイント。

ここまで見た
  • 802
  •  
  • 2014/09/15(月) 10:58:47.94
xrcでFA

ここまで見た
  • 803
  •  
  • 2014/09/15(月) 19:07:00.41
だから「ソフトの様式さえ守っていれば」書いたコードが消去されるような事は無いと何度言えば分かってくれるんだ。
試してないのが丸判りだ。ほんっっっっっっとに口ばっかりだなお前は。
これで悪気が無いというんだから最悪だ。本当に本当に最悪だ。

そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?

ここまで見た
  • 804
  •  
  • 2014/09/16(火) 00:01:13.35
>>803
全部自分で試さなきゃならないなら、人に聞く権利がなくなるじゃん。
試すのが時間がかかりすぎるから、誰かが試した結果が文書化されるん
だから。

ここまで見た
  • 805
  •  
  • 2014/09/16(火) 02:40:02.42
これは一緒に仕事できないタイプですわ

ここまで見た
  • 806
  •  
  • 2014/09/16(火) 02:41:50.55
自分はネット上に調べ物を書くときは自分が試した範囲のことしか書かないよ
妄想の実行結果で文句言ったりしないし、困難があれば自分で突破する

ここまで見た
  • 807
  •  
  • 2014/09/16(火) 09:52:32.15
「共助」という概念を知らないの?
「自助」しかしてはならないなら、掲示板の意味がほとんど無くなる。

ここまで見た
  • 808
  •  
  • 2014/09/16(火) 15:26:46.89
>>803
>そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
>保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?

これは駄目。

なぜなら、また、*.cpp と *.h に決まりきったコードを書く必要が出てくる
から。イベントハンドラ 1 つずつにこれを書く作業が大きなロスを
生む。

ここまで見た
  • 809
  •  
  • 2014/09/16(火) 22:49:04.68
>>804
共助?お前だけは言っちゃいかん言葉だ。
1から100まで他人に聞いてばっかじゃんかお前。
お前がスレの閲覧者に対して何か有益な事一つでも書いたか?
ぜ〜〜〜〜〜んぶ愚痴もしくは煽りじゃんか。

全部自分で試さなきゃいけないとか言ってるがよ。
そもそもお前、俺の言った事何一つ聞く気が無いだろ?
徹頭徹尾お前はコードが消える前提でしか話してない。
信じてるなら未だにコードが消えるなんて言ったりする筈が無いからな。
書かれた事を信じず、そのくせ試す気も無い奴が共に助け合う?笑わせんな。

あと、決まりきったコードを書く必要が出てきてはダメな理由がまるで分からん。
そもそも一度書いたら終わりなのに、なんでロスなんだ?
具体例をサンプルコードで挙げてくれないか。
共助とか抜かしてるんだから勿論やってくれるよな?

ここまで見た
  • 810
  •  
  • 2014/09/16(火) 22:56:48.49
>>809
もうほっとけよ。相手するだけ無駄だ。

ここまで見た
  • 811
  •  
  • 2014/09/16(火) 23:45:52.12
>>809
あんたが作ってるプログラムとは規模が違うからだよ。

ここまで見た
  • 812
  •  
  • 2014/09/16(火) 23:46:54.65
てか決まりきったコードを減らすためのテンプレート?
そのためのメタプログラミングでしょ

ここまで見た
  • 813
  •  
  • 2014/09/17(水) 00:02:45.14
>>812
はあ?

ここまで見た
  • 814
  •  
  • 2014/09/17(水) 00:51:45.07
>>809
中段、あんたの言っていることはある程度は分かるんだよ。
でも、wxSmith の方が遥かにドキュメントが充実している上に、
CodeBlocks に統合されており、元々の設計からしてwxFormBuilderの
ような勝手な新規上書き仕様にはなってない。

wxSmithではマージやアペンドは当たり前なんだよ。その上で、
POPUP MENU だけは、作り方が分かたなかったから詳しい人に
聞いてみたかったんだ。質問する側が、答える側の言っていることを
全部試すなんて期待すべきじゃないぞ。

ここまで見た
  • 815
  •  
  • 2014/09/17(水) 00:56:23.54
なんちゅうか、wxSmithは古いと勝手に決め付けて、wxFormBuilder
の方がいいという主張なんだから、どう良いかはあんたが説明すべき
でこっちに試せと言うのはお門違いなんだよ。

そもそもドキュメントが少なすぎる。試すしかないないなんて、
原始人レベルじゃないか。仕様は紙に書くのが基本だが、wxSmithの
場合は動画も多いからまだいいんだよ。wxFormBuilderなんて駄目
なんじゃないのか。進めている海外サイトもあるが、開発者本人が
書いているだけかも知れんから、信用すべきじゃない。

ここまで見た
  • 816
  •  
  • 2014/09/17(水) 20:01:28.47
wxFormBuilderがどう良いかはもう書いた。お前が理解しようとしてないだけだ。
あとはお前が試すだけなんだが、自分が知らない新しい技術を試す気が無い
臆病者には永久に理解する事は無理。だからもう何もやらなくていい。お前を諭す事は諦めた。

まだ「勝手な新規上書き」とか言ってるしな。しないって何度言わせるんだか。
なんで理解しようとしないんだ。正規のドキュメントじゃないからか。
同じ事を書いてる奴が俺以外にいないからか。
それとも2chの落書きは信用ならんと?だったらなぜここで質問なんかしたんだ。
wxSmithだろうが何だろうが2chの書き込みって時点で信用度は同じだろう。

なんのかんのグダグダ言っても、結局wxSmithに関する事以外は試す気が一切無いという事も良くわかった。
もうお前が俺を論破して俺が尻尾巻いて退散したって事でいいや。相手するのがバカらしくなった。
所詮お前はマニュアルがブ厚いだけで満足する好奇心の無い老害だって事もわかったし。
ついでに口だけプログラマで、ちょっとしたサンプルコードも書けない無能だって事もね。

「馬鹿には無理」
いい台詞だわ。今頃になってつくづく思うよ。

ここまで見た
  • 817
  •  
  • 2014/09/18(木) 06:03:45.56
自己紹介乙

ここまで見た
  • 818
  •  
  • 2014/09/18(木) 12:03:25.71
>>816
質問者に対して試さないから無能だなんて、なんて性格悪いの。

ここまで見た
  • 819
  •  
  • 2014/09/18(木) 12:08:26.46
だよな。ゆとり世代がメインストリームのご時世に
再質問する前に手を動かすなんて面倒なことしてくれるなんてかんがえるほうが愚か

ここまで見た
  • 820
  •  
  • 2014/09/18(木) 12:22:18.94
感情や思考を産み出しているのはあなた自身
怒るか怒らないかを決めるのもあなた自身

ここまで見た
  • 821
  •  
  • 2014/12/19(金) 20:18:18.31
mingw32でwxWidgets作ったら、それを使って作ったプログラムがwinspool.dllがないって怒られるんだよね。
ググったらlibwinspool.aのwinspool.dllをwinspool.drvにバイナリエディタで書き換えたら桶みたいなのがあって試したら動きやがんのな。
まあ、自分のパス通している所にwinspool.drvをwinspool.dll名義で置く方が安全かもしれんが。

ここまで見た
  • 822
  •  
  • 2014/12/19(金) 20:32:35.26
プログラミング未経験者も大歓迎

ここまで見た
  • 823
  •  
  • 2014/12/20(土) 10:21:06.56
>>821
今ならmsys2のpacman使えばwxWidgetsのバイナリがすぐ手に入る
自前ビルドはライブラリのデバッグするのでもないかぎり不要やで

ここまで見た
  • 824
  •  
  • 2014/12/20(土) 12:24:25.48
JaneCloneのひとかな

ここまで見た
  • 825
  •  
  • 2014/12/20(土) 12:43:19.97
正体ばらすのやめろや

ここまで見た
  • 826
  •  
  • 2014/12/22(月) 04:48:02.90
自分でコンフィグ(config.h)いじってライセンスに問題ありそうなregexや必要ないコンポーネント除去したり
必要なものだけ自分のプロジェクトに含めて一緒にコンパイルしたほうが小さくなるし最適化よく効いていいで

ここまで見た
  • 827
  •  
  • 2014/12/22(月) 05:05:52.44
thx!

ここまで見た
  • 828
  •  
  • 2015/02/21(土) 05:55:29.37
trunkのgcc5をビルドした
"これまでのgccでビルドしたwxライブラリ"はgcc5じゃ使えなくなるっぽい
自前ビルドのwxライブラリが"再配置が必要"とか言われて使えなかった
gccを4.9.2に変えたらビルド出来た

fltkも同じで、gcc5でfltkのライブラリ作り直したらビルド出来た
が、gcc5でビルドしたライブラリをgcc4.9で使うとビルド出来ない
ひょっとするとgcc5になるとほとんどのc++ライブラリ(特にguiのヤツ)はビルドし直しになるかもしれん
ググったらABIの仕様が変わるって書いてあるけどそのせいかしら

ここまで見た
  • 829
  •  
  • 2015/02/21(土) 07:34:22.52
情報ありがとう

ここまで見た
  • 830
  •  
  • 2015/02/28(土) 22:02:38.00
メジャーバージョン上がっちゃうとAPIレベルで変わっちゃうからしゃーないね
たぶんlibcとかglibとかも同じじゃないかな

ここまで見た
  • 831
  •  
  • 2015/03/28(土) 17:27:29.56
wxWidgetsいじってみたいのだが、基本ビルドしないのでwin環境でビルドの最に必要になってくるライブラリ列挙していただける方居ませんか?

ここまで見た
  • 832
  •  
  • 2015/06/26(金) 16:25:48.92
とりあえずpacman -S mingw-w64-x86_64-wxWidgetsしたんだがこの後どうすればいいんだ

ここまで見た
  • 833
  •  
  • 2015/06/26(金) 16:31:37.93
なんでmingw版落としたん?

ここまで見た
  • 834
  •  
  • 2015/06/26(金) 16:38:13.77
えっバイナリあるからそれ使っちゃえって思ったんだけどもしかして自前ビルドの方がいい?

ここまで見た
  • 835
  •  
  • 2015/06/26(金) 16:44:59.52
なにこの右斜め上に返事したら左斜めに質問が来た感じ

ここまで見た
  • 836
  •  
  • 2015/06/26(金) 16:50:00.99
おすすめの導入記事とかあったら教えてほしいです

ここまで見た
  • 837
  •  
  • 2015/06/28(日) 15:27:20.76
そんなものがあったら、もっと広まっている

ここまで見た
  • 838
  •  
  • 2015/06/28(日) 16:29:29.77
導入さえ乗り越えれば後はサンプルみればどうにかなるしな

ここまで見た
  • 839
  •  
  • 2015/06/28(日) 17:39:04.28
情報が少ないって事は記事書けばアクセス数稼ぐチャンスだと思いな

ここまで見た
  • 840
  •  
  • 2015/07/06(月) 15:24:09.15
wxWidgetsはマジ糞だな、MFCの方が全然イイ

ここまで見た
  • 841
  •  
  • 2015/09/04(金) 08:35:48.11
MFCのどこが良いのかわからん

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

★お気に入り追加

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