[gelöst] Probleme mit Ausgabe in der QTableView
Verfasst: 3. Januar 2012 04:40
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: 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:
Der Code wie ich die Daten speichere:
Der Code für die Tabelle innerhalb des GUI:
Viel dank im Vorraus
René
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: 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());
}
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();
}
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);
René