Hallo,
ich habe mal wieder ein Problem(chen).
In einem Widget befinden sich als Child-Objekte 2 Pushbuttons sowie eine Checkbox. Dieses Widgets befindet sich in einer Liste zur Anzeige mehrere gleichartiger Objekte, jeweils eines dieser Objekte soll zu einem Zeitpunkt ausgewählt sein.
Bei den nicht ausgewählten werden die 3 Child-Objekte via setEnabled(false) deaktiviert, das ganze Widget wird als hervorgehoben dargestellt, das Ausgewählte wird ein als eingedrücktes Objekt mit den aktiven Buttons dargestellt. Soweit ganz einfach.
Das Problem kommt bei der Aktivierung. Es soll durch einen Mausklick auf den Bereich des zu aktivierenden Widgets erfolgen, funktioniert auch, solange ich ausserhalb des Bereichs der 3 Childobjekte klicke. Ich war eigentlich davon ausgegangen, das beim Deaktivierten Button (bzw. Checkbox etc.) Mouse-Events einfach an den Parent weitergeleitet werden und habe versucht, die MousePress-Events abzufangen, was jedoch nur beim Klicken in den Restbereich des Widgets funktioniert.
Wie kann ich Klicks auf diese Buttons abfangen? Gibt es eine einfache möglichkeit oder muss ich mir dazu eine extra Button-Klasse schreiben?
Gruss
Tilman Räger
[gelöst]Abfangen von Mouse-Klicks auf deaktivierte Buttons
-
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
[gelöst]Abfangen von Mouse-Klicks auf deaktivierte Buttons
Zuletzt geändert von Tilman Räger am 6. November 2012 16:40, insgesamt 1-mal geändert.
Re: Abfangen von Mouse-Klicks auf deaktivierte Buttons
Eine Möglichkeit wäre installEventFilter auf die Buttons anzuwenden und die Klicks abzufangen wenn die Buttons deaktiviert sind.
Mfg veeman
Mfg veeman
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: Abfangen von Mouse-Klicks auf deaktivierte Buttons
moin,
Du verwirrst Deine Benutzter, wenn Du Klicks auf deaktivierte Buttons erlaubst. Ein Button, der angeklickt werden darf, solte auch anklickbar aussehen. Pack vielleicht um die aktivierte Gruppe eine Aktivrahmen und um die anderen einen Ruherahmen.
tschüß
Troll.Soft
Du verwirrst Deine Benutzter, wenn Du Klicks auf deaktivierte Buttons erlaubst. Ein Button, der angeklickt werden darf, solte auch anklickbar aussehen. Pack vielleicht um die aktivierte Gruppe eine Aktivrahmen und um die anderen einen Ruherahmen.
tschüß
Troll.Soft
Re: Abfangen von Mouse-Klicks auf deaktivierte Buttons
Ich glaube hier geht es nicht unbedingt um eine Aktion die durchgeführt werden soll, weil er den Button gedrückt hat. Der Button frisst eben nur anscheinend das Event und der Bereich unter dem Button soll es empfangen.Troll.Soft hat geschrieben:moin,
Du verwirrst Deine Benutzter, wenn Du Klicks auf deaktivierte Buttons erlaubst. Ein Button, der angeklickt werden darf, solte auch anklickbar aussehen. Pack vielleicht um die aktivierte Gruppe eine Aktivrahmen und um die anderen einen Ruherahmen.
tschüß
Troll.Soft
@Tilman warum benutzt du nicht einfach eine groupbox mit checkable für dein Vorhaben?
-
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: Abfangen von Mouse-Klicks auf deaktivierte Buttons
Hallo,
Gruss
Tilman (Räger)
So ungefähr ist es auch gedacht. Ich habe mehrere gleichartige Elemente in einer dynamischen Liste von denen jeweils eins aktiv und optisch hervorgehoben (durch 3D-Design 'abgesenkt' ) ist. Die anderen sind inaktiv und alle enthaltenen Elemente sind deaktivert. Da aber einige dieser Elemente (z.B. die Checkbox) zur Darstellung von Eigenschaften des betreffenden Objektes auch im nicht selektierten Zustand benötigt werden, kann ich nicht einfach diese Objekte verschwinden lassen. Dadurch habe ich eben das Problem, das die Aktivierung eines Objektes nicht funktioniert, wenn ich beim Anklicken zufällig eines der (deaktivierten) Bedienelemente des jeweiligen Objektes erwische.Troll.Soft hat geschrieben: Du verwirrst Deine Benutzter, wenn Du Klicks auf deaktivierte Buttons erlaubst. Ein Button, der angeklickt werden darf, solte auch anklickbar aussehen. Pack vielleicht um die aktivierte Gruppe eine Aktivrahmen und um die anderen einen Ruherahmen.
Eben weil das ganze in einer dynamischen Liste vor sich gehen soll. Ausserdem ist das Design so vorgegeben.dazedly hat geschrieben: @Tilman warum benutzt du nicht einfach eine groupbox mit checkable für dein Vorhaben?
Gruss
Tilman (Räger)
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Re: Abfangen von Mouse-Klicks auf deaktivierte Buttons
n'abend,
und wie sieht es aus, wenn Du auf die eingebaute Maussteuerung verzichtest, indem Du keine QButtons, Checkboxen etc verwendest, sondern eigene Widgets, die über Events selbst gesteuert werden. Die Widgets können aussehen wie Du lustig bist und die Reaktion wird auch nur von Deinem Programm bestimmt.
tschüß
Troll.Soft
und wie sieht es aus, wenn Du auf die eingebaute Maussteuerung verzichtest, indem Du keine QButtons, Checkboxen etc verwendest, sondern eigene Widgets, die über Events selbst gesteuert werden. Die Widgets können aussehen wie Du lustig bist und die Reaktion wird auch nur von Deinem Programm bestimmt.
tschüß
Troll.Soft
-
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: [gelöst]Abfangen von Mouse-Klicks auf deaktivierte Butto
Hallo,
Der Tip mit dem EventFilter hat funktioniert - an sich ganz simpel, wenn man erst mal auf die Idee gekommen ist. Danke noch mal für alle Tips!
Tilman
Der Tip mit dem EventFilter hat funktioniert - an sich ganz simpel, wenn man erst mal auf die Idee gekommen ist. Danke noch mal für alle Tips!
Tilman