Segmentation Fault mit QSqlTablemodel bei QListWidget

Alles rund um die Programmierung mit Qt
Antworten
itsamess
Beiträge: 9
Registriert: 26. Mai 2010 11:23

Segmentation Fault mit QSqlTablemodel bei QListWidget

Beitrag von itsamess »

Moin.

Wenn "view" ein QListWidget ist und ich das Item anklicke, bekomme ich einen Segmentation Fault. Ist das 'n Bug oder check ich da was nicht?

Code: Alles auswählen

#!/bin/env python

import sys
from PySide import QtSql, QtGui

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)

    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName("qtforum.db")
    db.open()

    query = QtSql.QSqlQuery()
    query.exec_("create table cites(cite text);")
    query.exec_("insert into cites values('This function will create and set a new selection model')")

    model = QtSql.QSqlTableModel()
    model.setTable("cites")
    model.select()

    view = QtGui.QListView()
#    view = QtGui.QListWidget()
    view.setModel(model)
    view.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers);
    view.show()

    sys.exit(app.exec_())
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Segmentation Fault mit QSqlTablemodel bei QListWidget

Beitrag von franzf »

itsamess hat geschrieben:Wenn "view" ein QListWidget ist und ich das Item anklicke, bekomme ich einen Segmentation Fault. Ist das 'n Bug oder check ich da was nicht?
Letzteres ;)
QListWidget ist was ganz eigenes, ein setModel() sollte eigentlich eh schief gehen. (Schau dir mal die Doku an, wie man die QListWidget etc. verwendet.)
Aber auch ein QListView ist nicht das beste für eine DB-Tabelle (sagt es ja schon) - Normalerweise zeigt man ein QSql*Model mit einem QTableView an.
Zuletzt geändert von franzf am 23. Juni 2010 13:57, insgesamt 1-mal geändert.
itsamess
Beiträge: 9
Registriert: 26. Mai 2010 11:23

Beitrag von itsamess »

QListWidget is a convenience class that provides a list view similar to the one supplied by QListView, but with a classic item-based interface for adding and removing items.
"Convenience" hörte sich gut an, allerdings zeigt der View auch automatisch neue Items an, wenn man sie der db hinzufügt. Insofern kein Problem. Ich wollte eigentlich nur wissen, warum es so nicht hinhaut. Na ja, danke.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Irgend was macht da PySide anders ;) Ich hab es mal mit PyQt4 (von riverbank computing) laufen lassen, und da bekomme ich das

Code: Alles auswählen

TypeError: QListWidget.setModel() is a private method
Und das Programm startet erst gar nicht ;)
Antworten