黑马程序员Qt(第一部分)
https://www.bilibili.com/video/BV1XW411x7NU?p=10
添加一个按钮:
#include<QPushButton>
private:
QPushButton b3;
初始化按钮
b3.setParent(this);
b3.setText("跳转到子窗口");
b3.move(50,50);
setWindowTitle("主窗口");
快捷键 F4 ,跳转 .h 和 .cpp
添加子窗口
在子窗口中添加按钮
在 subwidget.h和 subwidget.cpp 修改
#include<QPushButton>
private:
QPushButton b ;
AAAA
#include "subwidget.h"
SubWidget::SubWidget(QWidget *parent) : QWidget(parent)
{
this->setWindowTitle("子窗口");
b.setParent(this);
b.setText("切换到主窗口");
}
显示子窗口
最终代码:
subwidget.h
#ifndef SUBWIDGET_H
#define SUBWIDGET_H
#include <QWidget>
#include<QPushButton>
class SubWidget : public QWidget
{
Q_OBJECT
public:
explicit SubWidget(QWidget *parent = nullptr);
signals:
void mySignal();
public slots:
void sendSlot();
private:
QPushButton b ;
};
#endif // SUBWIDGET_H
subwidget.cpp
#include "subwidget.h"
SubWidget::SubWidget(QWidget *parent) : QWidget(parent)
{
this->setWindowTitle("子窗口");
b.setParent(this);
b.setText("切换到主窗口");
connect(&b,&QPushButton::clicked,this, &SubWidget::sendSlot);
resize(400,300);
}
void SubWidget::sendSlot()
{
emit mySignal();
}
主窗口:
mainwidget.h
#ifndef MAINWIDGET_H
#define MAINWIDGET_H
#include <QWidget>
#include<QPushButton>
#include "subwidget.h"
class mainWidget : public QWidget
{
Q_OBJECT
public:
mainWidget(QWidget *parent = 0);
~mainWidget();
void changeWin();
void dealSub();
private:
QPushButton b3;
SubWidget w;
};
#endif // MAINWIDGET_H
mainwidget.cpp
#include "mainwidget.h"
mainWidget::mainWidget(QWidget *parent)
: QWidget(parent)
{
b3.setParent(this);
b3.setText("跳转到子窗口");
b3.move(50,50);
setWindowTitle("主窗口");
//显示子窗口
//w.show();
connect(&b3,&QPushButton::released,this,&mainWidget::changeWin);
connect(&w,&SubWidget::mySignal,this,&mainWidget::dealSub);
resize(400,300);
}
mainWidget::~mainWidget()
{
}
void mainWidget::changeWin()
{
//子窗口显示
w.show();
//主窗口隐藏
this->hide();
}
void mainWidget::dealSub()
{
w.hide();
this->show();
}