【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (960レス)
上下前次1-新
735: 2014/09/02(火)23:40 ID:wgXgojMH(1) AAS
作ったバイナリのサイズなんてwxWidgetsのビルド方法によって大きく変わるうえ、
最終的に使い物にならないライブラリの出来上がりとなるのが目に見えている
本当に必要なものだけを炙り出すつもりなら止めはしないが、どう考えても徒労でしかないと思うぞ
736: 2014/09/02(火)23:47 ID:r9jqoPj2(1/2) AAS
正直wxWidgetsのバイナリサイズの話以外はほとんど既出だし
CygwinとMinGWの仕様の違い、クロスコンパイラのターゲット、configureの基本
それらの件に関しては自分のブログにでも書いていてほしい
737(1): 2014/09/02(火)23:54 ID:r9jqoPj2(2/2) AAS
まあ一応上から目線でコメントしとくと
>>725
libgccの存在に関して勉強不足、>>726の言うとおりdllの種別が2種類ある
DLLにするよりもlibgccだけスタティックリンクしたほうがいいが、libtoolにかませるのが
割と面倒なので一緒に配布したほうが楽、まぜこぜにするとか初心者くさい
>>727
クロスコンパイラとネイティブコンパイラを混同している
省3
738(1): 2014/09/03(水)00:12 ID:RSu3l9Ti(1) AAS
AA省
739: 2014/09/03(水)00:20 ID:qMd+w6/O(1) AAS
>>738
スレ違いだ、こっちでやれ
Cygwin + MinGW + GCC 相談室 Part 7
2chスレ:tech
あとMinGWはcmd.exeではなくminttyから使うべきだ
さっさとネットで資料を探す作業に戻るんだな
740: 2014/09/03(水)00:37 ID:kYvXCnau(1/3) AAS
ちなみに c:\cygwin\bin と c:\cygwin\usr\local\bin にパスを通せば、
cmd.exe からでも cygwin のコマンドが実行できるようになる。
gccもlsもmakeも。ここでbashを起動すればcygwin環境になる。
741: 2014/09/03(水)08:47 ID:VnTCGwbS(1) AAS
久しぶりに2ちゃん観に来たら
wxのスレめっちゃ野比てて嬉しい
742(1): 2014/09/03(水)14:50 ID:kYvXCnau(2/3) AAS
wx のソースを修正したら、wxString() を使った最小サンプルが、
静的リンクしても 70KB で済むようになった。
PATHには、MInGW/bin しか設定せずにテストしているので、wx の DLL
がリンクされている可能性は無く、間違いなくスタンド・アローンの
プログラム。
ちなみに、wx のソースを修正しなければ、451,584 バイトになってしまう。
>>729 に書いたものとほぼ同じプログラムだから。
743: 2014/09/03(水)15:05 ID:SXoWEkGr(1/2) AAS
wxというよりgccとライブラリのお話で伸びている
744: 2014/09/03(水)16:58 ID:3zk9T5qQ(1) AAS
>>742
dllの依存関係すらまともに調べられないのか
dependency walkerとかobjdumpとか使え
745: 2014/09/03(水)17:02 ID:SXoWEkGr(2/2) AAS
mingw入ってるならlddコマンドでもいける>依存動的ライブラリ
746: 2014/09/03(水)18:30 ID:kYvXCnau(3/3) AAS
ただ、パス設定を空にして起動できるかどうか見るのも1つの確実な方法。
747: 2014/09/04(木)03:37 ID:FQO1vG1R(1/2) AAS
性格悪いな。
コンピュータ・ソフト関連の人って。
748: 2014/09/04(木)17:23 ID:FQO1vG1R(2/2) AAS
GUIアプリのサイズ縮小を試みていたが、断念するかも知れない。
749(2): 2014/09/04(木)18:46 ID:Sd68Xi30(1) AAS
△性格が悪い
○無駄が嫌い
◎無駄な事をしてる奴が嫌い
750(1): 2014/09/05(金)15:14 ID:PbioWCRT(1) AAS
>>749
何も悪いことをせず、自分にも害を与えない人を嫌うのが性格が悪いんだよ。
751(2): 2014/09/05(金)15:46 ID:JjYqHkIR(1) AAS
公園の蚊を駆除するのに外側からじゃなくて内側から始めるとかが無駄
自分にも危害が及ぶので嫌
752(1): 2014/09/05(金)17:37 ID:MynIP2yf(1) AAS
>>749>>750
言われた側が一方的に立場が悪くなるという効能は興味深いと思う
言ったもん勝ちという現象は絶対にあるのだ
>>751
生死にかかわる難しい判断を
「無駄なこと」に無理やりおしこめた詭弁
物事を矮小化させる効果もある
753: 2014/09/05(金)18:18 ID:NH0YjWIH(1) AAS
>>751
正直言って、今回のこととの関連も分からない。
それ以前に外側から、内側から、ということの意味が全く分からない。
まるで会話ロボットが生成した文書のようだ。
>>752
この文書も意味不明。人間が書いたとは思えない全く理解できない文書だ。
754: 2014/09/05(金)22:33 ID:Mt1E1+r6(1) AAS
俺の大好きなwxWidgetsスレがめちゃんこ糞スレになって泣きそう
755: 2014/09/05(金)22:52 ID:rFI2iHSs(1) AAS
案の定あらし化したか
これ以上触れないで放っとくの推奨
756(1): 2014/09/10(水)10:22 ID:8Y3LAJyJ(1) AAS
wxWidgets って、GTK をバックエンド(port to)に使うことも出来るらしい
ね(wxGTK)。
上位のツールキットが、下位のツールキットに被さっているってことか。
X11 を直接バックエンドに使うのともまた違うのかな?
757: 2014/09/10(水)18:37 ID:/KH51cxp(1) AAS
AA省
758: 2014/09/11(木)00:33 ID:na3nzgh2(1/2) AAS
>>756
X11は組み込み向けのportなので一般的には使われないよ(メンテされてるかもよくわからん)
Linuxでの使用の際はGTKベースと思っていた方がいい
つまりwxWidgetsのクラスやメソッドでコードを書いてLinux上でビルドするとGTKアプリができる
最近はwxQtというwxWidgetsからQtをバンドルするイカれたプロジェクトが本流にマージされたようだが…
759(1): 2014/09/11(木)07:34 ID:BpRRpzGv(1) AAS
wxQtってなんかメリットあるの?
760: 2014/09/11(木)20:49 ID:na3nzgh2(2/2) AAS
>>759
目的は、Qtベースのデスクトップ(KDE)でもwxWidgetsアプリを使うためとか
(→まあKDE上でGNOMEアプリを使うツールもあった気がするのだが…)
あとQtをバンドルすることでAndroid対応も果たしていた(実用性は不明)
761: 2014/09/12(金)10:47 ID:w24nfmYL(1) AAS
wxWidgetsで、POPUP Menu (Windows では、Context Menu が正式名称かも)を作る場合、
どうしてますか?
特に、CodeBlocksなどのIDEで行う場合の最良の作法が知りたいです。
自分は、基本的な wxSmith の使い方が分かったところです。
762(1): 2014/09/12(金)11:29 ID:vSDiSYyP(1/2) AAS
MenuItem作って
SubMenu作って
AddItem
763: 2014/09/12(金)11:47 ID:S8WOzChk(1) AAS
>>762
それは手作業の場合ですよね。
そこの部分は対した手間ではないですが、
イベント・ハンドラを*.cpp, *.h, EVENT_TABLEの全てに書くのが面倒で。
764(1): 2014/09/12(金)11:47 ID:vSDiSYyP(2/2) AAS
どうぞ
動画リンク[YouTube]
765: 2014/09/12(金)12:20 ID:k4huCAJU(1) AAS
>>764
これ、今ちょうど数秒前に見終わったところだった。
これ見てると、
1. wxSmithでwxFormをエディット中に、「MenuBar」ではなく「Menu」ボタンを押して
「要素」を追加する。
そうするとwxSmithの上辺に要素のアイコンが並んでいる末尾に新しいアイコンが追加される。
2. 追加したMenu要素に名前を付ける。
省9
766: 2014/09/12(金)12:28 ID:ylwL1QX/(1/2) AAS
馬鹿には無理
767(1): 2014/09/12(金)14:27 ID:8yVPY0Zt(1) AAS
7個のメニュー項目にイベント結びつけるのに7行コード書くのって、そんな突出して面倒か?
768: 2014/09/12(金)15:27 ID:mqgnzDe4(1) AAS
>>767
それは、「EVENT_TABLE」の箇所だけの話で、実際は、*.h に
メンバ関数宣言を7つ書き、*.cpp に
Zzzz Ccccc::OnXxxxx( Yyyy *pYyyy )
{
return Qqqqq;
}
省2
769: 2014/09/12(金)16:36 ID:ylwL1QX/(2/2) AAS
IBみたいなのを期待したら駄目
770(1): 2014/09/12(金)19:11 ID:cDGrnlyB(1/3) AAS
なんで今更wxSmithなんだよ古臭いな
なんでイベントテーブル使ってんだよ古臭いな
黙ってwxFormBuilder使ってみろよメッチャ簡単で笑えるぞ
771(1): 2014/09/12(金)19:15 ID:nAjxttHn(1/3) AAS
>>770
IDEとの組み合わせは?
IDEがサポートしていなくてもいけるんだろうか?
772(1): 2014/09/12(金)19:26 ID:cDGrnlyB(2/3) AAS
>>771
ちんまい個人用ツールしか作った事が無いから大規模プログラムでどうなるかは分からんが、
俺はwxFormBuilderでGUIデザインし、VisualStudioでコード書いてる。
GUI部品を追加したくなったら、いつでも追加編集できる。
もちろんイベント追加も問題ない。
VSでコード書きつつGUIエディットしても、VSにフォーカスを移したら勝手に読み込み直してくれる。
今まで書いたコードがGUI生成時に消去される事も無い。
省1
773(1): 2014/09/12(金)19:30 ID:nAjxttHn(2/3) AAS
>>772
POPUP MENU を作る時、EVENT_TABLE を使わずに何か良い方法で
やってくれるのかな?
774: 2014/09/12(金)19:38 ID:RfUl3Wi+(1) AAS
wxFormBuilderかあ
もはやクロスプラットフォームでGUIがGUIでデザインできるのか(しかもフリーソフトウェア)
775: 2014/09/12(金)19:39 ID:nAjxttHn(3/3) AAS
VSは、外部エディタでソースを編集した場合、VSに戻ると自動的に再ロード
してくれる機能がある事は知ってる。これは昔からある機能。
776(2): 2014/09/12(金)20:52 ID:cDGrnlyB(3/3) AAS
>>773
凝りに凝ったメニューは知らんが、ポップアップメニューの作成および
メニュークリック時のイベント生成なんかは全部wxFormBuilder上で出来る。
従来のイベントテーブルでも生成してくれるし、Connect関数を使ったイベント生成も出来る。
今はConnectも古くてBindがトレンドらしいが、詳しくは知らない。
外部リンク[html]:www.dotup.org
参考までに、wxFormBuilderのみで作ったサンプルコードを添付する。
省2
777(1): 2014/09/13(土)07:40 ID:CAfEAxmE(1) AAS
>>776
これは、どうやって作ったの?
生成されたコードも参考にはなるけど、wxFormBuilder上での操作方法が
知りたい。
778(1): 2014/09/13(土)16:39 ID:JrIr4YUs(1/3) AAS
>>777
説明がめんどくさいから、wxFormBuilderでこの「wxMenuTest.fbp.」を開いて確認してくれ。
あとは適当に触ってれば理解できるだろ。
外部リンク[html]:www.dotup.org
適当にGUIを作ったらF8キーでメインクラスを生成して、
その後F6キーでサブクラスを生成すればいい。
あとは添付した「main.cpp」みたいなコードを書いてビルドすれば目出度くGUIプログラムの完成だ。
779(2): 2014/09/13(土)17:37 ID:dXOJBgge(1) AAS
レイアウトやイベントの仕様が
前もって分かって一発で決まるようなものならいいけど
そうでない場合は細かいテクが必要になるんだよなぁ
VB,delphi,VisualStudio他のポトペタとは違って
基本クラスや継承クラスの生成コードは
上書きしちゃってよしなにしてくれないから目視マージが必要になる
で、それならxrcでいっかなとなったりとね
省4
780: 2014/09/13(土)18:03 ID:iQniTJEB(1/8) AAS
>>778
出来れば言葉で説明していただけるととても有難いんだけれども。
781(1): 2014/09/13(土)18:20 ID:iQniTJEB(2/8) AAS
>>776
MyProject1MyFrame1.cpp に、
void MyProject1MyFrame1::m_button1OnButtonClick( wxCommandEvent& event )
{
// TODO: Implement m_button1OnButtonClick
this->Close();
}
省6
782: 2014/09/13(土)18:22 ID:iQniTJEB(3/8) AAS
そもそも wxFormBuilder って、人間が書いたコードと「マージ」や「アペンド」する機能は全くなくて、
デザイナのテキスト領域に表示されるコードをコピペして使う程度の事しかできないのかな?
783: 2014/09/13(土)18:27 ID:lhtCGruO(1/2) AAS
xrcはwxFormBuilderだとwxRibbonとかで生成に抜けがあるよね
これ自体はそのうちなおるだろうけど、案外使われてないのかなxrc
784: 2014/09/13(土)18:54 ID:iQniTJEB(4/8) AAS
class MyFrame1 : public wxFrame {・・・};
class MyProject1MyFrame1 : public MyFrame1 {・・・};
となっていて、
外部リンク:stackoverflow.com
の
・build your frame/panel in formbuilder
・generate inherited class
省6
785(1): 2014/09/13(土)18:57 ID:iQniTJEB(5/8) AAS
つまり、>>781 のイベント・ハンドラにおいて、this->Close(); の外側の部分も手作業で
書くしかないのではなかろうか?
そして、対応する *.h ファイルの中に、同じ関数のメンバ関数宣言も手作業で追加するしかないのでは?
786(1): 2014/09/13(土)19:05 ID:lhtCGruO(2/2) AAS
実装の中身以外は何一つ手では書かないっていうなら、wxWidgetsは投げ捨てて
QtCreator有するQtか、C++ Builderあたりを使うしかないよ。
wxFormBuilderはIDEじゃないし。
787: 2014/09/13(土)19:07 ID:iQniTJEB(6/8) AAS
>>786
QtCreator では、それが出来るのかな?
788: 2014/09/13(土)19:09 ID:o7tow4WW(1) AAS
XRC最強なんですけど
789(1): 2014/09/13(土)19:18 ID:JrIr4YUs(2/3) AAS
>>785
言葉通りに受け取ってくれればいい。
本当に「this->Close();以外書いてない」んだ。
つまり関数実装部は全て自動生成される。
つーか試してくれよ。
これだけ御膳立てしたんだからさ。
790(2): 2014/09/13(土)19:23 ID:iQniTJEB(7/8) AAS
>>789
大体、答えが分かった。
つまりあなたは、wxFormBuilder に MyProject1MyFrame1 を生成させて、
this->Close();
を追加したんだ。
そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
this->Close();
省4
791(1): 2014/09/13(土)19:27 ID:iQniTJEB(8/8) AAS
>>790
>そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
>this->Close();
>を自分で書かなきゃならない。
ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
コピーする必要があるということになる。
省1
792(1): 2014/09/13(土)19:44 ID:JrIr4YUs(3/3) AAS
>>790
> そいういうやり方だと、ボタンやメニュー項目を一つ増やす度に、手作業で、また、
> this->Close();
> を自分で書かなきゃならない。
そこらへんに少しコツがあってな。
自動生成された部分を一切変更しない限りにおいて、
後から機能追加して再度サブクラスを生成した時、以前書いた部分は削除されない。
省15
793(1): 2014/09/14(日)06:35 ID:wTwol/0w(1/5) AAS
なるほど、wxFormBuilderも新規出力(全書き換え)しかできないわけではないという
ことなの?
どうやるのかな?
794(1): 2014/09/14(日)06:44 ID:wTwol/0w(2/5) AAS
あと、EVENT TABLEが古いと言ってる人がいたけど、Connect()がそれに置き換わっただけ
だからね。使う側から目線では(抽象的な意味では)変わってない。配列で静的に持っているか、
関数で登録するかの違いに過ぎないから。
795: 2014/09/14(日)07:18 ID:wTwol/0w(3/5) AAS
以下によると、wxSmith には、TOP LEVEL RESOURCE を2つ以上作成する方法が見つからないらしい。
いったん、1つのTOP LEVEL WINDOW を作ると、全てがそのウィンドウの子供になってしまう。
POPUP MENU や、メインウィンドウに付随する1群のダイアログは、作るのが難しいらしい。
それに対して、wxFormBuilderは、2つ以上の TOP LEVEL RESOURCE を作ることが出来る、
と主張している。
外部リンク[php]:forums.codeblocks.org
It's one of reasons why I have switched from wxSmith to wxFormBuilder.
省7
796(1): 2014/09/14(日)10:11 ID:pzVlR1Le(1) AAS
お前が返信に時間かかってるのは煽るための文言を探してくるためか?
これだけ御膳立てしてやっても自分では一切手を動かす気は無いんだから、
呆れを通り越して笑いすら出てくるわ。俺はお前の保護者じゃねえよ。
英文は読めるみたいだからソフトの使い方が分からない筈があるまいに。
>>793
こんな問いに答える気はもう無い。理由は上記の通りだ。
今まで以上に噛み砕いた説明は俺には出来ないし、
省9
797: 2014/09/14(日)12:57 ID:wTwol/0w(4/5) AAS
>>796
誰も悪気がやってやってるわけじゃない。
あなたが勝手にそう取ってるだけだよ。
798(1): 2014/09/14(日)19:26 ID:P8BkuFbg(1/2) AAS
>>791
それは難癖だよ
継承側で動的バインドという
他と同じ手法を取ればいいだけの話だから
手間はおんなじだよ
>>792
その癖やコツをつかむのに
省4
799(1): 2014/09/14(日)19:52 ID:wTwol/0w(5/5) AAS
>>798
前半意味不明です。
800(1): 2014/09/14(日)20:11 ID:P8BkuFbg(2/2) AAS
>>799
> ここの部分を補足すると、その時に追加したボタンやメニュー項目に対するハンドラだけ
> でなく、既に存在していたボタンやメニュー項目に対する全てのハンドラの中身を手作業で
> コピーする必要があるということになる。
電卓とか参考になると思うよ
801: 2014/09/15(月)08:45 ID:7daUusVM(1) AAS
>>800
ならないと思う。
全てのボタンを一気に wxFromBuilder で作ってからイベントハンドラの
コードを手作業で書けば問題は表面化しないから。
そうでなくて、実際のプログラミングでは、機能追加のたびにボタンを追加して行く
ような作業が必要となる。
その時に上書きされてしまうかどうかがポイント。
802: 2014/09/15(月)10:58 ID:WIy8nvhC(1) AAS
xrcでFA
803(2): 2014/09/15(月)19:07 ID:LoW0dSpU(1) AAS
だから「ソフトの様式さえ守っていれば」書いたコードが消去されるような事は無いと何度言えば分かってくれるんだ。
試してないのが丸判りだ。ほんっっっっっっとに口ばっかりだなお前は。
これで悪気が無いというんだから最悪だ。本当に本当に最悪だ。
そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
804(1): 2014/09/16(火)00:01 ID:5MCxTvVt(1/4) AAS
>>803
全部自分で試さなきゃならないなら、人に聞く権利がなくなるじゃん。
試すのが時間がかかりすぎるから、誰かが試した結果が文書化されるん
だから。
805: 2014/09/16(火)02:40 ID:JmUjnEhI(1/3) AAS
これは一緒に仕事できないタイプですわ
806: 2014/09/16(火)02:41 ID:JmUjnEhI(2/3) AAS
自分はネット上に調べ物を書くときは自分が試した範囲のことしか書かないよ
妄想の実行結果で文句言ったりしないし、困難があれば自分で突破する
807: 2014/09/16(火)09:52 ID:5MCxTvVt(2/4) AAS
「共助」という概念を知らないの?
「自助」しかしてはならないなら、掲示板の意味がほとんど無くなる。
808: 2014/09/16(火)15:26 ID:5MCxTvVt(3/4) AAS
>>803
>そもそもwxFormBuilderで生成したイベント部に何十行も書くのか?
>保守性考えたら、C++だったら別にクラスや関数作って、そっちに処理ブン投げて終わりじゃないか?
これは駄目。
なぜなら、また、*.cpp と *.h に決まりきったコードを書く必要が出てくる
から。イベントハンドラ 1 つずつにこれを書く作業が大きなロスを
生む。
809(3): 2014/09/16(火)22:49 ID:rQo1SAiX(1) AAS
>>804
共助?お前だけは言っちゃいかん言葉だ。
1から100まで他人に聞いてばっかじゃんかお前。
お前がスレの閲覧者に対して何か有益な事一つでも書いたか?
ぜ〜〜〜〜〜んぶ愚痴もしくは煽りじゃんか。
全部自分で試さなきゃいけないとか言ってるがよ。
そもそもお前、俺の言った事何一つ聞く気が無いだろ?
省7
810: 2014/09/16(火)22:56 ID:l7dE9nrH(1) AAS
>>809
もうほっとけよ。相手するだけ無駄だ。
811: 2014/09/16(火)23:45 ID:5MCxTvVt(4/4) AAS
>>809
あんたが作ってるプログラムとは規模が違うからだよ。
812(1): 2014/09/16(火)23:46 ID:JmUjnEhI(3/3) AAS
てか決まりきったコードを減らすためのテンプレート?
そのためのメタプログラミングでしょ
813: 2014/09/17(水)00:02 ID:i4FG8Gei(1/3) AAS
>>812
はあ?
814: 2014/09/17(水)00:51 ID:i4FG8Gei(2/3) AAS
>>809
中段、あんたの言っていることはある程度は分かるんだよ。
でも、wxSmith の方が遥かにドキュメントが充実している上に、
CodeBlocks に統合されており、元々の設計からしてwxFormBuilderの
ような勝手な新規上書き仕様にはなってない。
wxSmithではマージやアペンドは当たり前なんだよ。その上で、
POPUP MENU だけは、作り方が分かたなかったから詳しい人に
省2
815: 2014/09/17(水)00:56 ID:i4FG8Gei(3/3) AAS
なんちゅうか、wxSmithは古いと勝手に決め付けて、wxFormBuilder
の方がいいという主張なんだから、どう良いかはあんたが説明すべき
でこっちに試せと言うのはお門違いなんだよ。
そもそもドキュメントが少なすぎる。試すしかないないなんて、
原始人レベルじゃないか。仕様は紙に書くのが基本だが、wxSmithの
場合は動画も多いからまだいいんだよ。wxFormBuilderなんて駄目
なんじゃないのか。進めている海外サイトもあるが、開発者本人が
省1
上下前次1-新書関写板覧索設栞歴
あと 145 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s