Qtのコントロール - テーブル
		
		
		
		ナビゲーションに移動
		検索に移動
		
概要
Qtにおいて、QTableWidgetクラスを使用してテーブルをコントロールする手順を記載する。
テーブルの設定
Qt Designerにおいて、テーブルコントロールを配置して、コントロールIDを"Table"としている。
 Table->clear();
 
 // テーブルサイズを決定
 Table->setColumnCount(3);
 Table->setRowCount(20);
 	
 // 列のタイトル文字列を指定
 QStringList listTitle = {"タイトル1", "タイトル2", "タイトル3"};
 Table->setHorizontalHeaderLabels(listTitle);
 
 // セルを埋める
 Table->setItem(0, 0, new QTableWidgetItem(何かテキスト);
 Table->setItem(0, 1, new QTableWidgetItem(""));
 Table->setItem(0, 2, new QTableWidgetItem(""));
 
 // 行の高さを指定する
 // 各行ごとに指定する必要がある
 Table->setRowHeight(0, 20);
 
 // 1行選択モードに設定
 Table->setSelectionMode(QAbstractItemView::ContiguousSelection);
 Table->setSelectionBehavior(QAbstractItemView::SelectRows);
セルの文字列の取得
 Table->item(<行>, <列>)->text()
アイコンをセルに表示
 // セルのアイテムを取得する
 QTableWidgetItem *pItem = tableWidget->item(<行>, <列>);
 
 // リソースにアイコンが登録されている場合
 pItem->setIcon(QIcon(":/icons/icon.png"));
指定したアイテムまでスクロール
 // セルのアイテムを取得
 QTableWidgetItem *pItem = tableWidget->item(<行>, <列>);
 tableWidget->scrollToItem( pItem );
セルにコントロールを埋め込む
チェックボックスをセルに埋め込む場合、QTableWidgetItemクラスのsetCheckStateメソッドを使用する。
 QTableWidgetItem *pItemCheck = new QTableWidgetItem();
 
 // チェックボックスを入力状態で表示する場合、Qt::Checkedを指定する
 // チェックボックスを未入力状態で表示する場合、Qt::Uncheckedを指定する
 pItemCheck->setCheckState(Qt::Checked);
その他のコントロールをセルに埋め込む場合は、以下のWebサイトを参照すること。
基本的には、以下の手順を行う。
- QStyledItemDelegateクラスを継承した派生クラスを作成する。
- いくつかの仮想関数をオーバーライドする。
- オーバーライドしたメソッドで、セルの表示やコントロールとのデータのやり取りを規定する。
- setItemDelegateメソッドでデリゲートを適用する。
スピンボックスについて詳細を知りたい場合は、/<Qtのインストールディレクトリ>/examples/itemviews/spinboxdelegateディレクトリ、および、以下に示す書籍を参照すること。
| 参考書 | 
|---|
|  | 
コンボボックスについて詳細を知りたい場合は、Qtの公式Webサイトを参照すること。
Combo Boxes in Item Views : http://qt-project.org/wiki/Combo_Boxes_in_Item_Views