Qt学习(1) 超简单的界面跳转

Qt 简单的界面跳转 interface_jump

  • 1、前言
  • 2、代码C++

1、前言

这是一个系列博客,我将自己学习Qt的过程已经自己写的整理的代码都会放到博客上,希望能够帮到大家哦。

学习QT或者说学习软件界面制作最基础的一个功能就是界面跳转吧,网上讲的都太复杂了,我这里给出一个简单的版本,C++版本和python(PyQt5、PySide)版本都有。
代码在Github网址:https://github.com/cssdcc1997/qt_learning

Python版:还未更新

先上效果图:
效果:
Qt学习(1) 超简单的界面跳转_第1张图片
Gif图:
Qt学习(1) 超简单的界面跳转_第2张图片

2、代码C++

main.cpp代码:

#include "mainwindow.h"
#include 
#include 
using namespace std;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);	//创建一个QApplication对象
    MainWindow w;				//创建一个定义好的窗口对象w,MainWindow
    w.show();					//显示窗口
    return a.exec();
}

都是常规的操作,一般不用管,在生成Qt项目的时候会自动生成如上代码。

mainwindow.cpp代码:

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(400,300);
	m_form2 = new Form2;
	go_to_form2_btn = new QPushButton;
    present_form_label = new QLabel;

    go_to_form2_btn->setText(tr("跳转至界面2"));
    present_form_label->setText(tr("现在是界面1"));
    present_form_label->setAlignment(Qt::AlignCenter);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(present_form_label);
    layout->addWidget(go_to_form2_btn);

    QWidget *centralWidget = new QWidget(this);
    centralWidget->setLayout(layout);

    setCentralWidget(centralWidget);

    connect(go_to_form2_btn, SIGNAL(clicked()), SLOT(on_go_to_form2()));
}

MainWindow::~MainWindow()
{
    delete m_form2;	//析构函数,释放资源
}

void MainWindow::on_go_to_form2()
{
    m_form2->show();
}

mainwindow里定义了一个label和一个按键,按键通过信号槽机制绑定到函数on_go_to_form2(),当按下按键后执行该函数。可以看到函数只有一句话,就是让实现定义好的对象m_form2进行显示。

下面给出form2.cpp代码:

#include "form2.h"

Form2::Form2(QWidget *parent) : QWidget(parent)
{
    resize(400,300);
	
	back_to_form1_btn = new QPushButton;
    present_form_label = new QLabel;

    back_to_form1_btn->setText(tr("跳转至界面1"));
    present_form_label->setText(tr("现在是界面2"));
    present_form_label->setAlignment(Qt::AlignCenter);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(present_form_label);
    layout->addWidget(back_to_form1_btn);

    setLayout(layout);

    connect(back_to_form1_btn, SIGNAL(clicked()), SLOT(on_back_to_form1()));
}
Form2::~Form2()
{
}
void Form2::on_back_to_form1()
{
    this->close();
}

你可能感兴趣的:(Qt,打怪升级,c++,qt5,qt)