Qt学习1-作业

作业1

上课按钮,弹出一个新的窗口
下课按钮,关闭之前弹出的新窗口

my_win.h

#ifndef MY_WIN_H
#define MY_WIN_H

#include <QWidget>

class my_win : public QWidget
{
    Q_OBJECT
public:
    explicit my_win(QWidget *parent = nullptr);
    QWidget *my_w = new QWidget();
signals:

public slots:
    void my_newWin();
    void close_win();
};

#endif // MY_WIN_H

my_win.cpp

#include "my_win.h"

my_win::my_win(QWidget *parent) : QWidget(parent)
{}
void my_win::my_newWin(){
    my_w->show();
}
void my_win::close_win(){
    my_w->close();
}

mywidget.cpp

#include "mywidget.h"
#include "ui_mywidget.h"
#include<QPushButton>
#include<QWidget>
#include"my_win.h"

myWidget::myWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::myWidget)
{
    ui->setupUi(this);
    QPushButton *bt1 = new QPushButton("上课",this);
    QPushButton *bt2 = new QPushButton("下课",this);
    bt2->move(100,0);
    my_win *var_w = new my_win();
    connect(bt1,&QPushButton::clicked,this,[=](){
        var_w->my_newWin();
    });
    connect(bt2,&QPushButton::clicked,this,[=](){
        var_w->close_win();
    });

}

myWidget::~myWidget()
{
    delete ui;
}

作业1-拓展

上课按钮,弹出一个新的窗口;之后上课按钮变成下课按钮,关闭之前弹出的新窗口

my_win.h

#ifndef MY_WIN_H
#define MY_WIN_H

#include <QWidget>

class my_win : public QWidget
{
    Q_OBJECT
public:
    explicit my_win(QWidget *parent = nullptr);
    QWidget *my_w = new QWidget();
    void open_win();
    void close_win();
signals:

public slots:
};

#endif // MY_WIN_H

my_win.cpp

#include "my_win.h"

my_win::my_win(QWidget *parent) : QWidget(parent)
{
}

void my_win::open_win(){
    my_w->show();
}

void my_win::close_win(){
    my_w->close();
}

mywidget.cpp

#include "mywidget.h"
#include "ui_mywidget.h"
#include<QPushButton>
#include"my_win.h"

myWidget::myWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::myWidget)
{
    ui->setupUi(this);

    QPushButton *bt = new QPushButton("上课",this);
    my_win *my_window = new my_win();
    int m=1;
    connect(bt,&QPushButton::clicked,this,[=]()mutable{
        if(m==1){
            my_window->open_win();
            bt->setText("下课");
            m--;
        }
        else {
            my_window->close_win();
            bt->setText("上课");
            m++;
        }
    });

}

myWidget::~myWidget()
{
    delete ui;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值