Wpis z mikrobloga

https://pastebin.com/gcr50KNq

Gdy dochodzi do linijki -> table_model = new QSqlTableModel(this, mydb)
Debuger wyrzuca:

QObject: Cannot create children for a parent that is in a different thread.
(Parent is MainWindow(0x86d68ffaa0), parent's thread is QThread(0x1a15e3c62c0), current thread is QThread(0x1a15e3cb1f0)
Wątek 0x1b64 zakończył działanie z kodem 0 (0x0).

Co robię źle?
#naukaprogramowania #programowanie #qt #cpp #glupiepytaniametoksyfenidyny
  • 3
@Metoksyfenidyna9: Po prostu robisz to new w innym wątku niż ten, w którym stworzyłeś this, którego przekazujesz jako rodzic do QSqlTableModel. Ponieważ QObject potrzebuje być na jakiś wątku, by odbierać zakolejkowane sygnały, przypisuje mu się obecne. Jednak ze względu na sposób usuwania dzieci rodziców, wątek rodzica musi być taki sam. U ciebie widocznie okno tworzysz w innym wątku niż główny wątek GUI.