クライアント領域クライアント領域の分割
水平・垂直スプリッターで3つの領域に分割します。
![]() 各領域作成関数の宣言 (mainwindow.h)
左・右上・右下領域に分けて作成します。
各領域の作成 (mainwindow.cpp)
3つの領域を作り、スプリッターに追加して最後にクライアント領域に貼り付けます。
※各領域内もスプリッターで分割しています。
左領域ファイルとプロパティ
上側にファイルツリーを表示し、選択されたファイルの情報を下側に表示します。
![]() 左領域の宣言 (mainwindow.h)
イベント処理関数とそこで使うウィジェットを宣言します。
左領域の作成 (mainwindow.cpp)
ファイルツリーを作ってクリックした時のイベント処理関数を割り当てます。
情報を表示するラベルを5つ作り、 フォームレイアウト・ウィジェット・スクロールエリアと順番に入れていきます。 最後に垂直スプリッターを作ってファイルツリーとスクロールエリアを入れて、 スプリッターを戻り値として返します。 ※ツリー表示1列目のNameの幅は240pxにしています。 イベント処理 (mainwindow.cpp)
ファイルツリーをクリックした時にファイルの情報を表示します。
※サイズは3桁ごとにカンマを入れるため、QLocaleを使っています。
右上領域リストとテーブル
左側にリスト、右側にテーブルを表示します。
テーブルのセルをダブルクリックすると文字の入力ができます。
![]() 右上領域の宣言 (mainwindow.h)
イベント処理関数を宣言します。
右上領域の作成 (mainwindow.cpp)
リストにはアイテムを4つ入れて、クリック時のイベント関数を割り当てます。
テーブルは10行3列で、アイコンや文字列を入れたアイテムを各セルにセットします。 さらに、セルの内容が変化した時のイベント関数を割り当てます。 水平スプリッターにリストとテーブルを入れて、戻り値として返します。 ※アイコンは標準Pixmapを使用しています。 リストのイベント処理 (mainwindow.cpp)
リストをクリックした時にテキストをデバッグ出力します。
テーブルのイベント処理 (mainwindow.cpp)
セルの内容が変わった時にセルの行・列位置とテキストをデバッグ出力します。
※セルをダブルクリックしてキー入力し、エンターキーを押すとこのイベントが発生します。
※sender()はシグナルの送り元で、connectの第1引数です。 右下領域いろいろなウィジェット
左側はスタックレイアウトを使ったグリッドとタブの切り替えサンプルです。
右側は垂直ボックスにテスト用のボタンを配置しています。 ![]() ※この表示はグリッドのほうです。 ヘッダーの宣言 (mainwindow.h)
イベント処理関数とイベントで使うウィジェット、それにグリッド/タブ作成関数を宣言します。
右下領域の作成 (mainwindow.cpp)
作成した2つのウィジェットをスタックにセットしてスクロールエリアに入れます。
垂直ボックスに見出しラベルと3つのボタンをセットしてウィジェットに入れます。 水平スプリッターにスクロールエリアとウィジェットを入れて戻り値として返します。 ※スクロールエリア(scrollStack)は、画像タブでサイズを調べる時に使います。 [タブ表示]をクリックした時の処理
グリッド/タブの表示を切り替えて、タブ表示ボタンの色を変えます。
[ラジオボタンクリア]をクリックした時の処理
グループタブのラジオボタンを何も選択されてない状態に戻します。
※ラジオボタンは一度選択すると必ずどこかが選択されている状態になります。 ※チェックをすべてオフにすれば無選択状態になります。 ※これはグループタブが表示されてない時でも実行できます。 [プロパティクリア]をクリックした時の処理
左領域のプロパティ表示をクリアします。
スタックレイアウトについて
グリッドとタブのどちらかを表示します。両方一緒に表示できません。
![]() ※タブ表示ボタンで切り替えます。 |
2016年12月
Copyright © 2016 dorafop All Rights Reserved.