Seite 1 von 1

[gelöst] Probleme mit Ausgabe in der QTableView

Verfasst: 3. Januar 2012 04:40
von Rene
Hallo,

ich messe über ein USB-Board in regelmäßigen Abständen Spannungen. Diese Daten speichere ich über das QAbstractModel in einer QList. Das klappt auch wunderbar. Nur wenn es an die Ausgabe der Daten in der Tabelle geht, habe ich ein paar Probleme. Die Daten werden auch angezeigt. Nur ist vor den Daten noch ein Auswahlfeld (QCheckBox) zu sehen. Des weiteren stehen die Daten von der 1. Spalte nicht unter einander, wie die anderen beiden Spalten. Ich habe ein Bildschirmfoto mit angehängt, wo zu sehen ist, was ich meine.

Hier das Abbild:
Ausgabe der Tabelle
Ausgabe der Tabelle
screen_201201030420.png (7.27 KiB) 2460 mal betrachtet
Ich muss dazu sagen, dass ist mein erstes Projekt mit Qt. Hier meine Fragen: Wie bekomme ich die Daten der ersten Spalte untereinander? Und wie entferne ich die Auswahlfelder?

Der Code, wie ich die Daten ausgebe:

Code: Alles auswählen

QVariant ViewsDataTable::data(const QModelIndex &index, int role) const
{
  data_list data = datas->getDataAt(index.row() - 1);
  QString tmp = QString("%1");

  switch (index.column())
  {
    case 0:
      return tmp.arg(data.time);

    case 1:
      return tmp.arg(data.value1);
      
    case 2:
      return tmp.arg(data.value2);        
  }

  return (QVariant());
}
Der Code wie ich die Daten speichere:

Code: Alles auswählen

void ViewsDataTable::appendDatas(datas_time time, datas_value data1, datas_value data2)
{
  datas_time last = datas->getLastTime() + time;
  beginInsertRows(QModelIndex(), rowCount() + 1, rowCount() + 1);
  datas->addValue(last, data1, data2);
  endInsertRows();
}
Der Code für die Tabelle innerhalb des GUI:

Code: Alles auswählen

  dataModel = new ViewsDataTable(0);
  ui.table->setModel(dataModel);
  ui.table->setSelectionMode(QAbstractItemView::SingleSelection);
  ui.table->setEditTriggers(QAbstractItemView::NoEditTriggers);
  ui.table->setSelectionBehavior(QAbstractItemView::SelectRows);
Viel dank im Vorraus
René

Re: Probleme mit Ausgabe in der QTableView

Verfasst: 3. Januar 2012 08:09
von Christian81
Die role in ViewsDataTable::data(const QModelIndex &index, int role) const sollte man schon beachten!

Re: Probleme mit Ausgabe in der QTableView

Verfasst: 3. Januar 2012 08:10
von archer
Schau dir mal die Methode flags() und Qt::ItemFlags an.
Auch solltest du dich entscheiden welche roles du in data() wirklich unterstützen willst, siehe Qt::ItemDataRole.

Re: Probleme mit Ausgabe in der QTableView

Verfasst: 3. Januar 2012 13:17
von Rene
Ich danke euch.

Das mit der role war der ausschlaggebende Punkt. Nun sind diese Check-Boxen weg und die Zahlen stehen auch schön unter einander.