Qt中主窗体通过调用show()显示-经验教训

在Qt环境下,开发者遇到一个问题,全屏锁屏工具的widget窗体在hide()后,定时启动时仅能一闪而过。经过分析,起初认为是作用域问题,尝试在main()中通过信号槽机制调用show()。然而,最终发现真正的原因是逻辑判断中的一个小错误,缺少了setHidden(true)来隐藏窗体。这个问题暴露了基础不牢固和逻辑检查的重要性,提醒开发者应注重代码的低耦合和高内聚原则。
摘要由CSDN通过智能技术生成

问题描述

环境:win10,Qt_5_9_0_mingw53_32-Release

背景:设计一个定时启动全屏锁屏工具

问题:widget窗体在设置hide()隐藏后。定时启动调用界面时,界面一闪而过。

原因:分析发现,是因为函数作用域的关系,在窗体内调用的作用域,仅限于该模块,结束后即销毁。故需要设定全局变量,或定义在窗体的构造函数{}外。

解决方法

在main()中,连接widget的信号和槽调用show()

头文件:widget.h

signals:
    void sendsignal();

主函数:main.cpp

//创建窗体并显示,连接信号和槽
Widget w;
w.show;
QObject::connect(&w, SIGNAL(sendsignal()), &w, SLOT(Show()));

源文件:widget.cpp

//设置在某个调用模块中,发送信号
emit sendsignal();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值