Qt::Popup 导致的巨坑

  • Post author:
  • Post category:其他



Qt::Popup的使用会导致QTextEdit,TextArea等文本编辑器的焦点丢失。


导致系统中文输入法切换为默认英文输入法。

问题剖析:只有当

QTextEdit和设置Popup的窗口

为兄弟关系时才会出现,

解决方案:1、调整UI避免出现兄弟关系;2、自定义widget,实现Popup效果

方案2步骤如下:

1、创建widget并设置置顶;

2、通过enterEvent(

QEvent

*event),leaveEvent(

QEvent

*event),focusInEvent(

QFocusEvent

*event)、focusOutEvent(

QFocusEvent

*event)这四个事件可实现;

3、增加容错,增加定时器,显示时启动,超时检测鼠标位置是否处于当前窗口,做出是否隐藏的操作;



版权声明:本文为u013495598原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。