Seite 1 von 1

GUI und Threads

Verfasst: 21. Mai 2011 14:52
von realdarkman71
Hallo Leute,

ich habe ein kleines Programm mit Hauptfenster (QMainWindow) und das soll ein ganzes Verzeichnis inkl. Inhalt kopieren. Um die GUI nicht zu blockieren und um eine Fortschritssanzeige (QProgressBar) anzuzeigen, rufe ich die Kopierenfunktion mittels QtConcurrent::run in einem neuen Thread auf. Funktioniert auch soweit! Jetzt wollte ich eine Abfrage (QMessageBox::question) einbauen, ob er die Zieldatei überschreiben soll, falls diese schon existiert. Das scheint aber nicht so einfach zu sein, denn dann stürzt das Programm ab:
QObject::setParent: Cannot set parent, new parent is in a different thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
Weiß jemand, wie ich das machen kann?

Danke!
Chris

Verfasst: 22. Mai 2011 13:08
von solarix
Threads dürfen keine GUI-Operationen durchführen. Dies ist beim Entwurf einer Multithreading-Applikation zu beachten.

In deinem Fall dürfte das aber kein Problem sein, denn du kannst doch einfach VOR dem Start des (QtConcurrent-)Kopiervorgangs abfragen, ob die Zieldatei existiert und ob sie überschrieben werden soll..

hth!