如图:程序打开时按钮名为Open

点击按钮后,打开新窗口,按钮名变为Close

所使用Qt版本为5.9.9,Qt Creator版本为4.11.0

原理:在打开和关闭新窗口时改变flag的值,通过flag值,判断打开或者关闭新窗口。

代码实现:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include "newwindow.h"
#include <QPushButton>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();QPushButton *btn = new QPushButton(); //在此处定义btn目的是为了在函数中改变btn的名称void ToggleWindow();newWindow *new_win; bool flag; //判断窗口状态
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include <QPushButton>
#include "newwindow.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent)
{btn->setParent(this);btn->setText("Open");resize(400,400);connect(btn,&QPushButton::clicked,this,&Widget::ToggleWindow); //将按钮连接信号槽识别按钮按下事件
}Widget::~Widget()
{}void Widget::ToggleWindow()
{if(flag){new_win = new newWindow();new_win->resize(200,200);new_win->show(); //使该新建类显示new_win->setAttribute(Qt::WA_DeleteOnClose); //关闭窗口时释放内存防止内存泄漏flag = 0;btn->setText("Close");qDebug() << "OpenWindow Over!";}else{new_win->close();flag = 1;btn->setText("Open");qDebug() << "CloseWindow Over!";}
}

附qDebug输出记录:

Qt:一个按钮实现打开和关闭新窗口相关推荐

  1. Electron中打开和关闭子窗口以及子窗口向父窗口传值

    场景 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/a ...

  2. python打开后的界面-Python - tkinter:打开和关闭对话框窗口

    我是Python新手,必须编写一个简单的GUI程序,为了简单起见,我选择在tkinter中这样做. 我想要的GUI应该非常类似于在Windows上安装程序时经常遇到的对话框(您想要安装的位置,您想要的 ...

  3. python提示对话框自动关闭_Python - tkinter:打开和关闭对话框窗口

    我是Python新手,必须编写一个简单的GUI程序,为了简单起见,我选择在tkinter中这样做. 我想要的GUI应该非常类似于在Windows上安装程序时经常遇到的对话框(您想要安装的位置,您想要的 ...

  4. html超链接怎么新建窗口打开,html超链接新窗口打开怎么写

    扩展回答 谁知道超链接新窗口打开的技巧有哪些 打开网页文件,在a里添加="new". 2.在IE里测试效果. 3.点击链接,新打开窗口加载网页内容览器总在一个新打开.未命名的窗口中 ...

  5. Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口

    背景 当前做的APP有菜单栏,菜单栏有一项需要对下位机相关参数进行设置,则必须弹出一个窗口来实现设置操作.本篇即对点击菜单栏生成新的窗口,在新的窗口内完成相应计划后结束新窗口并返回原窗口的方法进行简述 ...

  6. ajax 在新选卡打开,JavaScript在新窗口中打开,而不是选项卡

    我有一个选择框,当选择一个项目时,它会调用window.open(url) . Firefox默认会在新标签页中打开页面. 但是,我希望页面在新窗口中打开,而不是在新标签页中打开. 我该怎么做? #1 ...

  7. html 页面新窗口打开,HTML 在新窗口打开全站链接

    这篇文章主要为大家详细介绍了HTML 在新窗口打开全站链接,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 在新窗口中打开链接对国内网民来说是一种 ...

  8. qt 一个应用程序有2个主窗口,任务栏只有一个应用程序图标

    可以设置为Qt::Tool或者Qt::SubWindow就能实现这种一个应用程序有2个主窗口,任务栏只有一个应用程序图标 flags Qt::WindowFlags This enum type is ...

  9. python关闭当前窗口_如何打开一个新窗口并关闭当前窗口?

    我想问一下,当我在标题中写到,如何打开一个新窗口并(完全)关闭当前窗口?在 有两个.py文件.它们彼此独立,也就是说,它们都可以独立运行.在 在我的app.py有一个按钮.如果单击该按钮,我希望关闭当 ...

最新文章

  1. iOS黑科技之(CoreImage)静态人脸识别(一)
  2. 2019牛客网暑假多校训练第四场 K —number
  3. 你能排第几?2016互联网行业薪酬数据分析
  4. linux 命令行 java_在Linux上讲Java命令行的作为服务运行
  5. 在MaxCompute中利用bitmap进行数据处理
  6. golang 交叉编译总结
  7. ASP.NET五大核心对象解析
  8. python画相关性可视化图_Python可视化16matplotlibseborn-相关性热图(correlation heatmap)...
  9. 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x工作笔记0147
  10. 【JavaScript】AJAX总结(异步JavaScript和XML)
  11. Could not find resource——mybatis 找不到映射器xml文件
  12. SRE稳定性指标:MTBF、MTTR
  13. 解决许可证的相关问题
  14. C语言(素数)[解法]:编写prime(m)判断m是否为素数,当m为素数返回1,否则返回0;
  15. 程序员高手和菜鸟的区别是什么?
  16. 毕业论文的奋斗记(一)
  17. 想学Docker?我教你啊~
  18. 关于“/usr/include/openssl/bn.h 288 error: parse error before BN_ULONG解决方法
  19. 希尔排序的思路及实现解析
  20. 阿古斯机器人_新卡评测 地精大战侏儒资料先睹为快

热门文章

  1. 大数据在开发的过程中,主要会遇到哪些难点?
  2. redhat5.2 root密码更改
  3. 为什么要软件本地化?
  4. python openpyxl写入多行_MemoryError使用openpyxl写入500k +行
  5. Winform水印工具(文字和图片皆可)
  6. C++之Hello word
  7. 「奇淫技巧」如何写最少的代码
  8. 【JS 逆向百例】某公共资源交易网,公告 URL 参数逆向分析
  9. OpenCV.开闭操作
  10. CSS进阶文档(其实是基础啦)