day11 coding Qt案例: 切换AB界面
This commit is contained in:
parent
5bcb4c519d
commit
f36cc5ce97
|
@ -0,0 +1,42 @@
|
||||||
|
#include "awidget.h"
|
||||||
|
|
||||||
|
aWidget::aWidget(QWidget *parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
{
|
||||||
|
// 设置A窗口实例的属性
|
||||||
|
setFixedSize(400,200);
|
||||||
|
setWindowTitle("A界面");
|
||||||
|
move(200,100);
|
||||||
|
|
||||||
|
// 新建B窗口对象
|
||||||
|
b = new bWidget();
|
||||||
|
b->setFixedSize(400,200);
|
||||||
|
b->setWindowTitle("B界面");
|
||||||
|
b->move(800,100);
|
||||||
|
|
||||||
|
// 新建“进入B”按钮,并设置其属性
|
||||||
|
btnToB = new QPushButton("进入B",this);
|
||||||
|
btnToB->resize(60,40);
|
||||||
|
|
||||||
|
// 绑定“进入B”按钮点击信号与“进入B界面并隐藏A界面”的槽函数
|
||||||
|
connect(btnToB,&QPushButton::clicked,this,&aWidget::toBHandle);
|
||||||
|
// 绑定“B界面返回A界面信号”与当前界面的“A界面显示并隐藏B界面”的槽函数
|
||||||
|
connect(b,&bWidget::returnASignal,this,&aWidget::returnAHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void aWidget::toBHandle()
|
||||||
|
{
|
||||||
|
this->hide(); // 隐藏A界面
|
||||||
|
b->show(); // 显示B界面
|
||||||
|
}
|
||||||
|
|
||||||
|
void aWidget::returnAHandle()
|
||||||
|
{
|
||||||
|
b->hide(); // 隐藏B界面
|
||||||
|
this->show(); // 显示A界面
|
||||||
|
}
|
||||||
|
|
||||||
|
aWidget::~aWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#ifndef AWIDGET_H
|
||||||
|
#define AWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QDebug>
|
||||||
|
#include "bwidget.h"
|
||||||
|
|
||||||
|
class aWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
private:
|
||||||
|
bWidget *b;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void toBHandle();
|
||||||
|
void returnAHandle();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void toBSignal();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QPushButton *btnToB;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
aWidget(QWidget *parent = nullptr);
|
||||||
|
~aWidget();
|
||||||
|
};
|
||||||
|
#endif // AWIDGET_H
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include "bwidget.h"
|
||||||
|
|
||||||
|
bWidget::bWidget(QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
// 新建“返回A”按钮,并设置其属性
|
||||||
|
btnReturnA = new QPushButton("返回A",this);
|
||||||
|
btnReturnA->resize(60,40);
|
||||||
|
|
||||||
|
// 绑定“返回A”按钮点击事件与“发送返回A界面的信号”的槽函数
|
||||||
|
connect(btnReturnA,&QPushButton::clicked,this,&bWidget::sendReturnASignal);
|
||||||
|
}
|
||||||
|
|
||||||
|
void bWidget::sendReturnASignal()
|
||||||
|
{
|
||||||
|
emit returnASignal(); // 触发“返回A界面”信号
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
#ifndef BWIDGET_H
|
||||||
|
#define BWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
class bWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
private:
|
||||||
|
QPushButton *btnReturnA;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void sendReturnASignal();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void returnASignal();
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit bWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BWIDGET_H
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include "awidget.h"
|
||||||
|
#include "bwidget.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication qa(argc, argv);
|
||||||
|
aWidget a; // 新建一个界面A对象a
|
||||||
|
a.show(); // 程序初始化运行时显示A对象a界面
|
||||||
|
return qa.exec();
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
QT += core gui
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++11
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
bwidget.cpp \
|
||||||
|
main.cpp \
|
||||||
|
awidget.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
awidget.h \
|
||||||
|
bwidget.h
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
Loading…
Reference in New Issue