#QT练习(一)
程序员文章站
2024-01-14 11:32:16
...
需求
一个打开按钮,点击该按钮后打开新窗口,并且该打开按钮变成关闭按钮,点击后关闭新窗口。
代码
widget.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void changeButton();
void invalidButton();
private:
QPushButton* openBtn;
QPushButton* closeBtn;
QWidget* new_Widget;
};
#endif // WIDGET_H
widget.cpp文件:
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//创建第一个打开按钮
this->openBtn = new QPushButton("打开",this);
//创建第二个窗口
this->new_Widget = new QWidget;
//重置窗口大小
this->resize(600,400);
new_Widget->resize(400,600);
//重置窗口标题
this->setWindowTitle("第一个窗口");
new_Widget->setWindowTitle("第一个窗口");
//连接第一个按钮,打开窗口
connect(openBtn, &QPushButton::clicked, new_Widget, &Widget::show);
//连接第一个按钮,打开按钮变成关闭按钮
connect(openBtn, &QPushButton::clicked, this, &Widget::changeButton);
//连接第一个按钮,使按钮失效
connect(openBtn, &QPushButton::clicked, this, &Widget::invalidButton);
}
Widget::~Widget()
{
}
void Widget::changeButton()
{
//打开按钮文本变成关闭按钮
openBtn->setText("关闭");
//连接第一个按钮,关闭窗口
connect(openBtn, &QPushButton::clicked, new_Widget, &Widget::close);
}
void Widget::invalidButton()
{
disconnect(openBtn, &QPushButton::clicked, new_Widget, &Widget::show);
}
运行结果
点击“打开”后:打开新窗口
再点击“关闭”:新窗口关闭