I have MouseArea with onPressAndHold event and set pressAndHoldInterval for 5 seconds. Sometimes when I am holding mouse button to execute this PressAndHold event Popup window appears. If I release mouse button after 5 seconds, PressAndHold event is called for this MouseArea under the Popup window. Is there some way for ignoring this PressAndHold event when that MouseArea is overlapped by Popup window?
In other words, PressAndHold event begins when I press and hold mouse button on MouseArea. Popup window appears and I would like to reject/ignore this PressAndHold event. Now when I release the mouse button the PressAndHold event is called.
I tried adding MouseArea to Popup and setting propagateComposedEvents but it did not work.
Related
In a Qt 5.7 application, QActions on a QToolbar only call their _triggered() slot/callback when the mouse is pressed and released while over that toolbar icon.
How do I configure QAction so that the _triggered() event occurs as soon as the mousedown event occurs over the icon, without waiting for mouse-up?
I have an MFC button control and I am trying to handle the "OnPressed" event of it by starting a timer on click and making it go through my event in the OnTimer function. This all works fine but the focus remains on the button and if I click outside of the button area, the app carries out the OnPressed event. Any suggestions on how to kill the focus on the button when the mouse is pressed outside of the button area? My code for getting the focus and button ID.
void Dlg::OnTimer(...)
{
CWnd * pFocus = GetFocus();
int btnID = 0;
if (pFocus != NULL && pDialog->IsChild(pFocus))
btnID = pFocus->GetDlgCtrlID();
// Carry on my button pressed activity
Buttonpressed();
}
So basically I am getting the proper button press and I can carry out the desired action using the Buttonpressed() function given above. Now my problem is, once that button is pressed, it gets focus and the focus remains even after I leave the mouse and move out of the area of the button. Because of this behaviour, if I click outside of the button area, the application still thinks that I am in the mouse area and pressing the button. Is there a way I could remove focus after the mouse is moved out of the button area and then bring focus back in again when it is in the button area?
Looking forward to your suggestions.
I have a simple parent widget that reimplements mousePressEvent/mouseReleaseEvent. The parent's child widgets use enterEvent/leaveEvent. When I hover the mouse over the child widgets, leaveEvent/enterEvent executes, but when I click and hold the mouse, mousePressEvent executes, but enterEvent/leaveEvent goes silent (in other words, no click and drag). Any ideas about what could be causing this?
If you press and hold down the mouse button on a widget then that widget grabs mouse events until you release the button. This is not a special feature of Qt, you can find similar behaviour in every other GUI APIs I know.
Take a look at the relevant part of the Qt documentation:
QWidget / Events:
mousePressEvent() is called when a mouse button is pressed while the
mouse cursor is inside the widget, or when the widget has grabbed the
mouse using grabMouse(). Pressing the mouse without releasing it is
effectively the same as calling grabMouse().
void QWidget::grabMouse ():
Grabs the mouse input. This widget receives all mouse events until
releaseMouse() is called; other widgets get no mouse events at all.
I have tooltips in flex but when a component is clicked the tooltip disappears and the user has to move mouse out of the control and then back into the control to display the tooltip.
Is there a way to prevent the tooltip from getting destroyed on mouse click.
I tried calling
e.stopImmediatePropagation();
e.preventDefault(); on mouse click event of button. also tried handling and preventing tooltipEnd and tooltipHide events but they are not fire when the button is clicked.
Thanks.
I have fixed the issue by adding a event handler to the mouseDown event and then calling preventDefault and stopImmediatePropagation there this prevents the tooltip from vanishing and the button is still clickable.
In flex, I am using the following:
mx:TextInput mouseOver="tester(event)"
It works fine. My pointer goes over the textInput and it calls the function. But when I click inside the textInput to enter some text( focus is on the textInput) and then move the mouse (not taking mouse pointer outside of the boundary of textinput), the mouseover event is not trigerred.
If I use click event, then even if I am entering text ( or the focus is on the textinput) and then click, it will call the function.
How can I call the tester function on mouseover when the focus is on textInput?
The mouseOver event fires when the mouse is moved over the control.
Maybe you want to try the mouseMove event which will fire every time the mouse moves?
Keep in mind that mouseEvents and focusEvents are not inherently related. I would expect the mouseOver event to fire when the mouse rolls over your textInput regardless of whether or not that textInput has the focus.