当前位置: 首页> 游戏> 游戏 > php和java哪个好_湖南网页制作公司_seo合作_如何设计网站步骤

php和java哪个好_湖南网页制作公司_seo合作_如何设计网站步骤

时间:2025/8/1 13:03:27来源:https://blog.csdn.net/m0_74724723/article/details/146564044 浏览次数:0次
php和java哪个好_湖南网页制作公司_seo合作_如何设计网站步骤

参考:Qt基础 练习:弹出新窗口并关闭的两种实现方式(两个按钮、一个按钮)_qt打开一个窗口另一个关闭-CSDN博客

实现:

一个按钮,点击一次,按钮的名字从open window变为close window,并且弹出一个新窗口;

再次点击,按钮名字从close window变为open window,并且关闭新窗口

目录

1.新建项目,添加新文件

2.声明函数

3.函数实现

4.创建按钮和连接

5.运行结果

6.完整代码


1.新建项目,添加新文件

输入新建文件名

2.声明函数

这个函数既可以打开新窗口也可以关闭新窗口

#ifndef MYWINDOW_H
#define MYWINDOW_H#include <QWidget>class myWindow : public QWidget
{Q_OBJECT
public:explicit myWindow(QWidget *parent = nullptr);void OCWindow();QWidget *n=new QWidget;bool jud=false;signals:
};#endif // MYWINDOW_H

3.函数实现

思考:怎样让一个函数实现两种相反的功能呢?

我们可以增加一个bool型变量来控制打开和关闭,这便让一个按钮实现了两种功能

代码:

#include "mywindow.h"
#include"qwidget.h"myWindow::myWindow(QWidget *parent): QWidget{parent}
{}void myWindow::OCWindow()
{//判断按钮此时的状态,并且执行打开或关闭操作if(jud==false){n->setWindowTitle("The second window");n->show();jud=true;}else{n->close();jud=false;}
}

4.创建按钮和连接

创建:

连接(使用Lambda表达式):

代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QPushButton"
#include"mywindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->n=new myWindow(this);this->resize(600,400);//创建按钮QPushButton *btn=new QPushButton;btn->setParent(this);setWindowTitle("Open or Close");btn->resize(100,50);btn->move(235,135);btn->setText("open window");bool jud=false;//连接,使用Lambda表达式connect(btn,&QPushButton::clicked,this,[=,&jud](){n->OCWindow();if(jud==false){jud=true;btn->setText("close window");}else{jud=false;btn->setText("open window");}});
}MainWindow::~MainWindow()
{delete ui;
}

5.运行结果

6.完整代码

mywindow.h

#ifndef MYWINDOW_H
#define MYWINDOW_H#include <QWidget>class myWindow : public QWidget
{Q_OBJECT
public:explicit myWindow(QWidget *parent = nullptr);void OCWindow();QWidget *n=new QWidget;bool jud=false;signals:
};#endif // MYWINDOW_H

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include<mywindow.h>QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;myWindow *n;
};
#endif // MAINWINDOW_H

mywindow.cpp

#include "mywindow.h"
#include"qwidget.h"myWindow::myWindow(QWidget *parent): QWidget{parent}
{}void myWindow::OCWindow()
{//判断按钮此时的状态,并且执行打开或关闭操作if(jud==false){n->setWindowTitle("The second window");n->show();jud=true;}else{n->close();jud=false;}
}

main.cpp

#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QPushButton"
#include"mywindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->n=new myWindow(this);this->resize(600,400);//创建按钮QPushButton *btn=new QPushButton;btn->setParent(this);setWindowTitle("Open or Close");btn->resize(100,50);btn->move(235,135);btn->setText("open window");bool jud=false;//连接,使用Lambda表达式connect(btn,&QPushButton::clicked,this,[=,&jud](){n->OCWindow();if(jud==false){jud=true;btn->setText("close window");}else{jud=false;btn->setText("open window");}});
}MainWindow::~MainWindow()
{delete ui;
}

关键字:php和java哪个好_湖南网页制作公司_seo合作_如何设计网站步骤

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: