質問

テーブルの行内にボタン/リンクが必要です 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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top