「Qtのコントロール - テーブル」の版間の差分
ナビゲーションに移動
検索に移動
細 (文字列「presire220a-22」を「presire2-22」に置換) |
|||
79行目: | 79行目: | ||
! style="text-align: center; background-color:#44CC99;" | 参考書 | ! style="text-align: center; background-color:#44CC99;" | 参考書 | ||
|- style="text-align: center;" | |- style="text-align: center;" | ||
| <html><a href="https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Qt-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Jasmin-Blanchette/dp/487311344X?keywords=%E5%85%A5%E9%96%80qt4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&linkCode=ll1&tag= | | <html><a href="https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Qt-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Jasmin-Blanchette/dp/487311344X?keywords=%E5%85%A5%E9%96%80qt4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&linkCode=ll1&tag=presire2-22&linkId=2c7e047dacbd7c058b419649328f446b&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/51fYkkbMiiL.jpg" ></a><br> | ||
<center><a target="_blank" href="https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Qt-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Jasmin-Blanchette/dp/487311344X?keywords=%E5%85%A5%E9%96%80qt4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&linkCode=ll1&tag= | <center><a target="_blank" href="https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Qt-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Jasmin-Blanchette/dp/487311344X?keywords=%E5%85%A5%E9%96%80qt4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&linkCode=ll1&tag=presire2-22&linkId=2c7e047dacbd7c058b419649328f446b&language=ja_JP&ref_=as_li_ss_tl">入門Qt 4プログラミング</a></center></html> | ||
|} | |} | ||
</center> | </center> |
2024年11月23日 (土) 17:47時点における最新版
概要
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