PyQt5子窗口开启后锁定或隐藏主窗口

PyQt5子窗口开启后锁定或隐藏主窗口

老规矩,先放图

锁定主窗口

ezgif-3-9207d090fb.gif

隐藏主窗口

ezgif-3-02b6995baf.gif

实现

实现方式非常简单与C++方式基本相同
在主界面UI初始化时把按钮信号与拉起窗口的槽函数绑定,这里我的按钮为selectFormat槽函数为buttonMsg

self.selectFormat.clicked.connect(self.buttonMsg)

信号到达槽函数之后进行分支选择(因为几个按钮共用了同一个槽)

    def buttonMsg(self):
        print("收到信号")
        if self.sender() == self.openButton:
            print(self.serialBuf.port)
        elif self.sender() == self.selectFormat:
            print("解析格式选择")
            self.__analysisUi()
        elif self.sender() == self.selectDatabase:
            print("数据库选择")
        elif self.sender() == self.saveExport:
            print("导出数据")

锁定主窗口

实现窗口锁定
通过exec()显示方式进行实现,exec与show的区别可参考官方文档,
exec是显示一个模式对话框并且锁定,直到关闭,
在对话框弹出期间,用户不可以切换同程序下的其它窗口。
show显示的是非模式对话框,所以此处用exec。

    def __analysisUi(self):
        print("解析格式选择窗口开启")
        analysis = AnalysisUi()
        analysis.exec()
        analysis.close()
        self.show()  # 子窗口关闭后重新显示主窗口
        print("解析格式选择窗口关闭")

隐藏窗口

隐藏窗口使用show方法完成
点击按钮后通过hide方法把主界面隐藏,关闭窗口后再通过show把主界面显示
代码如下

    def __analysisUi(self):
        print("解析格式选择窗口开启")
        self.hide()  # 子窗口打开后隐藏主窗口
        analysis = AnalysisUi()
        analysis.show()
        analysis.exec_()
        self.show()  # 子窗口关闭后重新显示主窗口
        print("解析格式选择窗口关闭")

结尾

完整工程放在了Gitee
软件全部功能还未完成,慢慢更新中。
仓库链接

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kongbai_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值