Qt5 QFileDialog wywala crash

0

Witajcie,

Piszę coś w Qt5 i mam potrzebę stworzenia dialogu. Zrobiłem sobie

QString fileName = QFileDialog::getOpenFileName(NULL/*Jak tu dam this to wywala błąd kompilatora bo to w metodzie klasy dziedziczacej po QThread*/, tr("Open Model"), QString() , tr("Obj Files (*.obj)"), NULL, NULL /*Tutaj i tak są wartości domyślne 0*/);

Jak włącze dialog i wybiorę plik .obj to dialog się wyłącza i crash-uje program. Łaj? Sprawdziłem już, że to nie wątek zamyka cały proces tylko crash od QFileDialog.

3

Kluczem tutaj zapewne jest to, że kombinujesz niepotrzebnie z wątkami.
Wszystkie operacje związane UI muszą odbywać się na głównym wątku!
Zapewne w logach masz odpowiednią informację na ten temat.

Jeśli to nie to, wklej tu zawartość logów i call stack wątku z crashem.

0

Nie wiem czy to jest to. Ale:

 BasicTimer::stop: Failed. Possibly trying to stop from a different thread
QBasicTimer::stop: Failed. Possibly trying to stop from a different thread
QBasicTimer::stop: Failed. Possibly trying to stop from a different thread
QBasicTimer::stop: Failed. Possibly trying to stop from a different thread

(BennuModelEditor:5957): Gtk-CRITICAL **: gtk_tree_model_filter_get_value: assertion 'GTK_TREE_MODEL_FILTER (model)->priv->stamp == iter->stamp' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_object_set_property: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): Gtk-CRITICAL **: gtk_tree_model_filter_get_value: assertion 'GTK_TREE_MODEL_FILTER (model)->priv->stamp == iter->stamp' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_object_set_property: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): Gtk-CRITICAL **: gtk_tree_model_filter_get_value: assertion 'GTK_TREE_MODEL_FILTER (model)->priv->stamp == iter->stamp' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_object_set_property: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed

(BennuModelEditor:5957): Gtk-CRITICAL **: gtk_tree_model_filter_iter_next: assertion 'GTK_TREE_MODEL_FILTER (model)->priv->stamp == iter->stamp' failed

(BennuModelEditor:5957): Gtk-CRITICAL **: /build/buildd/gtk+2.0-2.24.23/gtk/gtktreeview.c:6089 (validate_visible_area): assertion `has_next' failed.
There is a disparity between the internal view of the GtkTreeView,
and the GtkTreeModel.  This generally means that the model has changed
without letting the view know.  Any display from now on is likely to
be incorrect.

QBasicTimer::stop: Failed. Possibly trying to stop from a different thread
Program nieoczekiwanie przerwał pracę.
0

Dziwne te logi (pewnie je patrzysz w złe miejsce).
Ze źródeł Qt wynika, że powinieneś mieć komunikat: Widgets must be created in the GUI thread..

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0