[z.T. gelöst] Qt::DisplayRole verursacht Segmentation fault
Verfasst: 8. August 2008 12:08
Hallo,
ich habe eine Klasse von QSqlQueryModel abgeleitet in der ich einige Roles überschreiben möchte. In der 3. Spalte sollen Preise mit 2 Nachkommastellen angezeigt werden. Ich hab mir gedacht, daß ich dafür die Qt::DisplayRole verwenden kann.
Hier ein kleiner Ausschnitt:
Sobald ich innerhalb des Anweisungsblocks von Qt::DisplayRole auf index.data() zugreife, stürzt das Programm ab. Komischerweise kann ich aber bei anderen Roles (z.b. Qt::BackgroundRole) auf index.data() zugreifen und bekomme wie erwartet den Wert und das Programm stürzt auch nicht ab.
Der Debugger sagt dazu:
Zeile 144: switch( index.column() )
Hat jemand eine Idee, was ich da machen kann?
---------
Qt 4.4.1
g++ 3.4.5
Windows XP
ich habe eine Klasse von QSqlQueryModel abgeleitet in der ich einige Roles überschreiben möchte. In der 3. Spalte sollen Preise mit 2 Nachkommastellen angezeigt werden. Ich hab mir gedacht, daß ich dafür die Qt::DisplayRole verwenden kann.
Hier ein kleiner Ausschnitt:
Code: Alles auswählen
QVariant CBArticleModel::data( const QModelIndex &index, int role ) const
{
switch( index.column() )
{
case 2:
{
if( role == Qt::DisplayRole )
{
return QString( "%1" ).arg( index.data().toDouble(), 0, 'f', 2 );
}
}
break;
}
}
Der Debugger sagt dazu:
Code: Alles auswählen
Program received signal SIGSEGV, Segmentation fault.
0x004049ef in CBArticleModel::data(QModelIndex const&, int) const (this=0x53e6718, index=@0x22a924, role=0) at src/models/cbarticlemodel.cpp:144Hat jemand eine Idee, was ich da machen kann?
---------
Qt 4.4.1
g++ 3.4.5
Windows XP