qsw77 2018-12-11 18:27 采纳率: 0%
浏览 4008
已采纳

请问QT中如何防止子窗体重复打开?

使用QT写的C++程序,现在 类A 包含 类B 两个都是界面类 然后通过类A实例化类B 比如点一下按钮 B出来了 现在要做的是 如果B已经产生了 并且没关掉 再点类A的这个按钮 不要再实例化B了 直接显示出来B就行了 请问如何做到呢

  • 写回答

4条回答 默认 最新

  • qsw77 2018-12-11 18:49
    关注

    问题已解决。
    先将类B在类A中的对象指针在A的构造函数中置NULL,然后需要打开窗口B的时候判断该指针是否为null,如果为NULL,先new后show 否则 窗口B setWindowFlags(Qt::WindowStaysOnTopHint) 然后show

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    之昂。 2021-09-14 09:06

    有代码截图吗 我试了一下不行😔

    回复
    qsw77 回复 之昂。 2021-09-18 02:11

    class A
    {
    B *b;
    void openB();
    }

    A::A()
    {
    b = NULL;
    }

    A::void openB()
    {
    if(NULL == b)
    {
    b = new B();
    b->show();
    }
    }

    大概是这个样子,同时需要把b的关闭连接到A的槽里来,当b关闭,将b == NULL

    回复
查看更多回答(3条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部