22

のテーブル行内にボタン/リンクが必要ですQTableView。これは、ダイアログを開いて、その行をより効率的に編集できるようにするためのものです。

何時間もウェブを調べた後、私はまだまともな例を見つけていません。

これはを使用して行われる可能性が高いことは承知していますQItemDelegateが、最初にアイテムを強制的に編集モードにせずに、行内に機能的なウィジェットを配置する方法がわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

26

そのために使用できます。詳細については、 Qt のドキュメントsetIndexWidgetを参照してください。

例として、2 行目の 1 列目にプッシュ ボタンを埋め込むには (未テストのコード):

tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);
于 2010-12-11T08:04:44.590 に答える
1

クリック可能なテキストに下線を付け、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);
  }
}
于 2010-12-13T19:32:33.747 に答える