In realtà io sono nuovo di Qt sono in grado di abbinare QMouseEvent con QTableviewQTableView: Come posso ottenere i dati quando l'utente clicca su una particolare cella utilizzando il mouse
ragazzi si prega di aiutare a risolvere questo problema.
In realtà io sono nuovo di Qt sono in grado di abbinare QMouseEvent con QTableviewQTableView: Come posso ottenere i dati quando l'utente clicca su una particolare cella utilizzando il mouse
ragazzi si prega di aiutare a risolvere questo problema.
Ecco un esempio di come è possibile ottenere, ad esempio, il testo della cella della tabella quando si fa clic su di esso. Supponiamo che un QTableView
sia definito in alcune classi MyClass
. È necessario installare il collegamento di clicked
(è possibile utilizzare anche doubleClicked
, pressed
e altri segnali troppo, a seconda del vostro obiettivo) del segnale e realizzare il corrispondente onTableClicked()
slot per esso, come illustrato di seguito: implementazione
connect(tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onTableClicked(const QModelIndex &));
Slot:
void MyClass::onTableClicked(const QModelIndex &index)
{
if (index.isValid()) {
QString cellText = index.data().toString();
}
}
L'esempio sopra riportato funziona bene grazie per aver fornito la soluzione – ShivaPrasad
@vahancho puoi dirmi qual è la differenza tra clic (const QModelIndex &) e cellClicked (int row, int column)? Perché non può esserci una singola API? –
@XavierGeoffrey, la differenza è che questi segnali sono dichiarati in diverse classi: 'QAbstractItemView :: clicked()' e 'QTableWidget :: cellClicked()' rispettivamente. Il primo segnale può essere utilizzato in tutte le classi di visualizzazione delle voci come treeview, tableview, listview, mentre il secondo solo per i widget di tabella. Anche gli argomenti sono diversi: a volte è molto più comodo passare un indice del modello che una riga e una colonna, specialmente per le treeview, dove c'è anche un genitore. – vahancho
Mostraci cosa hai provato e quali sono i tuoi problemi? – RobbieE
Hai provato a utilizzare il segnale [cliccato] (http://qt-project.org/doc/qt-5.0/qtwidgets/qabstractitemview.html#clicked)? – thuga