QT -QTableView-テーブル行のクリック可能なボタン
-
08-10-2019 - |
質問
テーブルの行内にボタン/リンクが必要です QTableView
. 。これは、その行をより効率的に編集できるようにダイアログを開くことです。
ウェブで何時間も見た後、私はまだまともな例を見つけていません。
私はこれが使用される可能性が高いことを知っています QItemDelegate
, 、しかし、最初にアイテムを編集モードに強制せずに、行内に機能的なウィジェットを置く方法がわかりません。
どんな助けも大歓迎です。
解決
クリック可能なテキストを下線に付けることにより、リンクの機能をエミュレートし、セルクリック(行、col)信号を介してクリックをキャプチャし、col == editcolumnであることを確認できます。次に、行は編集するアイテムに対応します。
例えば、
データ名|値1 |値2 | 編集
connect (tableWidget, SIGNAL(cellClicked(int,int)), this, SLOT(editSlot(int, int)));
...
void ClassName::editSlot(int row, int col){
if (col == 3) {
doWork(row);
}
}
他のヒント
使用できます setIndexWidget
そのために、を参照してください QTドキュメント 詳細については。
例として、2行目の最初の列にプッシュボタンを埋め込むには(テストされていないコード)。
tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);
所属していません StackOverflow