paintevent结束表明窗口初始化完成了吗

yaokaei 2011-12-20 09:30:39
继承QWidget创建了一个窗口进程,我想实现当窗口对象初始化完成后(窗口完全显示出来),向单片机发送初始化完成命令。
于是我在该窗口的paintevent方法的结尾向单片机发送初始化完成命令,请问大侠这样做保险吗?

QT在窗口show()-》paintevent()后还会有什么后期处理才能显示窗口吗?
...全文
91 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
碎炎 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yaokaei 的回复:]

引用 1 楼 sryan 的回复:
看起来不保险 因为paintEvent()在初始化的时候会调用,还有在客户区无效需要重绘的时候也会调用
在windows里面可以处理WM_CREAT消息 感觉在窗口的构造函数里面发送比较保险 假如是窗口完全显现出来 还有种做法是在main()函数内的消息循环开始前调用一下主窗口的完成初始化的函数
个人看法。。。错了别怪

如果在窗口的构造函数里面发送……
[/Quote]

在show之后 消息循环之前插入单片机初始化函数试试
yaokaei 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 windywater 的回复:]
引用 6 楼 yaokaei 的回复:
单片机接受到我的初始化命令后,就立即切换到我的QT窗口画面,这样有可能导致我的画面还买有paint出来就切过来,会出现短暂的白屏。

设置一个标识bFirstShow,在构造函数中置为true,paintEvent()函数中,若bFirstShow为true,则做自己的事情,同时把bFirstShow置为false,若bFirstShow为false则……
[/Quote]
恩,这个方法试过的。我想问的就是paintEvent绘图结束后就应该表示窗口完全显示了吧?
「已注销」 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yaokaei 的回复:]
单片机接受到我的初始化命令后,就立即切换到我的QT窗口画面,这样有可能导致我的画面还买有paint出来就切过来,会出现短暂的白屏。
[/Quote]
设置一个标识bFirstShow,在构造函数中置为true,paintEvent()函数中,若bFirstShow为true,则做自己的事情,同时把bFirstShow置为false,若bFirstShow为false则跳过。这样试试看。
yaokaei 2011-12-21
  • 打赏
  • 举报
回复
单片机接受到我的初始化命令后,就立即切换到我的QT窗口画面,这样有可能导致我的画面还买有paint出来就切过来,会出现短暂的白屏。
yaokaei 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sryan 的回复:]
看起来不保险 因为paintEvent()在初始化的时候会调用,还有在客户区无效需要重绘的时候也会调用
在windows里面可以处理WM_CREAT消息 感觉在窗口的构造函数里面发送比较保险 假如是窗口完全显现出来 还有种做法是在main()函数内的消息循环开始前调用一下主窗口的完成初始化的函数
个人看法。。。错了别怪
[/Quote]
如果在窗口的构造函数里面发送,有可能窗口还没有show出来就已经发送初始化命令了,我感觉paintevent()绘图相对来说比较慢。

QWidget wnd; 构造函数
wnd.show() 画图显示窗口
念茜 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sryan 的回复:]

引用 2 楼 yiyaaixuexi 的回复:

不保险,窗体任何更改都会重新绘制,调用paintevent(),这样会导致你的误发。
你的需求在构造末尾写就行。


。。。发现夜猫子
[/Quote]

哇 你比我快2秒呵呵
碎炎 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yiyaaixuexi 的回复:]

不保险,窗体任何更改都会重新绘制,调用paintevent(),这样会导致你的误发。
你的需求在构造末尾写就行。
[/Quote]

。。。发现夜猫子
念茜 2011-12-20
  • 打赏
  • 举报
回复
不保险,窗体任何更改都会重新绘制,调用paintevent(),这样会导致你的误发。
你的需求在构造末尾写就行。
碎炎 2011-12-20
  • 打赏
  • 举报
回复
看起来不保险 因为paintEvent()在初始化的时候会调用,还有在客户区无效需要重绘的时候也会调用
在windows里面可以处理WM_CREAT消息 感觉在窗口的构造函数里面发送比较保险 假如是窗口完全显现出来 还有种做法是在main()函数内的消息循环开始前调用一下主窗口的完成初始化的函数
个人看法。。。错了别怪

16,241

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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