Seite 1 von 1

Problem mit QTableView

Verfasst: 20. Januar 2015 14:06
von QuornJulio
hallo,

ich habe eine kleine anwendung geschrieben, um mich mit dem QTableView zu beschäftigen.
leider stürzt die anwendung ab, wenn ich den scrollbalken der table ans ende ziehe.
kurz bevor die letzte zeile erscheint, stürzt die anwendung ab.

die anwendung ist recht simpel aufgebaut.

Code: Alles auswählen

QVector<Person> personen;
this->mTableModel = new TableModel(this->tableView, personen);
this->qHeaderView = new QHeaderView(Qt::Vertical, this->tableView);
this->vHeaderModel = new QStandardItemModel(this->qHeaderView);
this->vHeaderModel->insertRows(0, 50, QModelIndex());
this->qHeaderView->setModel(this->vHeaderModel);
this->tableView->setModel(this->mTableModel);
this->tableView->setVerticalHeader(this->qHeaderView);
es ist für nicht ersichtlich, wo der fehler liegt.
jedenfalls wollte ich eine tabelle mit "leeren" zeilen (keine nackte tabelle).

einige eckdaten:
windows 7
qt 5.4
mingw 4.9.1 (das von Qt mitgelieferte)

habt ihr eine idee, woran das liegen kann? für tipps wäre ich euch dankbar.

gruss
QuornJulio

[Nachtrag]
QtCreator gibt folgende fehlermeldung:
ASSERT failure in QBitArray::QBitArray: "Size must be greater than or equal to 0.", file tools\qbitarray.cpp, line 142
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.

Re: Problem mit QTableView

Verfasst: 20. Januar 2015 17:57
von Christian81
Zum einen gibt es einen Debugger mit dem man sich den Stacktrace anschauen kann und zum Anderen kann der gepostete Code dies nicht hervorrufen. Irgendwo wirst Du wohl mit QBitArray arbeiten und dort einen Fehler haben -> minimales, kompilierbares Beispiel ist nötig.

Re: Problem mit QTableView

Verfasst: 21. Januar 2015 11:06
von QuornJulio
hallo,

ich habe das projekt gezipt. es steht als anhang zur verfügung. ("minimales, kompilierbares Beispiel ")
wie bereits erwähnt, ist es eine simple anwendung.

anwendung starten und den scrollbalken runterziehen bis ans ende.
bei mir erscheint ein dialog mit der fehlermeldung und die anwendung stürzt ab.

mit Qbitarray arbeite ich nicht direkt. das ist nur die ausgabe von qtcreator.

gruss
QuornJulio

Re: Problem mit QTableView

Verfasst: 21. Januar 2015 20:04
von Christian81
Warum Du alles mit new erzeugst (QStringList, std::string, ...) und nicht einfach als Objekte benutzt verstehe ich nicht - so gibt es nur memleaks und / oder double free - Fehler. Das lädt direkt ein zum Crashen. Im dtor von Person z.B. löschst Du die Pointer auf name und surname nicht, im copy ctor weist Du einfach die Pointer zu anstatt die Werte. Die Wandlung von/nach QString/std::string ist auch überflüssig. Entweder das eine oder das andere aber ein Mischen in einer Klasse ... naja. Die Referenzen in den Set-Funktionen hast Du vergessen, dafür die gefährlichen Referenzen bei den Get-Funktionen drin.

Crashen tut es bei mir weder mit Qt 4.8 noch mit Qt 5.3 (beides Linux) und der memory-Checker zeigt auch keinen Fehler an (nur memleaks, aber das war ja zu erwarten). Der PushButton erzeugt zwar Einträge, die sind aber erst sichtbar sobald man rumscrollt da zwar der vector mit Daten gefüllt wird, aber weder das Model noch der View etwas darüber mitbekommen.

Re: Problem mit QTableView

Verfasst: 29. Januar 2015 13:34
von QuornJulio
hallo,

in windows ausgeführt, stürzt die anwendung ab, wenn man den scrollbalken bis zum ende zieht.
einige eckdaten:
windows 7
qt 5.4
mingw 4.9.1 (das von Qt mitgelieferte)
ich wäre jedenfalls froh über ein feedback von jemandem,
der in windows diesen Fehler auch hat und evtl. eine lösung.

gruss