環境
Linux (Raspberry Pi3B+, Raspbian 10.13, Kernel 5.10.103-v7+)
カスタムWidgetの作成
新規クラスを作成する際、MainWindowとは別のフォームファイルとする。
Qt Designer Form ClassでオリジナルのWidgetとして作成する。
ファイル作成
新規ファイル作成ダイアログを開き、下記を選択。
- ファイルとクラス: Qt
- Qt Designerフォームクラス
Qt Designerフォームクラスを選択した場合、以下のファイルが作成される。
- Qt Designerフォーム
- C++ヘッダーファイル
- C++ソースファイル
Qt Designerフォームクラスの初期設定
フォームテンプレートの選択
テンプレートを指定できる。
オリジナルのWidgetを作成する場合の多くはテンプレート不要なので、最低限の記述のみの状態である「Widget」を選択。
クラス名の選択
クラス名を指定する。
ヘッダーファイル名、ソースファイル名、フォームファイル名は、クラス名に合わせて自動で入力されるため、拘りのある場合以外では手動で変更しなくてよい。
ファイルを作成するフォルダパスを念のため確認しておく。
プロジェクト管理設定
追加したいプロジェクトが指定されているか確認。
バージョン管理システムを使用する場合は指定。
「完了」を押すとQt Designerフォームクラスが作成され、フォームファイルが開かれる。
カスタムWidgetのフォーム編集
フォームを編集する。
カスタムWidgetのヘッダー・ソースファイルの編集
ヘッダーファイル、ソースファイルを編集する。
カスタムWidgetの挿入
- addWidget()で挿入したいので、カスタムWidgetを挿入するフォームファイルにLayoutsで場所を用意する。
- 挿入予定フォームクラスのヘッダーファイルに、カスタムWidgetのヘッダーをincludeする。
- 挿入予定フォームクラスのソースファイルに、カスタムWidgetを挿入する記述をする。
CustomWidget* widget = new CustomWidget(); // インスタンス生成
ui->mainLayout->addWidget(widget); // mainLayout内にwidgetを追加
