Raspberry Pi 3でGUI作成 Code::Blocks
津路です。
前回に引き続き、Code::Blocksで、wxWidgetsプロジェクトを作成しました。
今回は、GUIビルダーにwxSmithを使って、Frame形式です。
簡単なエディタを作ってみました。
最初は、リソースエディターを開いて、どう使うのか少しとまどいましたが、慣れるのに数時間もかかりません。
画面下に、Standard, Advanced, Aui, Contrib, Dialogs, KWIC, Layout, Led, Toolsとたくさんタブがあって、
まずは、LayoutからwxBoxSizerやwxGridSizerなどを加えます。
wxWidgetの種類
その際、画面右の縦に並んだアイコンのうちから、追加方式を選択します。
マウスをオーバーさせるとtooltipが出ます。
最上部は、マウスで、widgetを追加する先を指定するよです。
2番目は、選択中のwidgetの配下にwidgetを追加
3番目は、選択中のwidgetの前に追加、4番目は後ろに追加
5番目は、選択中widgetを削除
配置方法選択
また、MenuBarとStatusBarが上部に最初から追加されています。
MenuBarの編集は、ダブルクリックすると、editorがポップアップされて、項目追加や層の移動、オプションの編集など十分な機能があります。
MenuBarを編集
今回ファイルを開く機能を追加するため、Openという項目をFileメニューの配下に追加し、IDなどを設定しました。
イベントを追加するには、Open項目を選択して、左下でEventsをクリックし、追加します。
すると、frameMain.cppソースに、イベントが追加されます。
OnOpenイベントを追加
配置したwidgetの編集ですが、左下のプロパティで設定します。サイズや位置はマウスで結構自在にできます。
もちろん、Sizer内の範囲を頭に入れてないと自在じゃないですが。
テキストファイルを読み込むには、ファイル選択ダイアログを表示し、選ばれたファイルを読み込みます。
ファイル選択ダイアログは、wxFileDialogをToolsタブから選んで上部に追加します。
そして、その変数名で、コードから参照して、ShowModalにて表示します。
選択されたファイルのパスをGetCurrentSelectedFilenameで受け取って、
wxFileInputStreamから、wxTextInputStreamを使って、一行ずつ読み込みます。
コードはUTF8です。
結果をTextCtrlに貼り付けます。最初、Textというメンバーがあるのかと思ってTを入れるとない!、でも、メンバーを表示してくれるので、大変助かります。SetValueが見つかりました。
Editorでファイルをオープンしたところ
デバッグは、普通のIDE同様、ほぼ正常にできます。
結果、このIDEを気に入ってしまいました。