botón que se pulse en la fila de la tabla - Qt - QTableView
-
08-10-2019 - |
Pregunta
requiere un botón / enlace dentro de una fila de tabla de un QTableView
. Se trata de abrir un diálogo para permitir que la fila para ser editado de manera más eficiente.
Después de horas de buscar en la web Estoy todavía a encontrar un ejemplo decente.
Soy consciente de que esto es probable que se realice utilizando un QItemDelegate
, pero no estoy seguro cómo tener un widget funcional dentro de la fila sin forzar el elemento en el modo de edición en primer lugar.
Cualquier ayuda sería muy apreciada.
Solución
Se podría emular la funcionalidad de un enlace subrayando el texto puede hacer clic, a continuación, la captura de la célula clic a través de la señal de cellClicked (fila, columna) y comprobar que col == editColumn. A continuación, la fila se correspondería con el elemento que se está editando.
Por ejemplo,
Nombre de datos | Valor 1 | Valor 2 | Editar
connect (tableWidget, SIGNAL(cellClicked(int,int)), this, SLOT(editSlot(int, int)));
...
void ClassName::editSlot(int row, int col){
if (col == 3) {
doWork(row);
}
}
Otros consejos
Se puede utilizar setIndexWidget
para eso, ver el Qt documentación más información.
Como ejemplo, para incrustar un botón pulsador en la primera columna de la segunda fila (código no probado):
tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);