トップページ > プログラム > 2014年09月13日 > iQniTJEB

書き込み順位&時間帯一覧

4 位/234 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000005300008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【GUI】wxWidgets(旧wxWindows) その5【サイザー】

書き込みレス一覧

【GUI】wxWidgets(旧wxWindows) その5【サイザー】
780 :デフォルトの名無しさん[sage]:2014/09/13(土) 18:03:46.11 ID:iQniTJEB
>>778
出来れば言葉で説明していただけるととても有難いんだけれども。
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
781 :デフォルトの名無しさん[sage]:2014/09/13(土) 18:20:32.24 ID:iQniTJEB
>>776
MyProject1MyFrame1.cpp に、

void MyProject1MyFrame1::m_button1OnButtonClick( wxCommandEvent& event )
{
  // TODO: Implement m_button1OnButtonClick
  this->Close();
}

と類似の行が沢山あるけど、this->Close() 以外は、wxFormBuilder が自動生成したとのことで Ok ?

>>779
>基本クラスや継承クラスの生成コードは
>上書きしちゃってよしなにしてくれないから目視マージが必要になる
>で、それならxrcでいっかなとなったりとね

この辺りとの関連が知りたい。自分で書いたコードが勝手に上書きされて消されてしまうということ?
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
782 :デフォルトの名無しさん[sage]:2014/09/13(土) 18:22:33.01 ID:iQniTJEB
そもそも wxFormBuilder って、人間が書いたコードと「マージ」や「アペンド」する機能は全くなくて、
デザイナのテキスト領域に表示されるコードをコピペして使う程度の事しかできないのかな?
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
784 :デフォルトの名無しさん[sage]:2014/09/13(土) 18:54:43.70 ID:iQniTJEB
class MyFrame1 : public wxFrame {・・・};
class MyProject1MyFrame1 : public MyFrame1 {・・・};

となっていて、

http://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 は、最初の
一回しか書き換えない(というよりユーザーが指示しないと生成しない)、ということらしいから。
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
785 :デフォルトの名無しさん[sage]:2014/09/13(土) 18:57:59.23 ID:iQniTJEB
つまり、>>781 のイベント・ハンドラにおいて、this->Close(); の外側の部分も手作業で
書くしかないのではなかろうか?

そして、対応する *.h ファイルの中に、同じ関数のメンバ関数宣言も手作業で追加するしかないのでは?
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
787 :デフォルトの名無しさん[sage]:2014/09/13(土) 19:07:33.52 ID:iQniTJEB
>>786
QtCreator では、それが出来るのかな?
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
790 :デフォルトの名無しさん[sage]:2014/09/13(土) 19:23:58.85 ID:iQniTJEB
>>789

大体、答えが分かった。

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


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

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

だとすれば、this->Close(); の部分は、実践的には、もっと長くなるのだから、
物凄く面倒で、なおかつ危険が伴う作業になるね。
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
791 :デフォルトの名無しさん[sage]:2014/09/13(土) 19:27:26.32 ID:iQniTJEB
>>790

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

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

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


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。