Hi
Ich hätte ne kleine "Verständnisfrage"...
Also ich würde gerne ein QMainWindow erstellen das ein QTableWidget enthält.
In dem QMainWindow kann man dann mehrere Jobs erstellen.
Jeder Job wird als eigener QThread ausgeführt und enthält ein QProgressBar und QPushButton (Cancel).
Nun ist aber die Frage wie genau, bewerkstelligt man es das z.B. QThread Nr 2 den QProgessBar in Zeile 2 des QTableWidget updates und das der QPushButton in Zeile 2 den QThread Nr 2 und nicht QThread Nr 1 oder sonst einen beendet?
So ala KTorrent...
PS: Code kann ich leider keinen bieten, da ich noch garnix geschrieben habe zur "Steuerung"..
Mehrere QThreads mittels QTableWidget verwalten...
Indem du die entsprechenden Widgets nur mit den dazugehoerigen Threads verbindest? Ich verstehe deine Frage ehrlich gesagt nicht. QTable-Inhalte updates du doch auch single-threaded nicht alle auf einmal.
-
- User
- Beiträge: 92
- Registriert: Sonntag 16. Dezember 2007, 20:03
deets hat geschrieben:Indem du die entsprechenden Widgets nur mit den dazugehoerigen Threads verbindest? Ich verstehe deine Frage ehrlich gesagt nicht. QTable-Inhalte updates du doch auch single-threaded nicht alle auf einmal.
Naja ich versuchs mal mit Pseudocode... Also...
Aussehen soll das ganze so:

Wenn man jetzt im Contextmenü auf z.B. sdb geht und "erase" drückt sollte der slot onErase() aktiviert werden.
Und da ist dann Code ala...
Füge neue Zeile zu QTableWidget hinzu
Füge currentItem von QTreeView zu QTableWidget Zeile 1 und Spalte 0 hinzu
Füge QProgressBar zu QTableWidget Zeile 1 und Spalte 1 hinzu
Füge QPushButton zu QTableWidget Zeile 1 und Spalte 2 hinzu
Starte Thread Nr 2
Wenn jetzt aber Thread Nr 2 (sdb) ein Signal emittet oder der QPushButton gedrückt wird... wie müssen dann Signal/Slots verbunden werden?
Ich hab mir die Source von KTorrent angeguckt da wird QObject.sender() benutzt.
EDIT:
Also ich hab jetzt als Notlösung folgendes:
Ich leg die z.B. QPushButtons in ner Liste ab und mittels QTableWidget Zeile + self.sender + der Liste kann ich dann checken welcher QPushButton geklickt wurde.
Gibts da nicht was "schöneres"?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du kannst einem Signal weitere Informationen "mitgeben" - Python sei Dank! Ich hatte dazu mal ein Beispiel geschrieben: Link
Generell wage ich zu bezweifeln, dass ein `QTableWidget` dafür geeignet ist - kann man damit Delegates realisieren? Ich würde stark vermuten, dass ein `QTableView` die geeignetere Wahl wäre...
Generell wage ich zu bezweifeln, dass ein `QTableWidget` dafür geeignet ist - kann man damit Delegates realisieren? Ich würde stark vermuten, dass ein `QTableView` die geeignetere Wahl wäre...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 92
- Registriert: Sonntag 16. Dezember 2007, 20:03
Hyperion hat geschrieben:Du kannst einem Signal weitere Informationen "mitgeben" - Python sei Dank! Ich hatte dazu mal ein Beispiel geschrieben: Link
Generell wage ich zu bezweifeln, dass ein `QTableWidget` dafür geeignet ist - kann man damit Delegates realisieren? Ich würde stark vermuten, dass ein `QTableView` die geeignetere Wahl wäre...
EDIT:
So hab das ganze mal gelöst, werde mir QTableView aber noch angucken...
Danke an alle!