200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Qt:一个按钮实现打开和关闭新窗口

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

时间:2021-08-11 15:13:40

相关推荐

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

如图:程序打开时按钮名为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输出记录:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。