【发布时间】:2020-03-26 18:46:24
【问题描述】:
我正在使用 Qt5.5.1 为 CentOS 编写一个 Qt 应用程序。
void mouseReleaseEvent (QMouseEvent * event)
{
setCursor (Qt::ArrowCursor); //Reset to default arrow cursor.
}
void mousePressEvent (QMouseEvent * event)
{
setCursor (QCursor (QPixmap (":/Drag_and_Drop_bubble.png"))); //Customized cursor. This works well when set inside constructor (during initialization).
}
要求:我希望鼠标左键单击时光标会发生变化。光标应保持直到释放鼠标单击。松开鼠标后,光标应重置为默认光标。
问题说明:鼠标左键点击光标没有变化。只有在我释放左键后它才会改变[验证这一点:我在 mouseReleaseEvent() 中注释了 setCursor() 函数]。为什么鼠标左键单击后鼠标释放前光标没有变化?有人遇到过这样的问题吗?
感谢您的帮助。
【问题讨论】:
-
自己无法复制该问题。确保 Drag_and_Drop_bubble.png 在资源中可用。您是否尝试过使用预定义的光标,例如 Qt::PointingHandCursor?您能发布最小的可重现示例吗?
-
@Meliodas 我正在通过 VNC 查看器远程访问机器。如果我直接在机器上使用鼠标(没有遥控器)会出现气泡光标,并且使用HMI的触摸显示器也会出现(在触摸显示器上工作)。现在的问题是由于 VNC,因为 VNC 不显示光标已更新为气泡光标。它仅在触发 mouseReleaseEvent() 时显示。
-
@Meliodas Drag_and_Drop_bubble.png 资源正确可用,因为它在 mouseReleaseEvent() 触发器上显示。当我通过 VNC 访问时,气泡光标也会出现在监视器上,但在 VNC Viewer 上看不到相同的气泡光标。
标签: qt user-interface