菜鸟修炼笔记--QT--【问题】界面切换时焦点各种异常的处理

8 篇文章 0 订阅

菜鸟修炼笔记--QT--【问题】界面切换时焦点各种异常的处理

前言

由于工作需要,我最近一直在使用QT来设计界面。不幸的是,在设计界面切换的逻辑时,经常会出现各种各样的问题,比如:焦点不见、出现两个焦点、界面切换了但是焦点还在原界面。经过多种尝试,我发现这些问题最后都归结于同一个原因:“在界面切换时没有做好焦点切换”。为了方便之后遇到类似的问题能有所参考,本文将记录在界面切换时需要注意的一些事项或者是需要完成哪些操作。

切换界面时需要完成的操作

1. 焦点的设置

在隐藏当前界面进行新界面时,要设置新界面的焦点,且要注意的是,此操作需要在新界面show之前完成,否则可能会出现问题。

    new_widget->set_cur_focus();//此处在新界面的方法中设置焦点
    new_widget->show();

2. 键盘的切换

在切换界面时,需要对键盘进行切换,当前界面需要释放键盘,而新界面需要抓取键盘。(此操作不一定需要)

    this->releaseKeyboard();
    this->hide();
    new_widget->grabKeyboard();
    new_widget->set_cur_focus();
    new_widget->show();

其他焦点丢失的原因

  1. 因为焦点被设置在界面上了,这种情况的解决方法就是将界面的focuspolicy参数设置为nofocus就行了。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值