Pergunta

Em QT4.5,

Eu uso um QTableWidget e conectei o sinal QTableWidget::itemClicked() a um slot personalizado como este:

connect(_table, SIGNAL(itemClicked(QTableWidgetItem*)), item, SLOT(sloItemClicked(QTableWidgetItem*)));

Eu crio essa conexão para cada linha que adiciono à tabela.

O problema é que o slot sloItemClicked é chamado mais de uma vez, parece que ele é chamado na hora X, onde X é o número de linhas da minha tabela.

Mas está pedindo a mesma linha o tempo todo.(QTableWidgetItem que recebo é o mesmo).

Isso é um problema, porque quando a linha é clicada, eu a excluo.Portanto, na próxima vez que for chamado, QTableWidgetItem não será mais válido e travará.

Se eu tiver apenas uma linha, tudo funcionará conforme o esperado.

Qualquer ideia?

Obrigado

Foi útil?

Solução

Você só deve criar a conexão uma vez, pois o sinal é um sinal no mesa e não em um indivíduo QTableWidgetItem.Quando emitido, ele lhe dará o QTableWidgdetItem que você clicou como argumento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top