从空项目开始的QT窗口基础

基础-01




基础-02


基础-03



创建多个窗口转换

大体预览






代码

untitled.pro

#-------------------------------------------------
#
# Project created by QtCreator 2019-10-30T12:23:54
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled
TEMPLATE = app


SOURCES += main.cpp\
        widget.cpp \
    minwidget.cpp

HEADERS  += widget.h \
    minwidget.h

minwidget.h

#ifndef MINWIDGET_H
#define MINWIDGET_H

#include <QWidget>
#include<QPushButton>

class minwidget : public QWidget
{
    Q_OBJECT
public:
    explicit minwidget(QWidget *parent = 0);
    ~minwidget();
    void SendSignals();

signals:
    void mysignals(); //信号只需要声明不需要定义

public slots:

private:
    QPushButton b;

};

#endif // MINWIDGET_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QPushButton>
#include"minwidget.h"

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
    void OpenWindows();
    void SignalsWork();

private:
    QPushButton a;

    minwidget minw;
};

#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.resize(600,500);
    w.show();

    return a.exec();
}

minwidget.cpp

#include "minwidget.h"

minwidget::minwidget(QWidget *parent) : QWidget(parent)
{
    b.setParent(this);
    b.setText("第一个窗口");
    b.resize(100,100);
    b.move(230,200);
    connect(&b,&QPushButton::clicked,this,&minwidget::SendSignals);

}

void minwidget::SendSignals()
{
    emit mysignals(); //信号应用,需写上emit

}

minwidget::~minwidget()
{

}

widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    a.setParent(this);
    a.setText("第二个窗口");
    a.resize(100,100);
    a.move(230,200);
    connect(&a,&QPushButton::pressed,this,&Widget::OpenWindows);

    minw.resize(600,500);

    //处理minwidget的信号
    connect(&minw,&minwidget::mysignals,this,&Widget::SignalsWork);
}

void Widget::OpenWindows()
{
    this->hide();
    minw.show();
}

void Widget::SignalsWork()
{
    this->show();
    minw.show();
}
Widget::~Widget()
{

}

End

~
记录留存


发布了34 篇原创文章 · 获赞 0 · 访问量 507

猜你喜欢

转载自blog.csdn.net/weixin_44228006/article/details/104095423