GUI und Threads

Alles rund um die Programmierung mit Qt
Antworten
realdarkman71
Beiträge: 15
Registriert: 21. Oktober 2010 00:15

GUI und Threads

Beitrag 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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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!
Antworten