QT -qtableView-表行中的单击按钮
-
08-10-2019 - |
题
我需要在一个表行中的按钮/链接 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文档 了解更多信息。
例如,在第二行的第一列中嵌入一个按钮(未经测试的代码):
tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);
不隶属于 StackOverflow