のテーブル行内にボタン/リンクが必要ですQTableView
。これは、ダイアログを開いて、その行をより効率的に編集できるようにするためのものです。
何時間もウェブを調べた後、私はまだまともな例を見つけていません。
これはを使用して行われる可能性が高いことは承知していますQItemDelegate
が、最初にアイテムを強制的に編集モードにせずに、行内に機能的なウィジェットを配置する方法がわかりません。
どんな助けでも大歓迎です。
のテーブル行内にボタン/リンクが必要ですQTableView
。これは、ダイアログを開いて、その行をより効率的に編集できるようにするためのものです。
何時間もウェブを調べた後、私はまだまともな例を見つけていません。
これはを使用して行われる可能性が高いことは承知していますQItemDelegate
が、最初にアイテムを強制的に編集モードにせずに、行内に機能的なウィジェットを配置する方法がわかりません。
どんな助けでも大歓迎です。
そのために使用できます。詳細については、 Qt のドキュメントsetIndexWidget
を参照してください。
例として、2 行目の 1 列目にプッシュ ボタンを埋め込むには (未テストのコード):
tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);
クリック可能なテキストに下線を付け、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);
}
}