Advertisement

Widget从创建到销毁事件流

阅读量:

近期在进行UI开发过程中,涉及多个窗口的嵌套设计,所有窗口均采用了Layout布局方式。然而在程序运行时发现,主窗口的布局能够正常显示,但嵌套窗口的布局却未能正确应用。

Resize()函数构造与实现

首先考虑到的是,当Layout被设置后,其会自动进行尺寸调整,是否在创建子窗口时未能正确获取到该窗口在父级布局中所占据的位置?因此,在构造过程中需要分别对每个子窗口进行尺寸设置。

child_widget->Resize(this->XXXX->size());//其中XXXX代表子窗口中的某个widget区域,或者是qstackedwidget中某一页的尺寸

通过使用类似上述的指令来重新设定尺寸,但并未观察到任何变化。究其原因,在构造函数中调用的Size()方法所获取的数据并不准确,无法反映主窗口的实际大小。

QTimer()实现定时功能

鉴于时间限制,采用了较为基础的处理方式。无论采用何种手段,最终完成构造后,窗口内容必然得以呈现。

接下来设置一个定时器,在创建时即启动该定时器,并将其与对应槽函数进行连接。当触发timeout()信号后,执行Resize操作,并随即停止定时器。

尽管此方案有效缓解了布局适配的问题,但引入定时器的方式在实现上略显繁琐,不够简洁。

QWidget构造到销毁事件流分析

为简化说明过程,此处暂不以QWidget

全部评论 (0)

还没有任何评论哟~