Domanda

In Qt4.5,

Io uso un QTableWidget, e ho collegato il segnale di QTableWidget :: itemClicked () per uno slot personalizzato come questo:

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

a creare una connessione per ogni fila aggiungo alla tabella.

Il problema è che lo slot sloItemClicked ottenere chiamato più di una volta, sembra che di venire chiamato ora X, dove X è il numero di riga in mio tavolo.

Ma si chiede la stessa riga per tutto il tempo. (QTableWidgetItem che ricevo è lo stesso).

Questo è un problema, perché quando la riga viene cliccato, Io lo cancello. Così la prossima volta che viene chiamato, il QTableWidgetItem non è più valido ed è in crash.

Se ho solo una riga, tutto funziona come previsto ..

Qualche idea?

Grazie

È stato utile?

Soluzione

Si dovrebbe creare solo la connessione una volta da quando il segnale è un segnale sul tavolo e non su un QTableWidgetItem individuale. Quando emessa vi darà la QTableWidgdetItem che avete cliccato su come argomento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top