QSqlQueryModel und QThread
Verfasst: 13. April 2010 16:23
ich habe ein Problem mit QSqlQueryModel und QThread.
QThread bzw. threads an sich verstehe ich, mit fork hatte ich früher auch schon gearbeitet.
QSqlQueryModel und QTableView nutze ich z.Zt. in einem Projekt. Das klappt soweit, wobei ich noch nicht verinnerlicht habe, was da im Hintergrund alles Passiert.
Mein Problem ist, wie bei vielen, die mit SQL Arbeiten und hier Fragen stellen...
...wenn mein Query verarbeitet wird, blockiert mein GUI.
Den Artikel unter http://webcache.googleusercontent.com/s ... clnk&gl=de
habe ich auch gelesen. Ist wohl das einzige passende, daß in diese Richtung geht.
Jedoch schaffe ich das dortige nicht auf ein Model umzusetzen. Geht das überhaupt mit QSqlQueryModel? Oder müsste ich von QAbstractItemModel ausgehen und dafür selber was bauen?
Wenn ich das richtig sehe, müsste ich das Model haben, das vom View angezeigt wird. setQuery würde in einen thread laufen, und wenn Ergebnisse da sind, diese in das Model im GUI Thread schreiben.
Ist das soweit zumindest richtig?
Oder gibt es vielleicht ein Beispiel dafür?
QThread bzw. threads an sich verstehe ich, mit fork hatte ich früher auch schon gearbeitet.
QSqlQueryModel und QTableView nutze ich z.Zt. in einem Projekt. Das klappt soweit, wobei ich noch nicht verinnerlicht habe, was da im Hintergrund alles Passiert.
Mein Problem ist, wie bei vielen, die mit SQL Arbeiten und hier Fragen stellen...
...wenn mein Query verarbeitet wird, blockiert mein GUI.
Den Artikel unter http://webcache.googleusercontent.com/s ... clnk&gl=de
habe ich auch gelesen. Ist wohl das einzige passende, daß in diese Richtung geht.
Jedoch schaffe ich das dortige nicht auf ein Model umzusetzen. Geht das überhaupt mit QSqlQueryModel? Oder müsste ich von QAbstractItemModel ausgehen und dafür selber was bauen?
Wenn ich das richtig sehe, müsste ich das Model haben, das vom View angezeigt wird. setQuery würde in einen thread laufen, und wenn Ergebnisse da sind, diese in das Model im GUI Thread schreiben.
Ist das soweit zumindest richtig?
Oder gibt es vielleicht ein Beispiel dafür?