[gelöst] Ein Widget, das Widgets anzeigt
Verfasst: 18. April 2015 16:35
Liebe Leute,
ich habe ein Objekt, das als Leinwand fungiert und andere Objekte (z.B. Bällchen), die darauf angezeigt werden. Ein Klick auf die Leinwand erstellt ein neues Bällchen. Um dies umzusetzen, dachte ich mir, ich mache aus der Leinwand ein Widget und aus jedem Bällchen ein weiteres (allerdings von einer anderen Klasse). Dann wäre das Leinwandwidget ein Kind des Layouts, in dem es sich befindet und jedes Bällchenwidget ein Kind des Leinwandwidgets. Die Leinwand verwaltet die Bällchen (z.B. deren Drag&Drop-Verhalten falls mehrere ausgewählt wurden, ihre Position auf dem Bildschirm, Erstellen und Löschen von Bällchen etc.) und jedes Bällchen kümmert sich um seinen eigenen Kram wie QPainter, Klick Event Handling usw. Ich möchte, dass der Benutzer Bällchen durch Drag&Drop auf der Leinwand frei verschieben kann.
Nun stellt sich die Frage, wie die Leinwand die Bällchen am besten darstellt. Soll sie die Pixmaps der einzelnen Bällchen auf sich selbst zeichnen oder geht das eleganter (z.B. indem sie die draw-Funktion für jedes Kind aufruft)? Ist es sinnvoll, dass jedes Bällchen mit Events umgeht, oder sollte die Leinwand besser selber rausfinden, ob und welches Bällchen geklickt / gedragt wurde?
Falls mein allgemeines Design suboptimal ist, kann gern auch darüber diskutiert werden. Ich bin offen für allerlei Inspirationen.
lg
Kalsan
ich habe ein Objekt, das als Leinwand fungiert und andere Objekte (z.B. Bällchen), die darauf angezeigt werden. Ein Klick auf die Leinwand erstellt ein neues Bällchen. Um dies umzusetzen, dachte ich mir, ich mache aus der Leinwand ein Widget und aus jedem Bällchen ein weiteres (allerdings von einer anderen Klasse). Dann wäre das Leinwandwidget ein Kind des Layouts, in dem es sich befindet und jedes Bällchenwidget ein Kind des Leinwandwidgets. Die Leinwand verwaltet die Bällchen (z.B. deren Drag&Drop-Verhalten falls mehrere ausgewählt wurden, ihre Position auf dem Bildschirm, Erstellen und Löschen von Bällchen etc.) und jedes Bällchen kümmert sich um seinen eigenen Kram wie QPainter, Klick Event Handling usw. Ich möchte, dass der Benutzer Bällchen durch Drag&Drop auf der Leinwand frei verschieben kann.
Nun stellt sich die Frage, wie die Leinwand die Bällchen am besten darstellt. Soll sie die Pixmaps der einzelnen Bällchen auf sich selbst zeichnen oder geht das eleganter (z.B. indem sie die draw-Funktion für jedes Kind aufruft)? Ist es sinnvoll, dass jedes Bällchen mit Events umgeht, oder sollte die Leinwand besser selber rausfinden, ob und welches Bällchen geklickt / gedragt wurde?
Falls mein allgemeines Design suboptimal ist, kann gern auch darüber diskutiert werden. Ich bin offen für allerlei Inspirationen.
lg
Kalsan