Domanda

sto usando QStandardItemModel con QTreeView, volevo riquadro a sinistra per mostrare i nodi, e il riquadro destro per visualizzare il valore del nodo, che è la colonna 0 e colonna 1 in questo caso.

Costruzione di nodi era abbastanza successo, ma quando sto cercando di valori posto in quel modello con QStandardItem::insertRow(1, XX), l'articolo non fosse rivelando a tutti, c'è qualcosa che mi mancava?

@update:

Dal momento che ho creato in modo ricorsivo nodi, io uso:

void Widget::addNode(QStandardItem *parent, const QVariant & data)
{
     QStandardItem *childKey = ...; // left pane
     QStandardItem *childValue = ...; // right pane

     parent->appendRow (childKey);

}

Non posso semplicemente usare model.setItem() per aggiungere childValue, dal momento che è andato alla riga sbagliata, e QTreeView non è espansa per impostazione predefinita, quando nuovo nodo viene aggiunto.

È stato utile?

Soluzione

Controlla il codice per fare in modo che avete detto il modello quante colonne che si desidera, vale a dire che si è chiamato QStandardItemModel :: setColumnCount () , per raccontare il modello per le colonne aggiuntive.

Modifica

Quindi è necessario impostare il valore di ogni elemento in ogni colonna. Un modo per farlo è quello di utilizzare QStandardItemModel::setItem ( int row, int column, QStandardItem * item)

Imposta l'elemento per la riga e la colonna data alla voce. Il modello assume la proprietà del bene. Se necessario, il conteggio delle righe e conteggio di colonna sono aumentati a montare il componente. L'articolo precedente alla posizione indicata (se ci fosse uno) viene eliminato.

Altri suggerimenti

È possibile aggiungere più colonne in una sola volta per un genitore per lo stesso nodo figlio in questo modo:

void Widget::addNode(QStandardItem *parent, const QVariant & data)
{
     QStandardItem *childKey = ...; // left pane
     QStandardItem *childValue = ...; // right pane

     QList<QStandardItem*> childColumns;
     childColumns<< childKey << childValue;

     parent->appendRow(childColumns);

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