[gelöst] Probleme mit Ausgabe in der QTableView

Alles rund um die Programmierung mit Qt
Antworten
Rene
Beiträge: 2
Registriert: 24. Dezember 2011 14:40

[gelöst] Probleme mit Ausgabe in der QTableView

Beitrag 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) 2461 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é
Zuletzt geändert von Rene am 3. Januar 2012 18:14, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Probleme mit Ausgabe in der QTableView

Beitrag von Christian81 »

Die role in ViewsDataTable::data(const QModelIndex &index, int role) const sollte man schon beachten!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: Probleme mit Ausgabe in der QTableView

Beitrag 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.
Rene
Beiträge: 2
Registriert: 24. Dezember 2011 14:40

Re: Probleme mit Ausgabe in der QTableView

Beitrag 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.
Antworten