Code::Blocks ファイル保存とデバッグ
津路です。
昨年11月の投稿から2か月も経過してしまいました。
Raspberry Pi に、別のUSBキーボードとUSB赤外線マウスをつなぐと、何もしなくても問題なく動きました。
数十年前始めてLinuxをインストールして使ったときには、シリアルでしか認識できませんでした。
古すぎた話ですね。笑。
今回は、前作に続き、ファイル保存機能を追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void testsmithframeFrame::OnSave(wxCommandEvent& event) { wxFileDialog saveFileDialog(this,_("Save txt file"), "", "", "Text files(*.txt)|*.txt", wxFD_SAVE|wxFD_OVERWRITE_PROMPT); if(saveFileDialog.ShowModal() == wxID_CANCEL) return; wxFileOutputStream output_strem(saveFileDialog.GetPath()); int len=strlen(TextCtrl1->GetValue().mb_str(wxConvUTF8)); output_strem.Write(TextCtrl1->GetValue().mb_str(wxConvUTF8),len); if(!output_strem.IsOk()) { wxLogError("Cannot save current contents in file '%s.", saveFileDialog.GetPath()); return; } } |
デバッグでは、次の致命的な欠陥が修正されていません。
Quitから、Closeが呼ばれますが、実行すると問題なく終了するのに、ブレークポイントを入れてデバッグすると、毎回そこのウィンドウが表示されて、デバッグ継続したいのに、同じポイントにとどまって、絶対に終了しないことがあります。
これを解消するには、Code::Blocks本体を再起動するしかありません。
更に、色々作っていると、学習できる個所が何点かありました。
wxBoxSizerをまず配置し、その中にwxPanelを置きます。
以下のような構成にするには、その中にwxFrexGridSizerです。
すると、ヘッダには、wxSmithが以下の行を加えます。
続きは、次回に。。