QT4的程序转QT5后出现UI界面不能自动刷新的情况

qq_27243417 2018-12-11 11:50:05
原来我QT4程序运行时,在界面上有label和几个button,label
是用来持续刷新当前时间所用,button点击其中一个其他的隐藏或者显示,现在程序完全转换成QT5,
这两个功能可以正常使用,但是界面上不进行刷新,如果我通过最小化后再最大化的话,这样界面上的
控件刷新了一次的样子(正常情况label持续刷新的时间应该动的,但是现在只显示固定的时间),不知
道有没有高手遇到过或者知道解决这样的问题
...全文
673 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
承泓风 2020-10-19
  • 打赏
  • 举报
回复
引用 6 楼 justformemory 的回复:
Qt 5的bug 在showevent中添加 this->setAttribute(Qt::WA_Mapped); 就能解决
请问是怎么导致的这个问题的发生呢
justformemory 2020-09-04
  • 打赏
  • 举报
回复
Qt 5的bug
在showevent中添加
this->setAttribute(Qt::WA_Mapped);
就能解决
qian2364123772 2019-12-31
  • 打赏
  • 举报
回复
在主窗体类中添加这么一句话就可以解决!
protected:
//解决QT5界面不刷新的BUG。
virtual void showEvent(QShowEvent *event)
{
this->setAttribute(Qt::WA_Mapped);
QWidget::showEvent(event);
}
我就很纳闷,这个东西应该是很多QT4转QT5时会遇到的问题,怎么就有没人会呢?
不过本人找到原因自然想要分享一下,至于那些又想学习,有不愿意分享的人,我
只能说你会的东西也不多。
qq_27243417 2018-12-12
  • 打赏
  • 举报
回复
引用 2 楼 @风轻云淡_ 的回复:
把其他功能暂时关闭,只保留Timer来显示时间,看看是否正常

我按照您说的做了一下相应的操作,发现一个问题;
我先说一下我整个系统包含的部分,整个系统界面包含4个界面,其中第二个界面里面添加了一个QtabWidget控件,这个控件的目的是为了他我添加其他子界面所用的,现在的问题是如果说我不在第二个界面里面的QtabWidge添加原先的QWidget,而是添加一个空的Qwdiget的话,这样是没有问题的,如果我添加的还是原先的QWidget'的话就会出现我提问的这个现象,不明白是怎么回事,原先的Qwidget界面里面只包含了线程触发事件的一个槽函数在持续运行外(只有当我进入该界面时才会刷新界面),我想请问一下大神这个到底是因为什么原因导致的,如果可以我吧代码给你看一下,为什么QT4可以,而QT5却不能够正常运行。
qq_27243417 2018-12-12
  • 打赏
  • 举报
回复
在程序中我这里面没有对UI线程做什么操作,如果需要循环使用都是线程(还分配的内核使用呢)来搞定的,
@风轻云淡_ 2018-12-11
  • 打赏
  • 举报
回复
把其他功能暂时关闭,只保留Timer来显示时间,看看是否正常
ooolinux 2018-12-11
  • 打赏
  • 举报
回复
程序代码是不是在一个长时间循环中改变界面显示?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧