Archiv verlassen und diese Seite im Standarddesign anzeigen : QT/KDE rechte mousetaste, woher ?...
microdigi
01-11-2002, 08:53
natuerlich weiss ich wie ich die rechte mousetaste benutzen kann und dann damit einen (modalen?) dialog aufblasen kann. das ist kein geheimnis.
aber --- wie kann ich feststellen,
AUF WELCHEM SYMBOL (bspw einer von 20 checkboxen) ich diese rechte mousetaste
gedrueckt hatte? da waere naemlich ein context-abhaengiger dialog faellig.
ich meine NICHT die MOUSEtaste, die kommt ja beim event sowieso mit,
ich meine das OBJECT UEBER/AUF dem die taste GEDRUECKT wurde.
danke fuer die erleuchtigung -
ich denke mal speziell an underscore (anda_skoa). :)
gruss - digi
anda_skoa
02-11-2002, 12:19
Generell was zu Kontexmenüs:
Die Qt3 hat da ein eigens Event und eine eigne Eventhandler Methode in QWidget.
QWidget::contextMenuEvent
Zum eigentlichen Problem:
Ansich bekommt immer das Widget, auf das geklickt wurde das Event und es wird weiter nach oben gereicht, wenn es dort nicht benutzt wird.
Man kann also
1) eigene Subklassen der jeweiligen Widget einsetzten, die man um den entsprechenden Eventhandler erweitert
2) ein Objekt als Eventfilter auf den Widgets einsetzten. Der Eventfilter bekommt bei einem Event gesagt, für welcher Object das Event bestimmt ist
3) Die MouseEvents und das ContextMenuEvent haben eine Methode, um die Position des Events zu bekommen.
Man kann dann einfach nachsehen, in welchem Widget dieser Punkt liegt
QWidget::rect() und QRect::contains(QPoint)
Ciao,
_
microdigi
03-11-2002, 00:13
dacht ichs mir schon, dass es dich wieder treffen wird, anda_skoa :)
die methode mit den positionen liegt mir latuernich NICHT;
denn der wesentliche schwachpunkt dabei scheint mir zu sein
eine eventuelle umbettung der objecte im dialog. das wuerde in die hose gehen.
aber die andere sache werde ich mir zu gemuete fuehren
und am dienstag ausprobieren.
danke fuer die hilfestellung.
irgendwem mach ichs m al wieder gut
verspricht - digi
anda_skoa
03-11-2002, 12:05
Original geschrieben von microdigi
dacht ichs mir schon, dass es dich wieder treffen wird, anda_skoa :)
:)
Immer fein, wenn ich was beantworten kann.
die methode mit den positionen liegt mir latuernich NICHT;
denn der wesentliche schwachpunkt dabei scheint mir zu sein
eine eventuelle umbettung der objecte im dialog. das wuerde in die hose gehen.
Das versteh ich jetzt nicht ganz.
Der Punkt kann immer nur über einem Widget sein.
aber die andere sache werde ich mir zu gemuete fuehren
und am dienstag ausprobieren.
Die beste Lösung wäre ansich das ableiten.
Da könnte man dann ein Contextmenu signal emitten, dass das Objekt als Parameter hat.
Der Nachteil dabei ist, dass sich das Element dann nicht mehr so leicht im Designer verwenden läßt.
Ciao,
_
tuxipuxi
03-11-2002, 12:57
lerne gerade qt, also bitte nicht schlagen wenn ich was falsches sag :).
wie waere es mit einem qpopupmenu?
das koennte man auf ein QKeyEvent legen?
(ist wahrscheinlich totaler quatsch, aber wollt mal was sagen :)).
@anda_skoa,
hab dich erst einmal erlebt das du was nicht beantworten konntest, das war n bildschirmschoner mit SDL :)
anda_skoa
03-11-2002, 22:15
Original geschrieben von lane
lerne gerade qt, also bitte nicht schlagen wenn ich was falsches sag :).
wie waere es mit einem qpopupmenu?
Ja, richtig :)
Normalerweise ist das Kontextmenü ein QPopupMenu oder ein KPopupMenu.
das koennte man auf ein QKeyEvent legen?
Es ist besser man benutzt das ContextMenuEvent bzw., bei KDE Widgets die sowas haben das entsprechende Signal.
Das sichert, dass die jeweiligen Benutzereinstellungen auch auf dieses Programm zu treffen.
Wenn man zum Beispiel nur ein KeyEvent oder ein MouseEvent benutzt, funktioniert die jeweilig andere Methode nicht, oder man muß sie auch berücksichtigen.
Wird vorallem schwierig, wenn der Benutzer ein andere Taste oder eine eine andere Mousetaste dafür vorgesehen hat.
Ciao,
_
microdigi
05-11-2002, 09:46
nu macht euch mal nicht so'n grossen kopp :)
ich werds finden und dann berichten wie sichs gehoert.
mit sicherheit werde ich ContextMenuEvent benutzen;
denn da ist schon die halbe miete mit drin.
und das popup, der dialog oder was auch immer dahinter erscheint,
ist ja dann sowienoch mein bier...
ich denke, ich packe das. :cool:
gruss - digi
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.