example c++ qt qtableview qitemdelegate

c++ - example - qtablewidget



Qt-QTableView-Botón clic en la fila de la tabla (2)

Puede emular la funcionalidad de un enlace al subrayar el texto que se puede hacer clic, luego capturar el clic de la celda a través de la señal cellClicked (row, col) y verificar que col == editColumn. Entonces la fila correspondería a qué elemento 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); } }

QTableView la capacidad de tener un botón / enlace dentro de una fila de la tabla de QTableView . Esto es para abrir un diálogo para permitir que la fila se edite de manera más eficiente.

Después de horas buscando en la web, aún no he encontrado un buen ejemplo.

Soy consciente de que es probable que esto se haga usando un QItemDelegate , pero no estoy seguro de cómo tener un widget funcional dentro de la fila sin forzar el elemento primero al modo de edición.

Cualquier ayuda sería muy apreciada.


Puede usar setIndexWidget para eso, vea la documentación de Qt para más información.

Como ejemplo, para insertar un botón en la primera columna de la segunda fila (código no probado):

tableView->setIndexWidget(tableView->model()->index(2, 1), new QPushButton);