QTableView
のテーブル行内にボタン/リンクが必要です。これは、ダイアログを開いて、その行をより効率的に編集できるようにするためです。
何時間もウェブを調べた後、私はまだまともな例を見つけていません。
これはQItemDelegate
を使用して行われる可能性が高いことは承知していますが、最初にアイテムを編集モードに強制せずに行内に機能ウィジェットを配置する方法がわかりません。
どんな助けでも大歓迎です。
クリック可能なテキストに下線を引き、cellClicked(row、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);