在QT中动态生成控件造成界面卡顿时的鼠标处理
开发中遇到的问题
- @[TOC](开发中遇到的问题)
- setCursor()
- QApplication::setOverrideCursor();
- 光标参数
开发中遇到的问题
- @[TOC](开发中遇到的问题)
- setCursor()
- QApplication::setOverrideCursor();
- 光标参数
在QT开发过程中,我们有时候需要动态生成多个控件,然后在生成的时候,整个界面就会卡住,动也动不了,直到动态生成的控件全部生成完才可以操作,这时候我们就想着是不是可以将鼠标设置为加载状态(蓝色刷新小圈)就可以告知使用者我们正在加载控件。
setCursor()
一般使用这个,但是这个方法的作用范围有限,有时候并不能达到我们想要的效果,界面还是会卡死,因为鼠标状态变化主要还是依赖事件循环,当添加控件过多,事件循环阻塞住了,界面就会造成卡死,鼠标状态也不能改变。所以还是推荐使用下面这个方法。
QApplication::setOverrideCursor();
这个方法不会受事件循环阻塞,立即生效,是最高的优先级,所以设置之后就会立马看到效果。
光标参数
Qt::WaitCursor :等待光标
Qt::ArrowCursor :普通鼠标光标 也可以使用这个方法去设置QApplication::restoreOverrideCursor();
其余光标
以上的话就是本文的全部内容,如果有什么错误或者建议请指正,感谢!共同进步!