我需要在QTableView
的表行中添加一个按钮/链接,以便更高效地打开对该行进行编辑的对话框。
经过数小时在网络上的搜索,我仍然没有找到一个像样的例子。
我知道这可能需要使用QItemDelegate
来完成,但我不确定如何在行内具有一个可用的小部件而不强制将其项首先进入编辑模式。
非常感谢任何帮助。
我需要在QTableView
的表行中添加一个按钮/链接,以便更高效地打开对该行进行编辑的对话框。
经过数小时在网络上的搜索,我仍然没有找到一个像样的例子。
我知道这可能需要使用QItemDelegate
来完成,但我不确定如何在行内具有一个可用的小部件而不强制将其项首先进入编辑模式。
非常感谢任何帮助。
你可以使用setIndexWidget
实现此操作,有关更多信息,请参见Qt文档。
例如,要在第二行的第一列中嵌入一个按钮(未经测试的代码):
tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);
connect (tableWidget, SIGNAL(cellClicked(int,int)), this, SLOT(editSlot(int, int)));
...
void ClassName::editSlot(int row, int col){
if (col == 3) {
doWork(row);
}
}