父控件不先点击鼠标响应,QDialog的是通过调用()在mousemoveevent()关闭,这将导致鼠标按键依旧在对话框关闭后按下,第二次点击将会正常工作。Qt的问题 - 一个模态了QDialog后释放鼠标按键关闭后莫代尔QDialog的关闭
我发现至今:
如果
done(int)
被称为MouseReleaseeEvent()
,一切正常这似乎是
QDialog
缺乏MouseButtonRelease
事件(其中它的后一个期待MouseButtonPress
触发的事件)由于QDialog
在MouseMoveEvent
已关闭,这打乱了父窗口部件的鼠标事件。
我的目的是制造一种QDialog
其可通过滑动被关闭,当它检测到鼠标按下并移动到一定位置时,其将被关闭。
这是很感激,如果大家谁遇到它之前或谁拥有任何想法发生了什么事给我一些建议。
千恩万谢。
此外,这是我第一次在这里发表一个问题,如果我错过了,我想提供的任何信息,请让我知道...
你调用父mousemoveevent? – fonZ
也许你可以在closeevent中手动调用mouserelease事件。这可能是一个黑客,但如果其他失败将工作。 – fonZ
谢谢乔恩!我试图手动调用mouserelease事件,但没有运气。看起来QDialog坚持要有一个完整的例程(mousepress + mouserelease),然后才能将控件正确释放回父级。我目前的解决方法是仅在用户释放鼠标/触摸并且一切正常后才调用close事件。我的好奇是有没有人在Qt中实现了“像滑动解锁的iPhone”界面,它是如何完成的? –