qt 子窗口操作父窗口

今天早上看一个项目的时候终于解决了困扰多天的一个问题,我之前一直不清楚如何在子窗口操作父窗口上的控件,比如改变值,显示,其次我在很多软件上看到了这种操作,比如qq,b站。
困扰我问题的缘由是写串口助手的时候,颜色的设置。我想通过父窗口一个按钮,弹出子窗口,然后再子窗口操作父窗口,比如这样:

qt 子窗口操作父窗口

我之前写的方案也可以实现这个操作,但总是慢一步,父窗口总是要等到某种状态保存了,才能检测到然后发生改变,我在网上查了很多资料,基本没有,我也想了多线程去操作。不过今天终于找到了,那就是emit发送信号。
比如我的工程是:

qt 子窗口操作父窗口
form.ui:
qt 子窗口操作父窗口

widget.cpp:

form.h:

form.cpp:

qt 子窗口操作父窗口
效果如上,这个就是在子窗口的点击事件中设置信号,用emit发送信号,在父窗口对信号进行connect,并且设定槽函数,这个办法我感觉是很好的,避免了子类与父类的重复包含,也避免在父类中调用子类控件。这样很麻烦,要设置子类ui指针为public,还要在父类中引用界面头文件,通过子类对象->ui->子类控件用,今天很开心,终于解决了,还是要多看项目,多积累经验!!!

来源:张芮晨

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐