欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:QT5:多窗口跳轉(zhuǎn)

柚子快報(bào)激活碼778899分享:QT5:多窗口跳轉(zhuǎn)

http://yzkb.51969.com/

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助

目錄

前言

一、環(huán)境

二、步驟

三、代碼實(shí)現(xiàn)

四、效果圖

前言

學(xué)習(xí)使用qt5完成多窗口(界面)跳轉(zhuǎn):從主界面可分別跳轉(zhuǎn)至界面一和界面二,從界面一可以返回主界面和跳轉(zhuǎn)至界面二,界面二可返回對(duì)應(yīng)的父界面(從主界面跳轉(zhuǎn)則返回主界面,從界面一跳轉(zhuǎn)則返回界面一)。

一、環(huán)境

qt版本:5.12.7

windows 11 下的?Qt Designer (已搭建)

編譯器:MingGW

二、步驟

1.在Designer 創(chuàng)建一個(gè)新的qt工程

2.選中工程選擇Add New.. 添加兩個(gè)新的ui界面page1window和page2window,界面模板使用MainWindow。

?3.在主界面創(chuàng)建兩個(gè)button分別跳轉(zhuǎn)至界面一和界面二。

4.在界面一創(chuàng)建兩個(gè)button分別跳轉(zhuǎn)至界面二和返回主界面。

5.在界面三創(chuàng)建一個(gè)button用于返回其父界面。

6.連接槽函數(shù)。

三、代碼實(shí)現(xiàn)

mainwindow.h:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include "page1window.h"

#include "page2window.h"

QT_BEGIN_NAMESPACE

namespace Ui { class MainWindow; }

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private slots:

void on_page1_button_clicked();

void on_page2_button_clicked();

private:

Ui::MainWindow *ui;

Page1Window *page1=NULL;

Page2Window *page2=NULL;

QPushButton *page1_button=NULL;

QPushButton *page2_button=NULL;

QHBoxLayout *btn_hlayout; //水平布局

};

#endif // MAINWINDOW_H

?mainwindow.cpp:

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

QWidget *widget=new QWidget(this);

this->setCentralWidget(widget); // 設(shè)置為中心部件

btn_hlayout = new QHBoxLayout(widget);

page1=new Page1Window(this);

page1_button =new QPushButton("前往頁面一");

page2_button =new QPushButton("前往頁面二");

btn_hlayout->addWidget(page1_button);

btn_hlayout->addWidget(page2_button);

// 跳轉(zhuǎn)到子窗口

connect(page1_button, &QPushButton::clicked, this, &MainWindow::on_page1_button_clicked);

//接收返回信號(hào)顯示當(dāng)前窗口

connect(page1,&Page1Window::goback,this,[=](){page1->close();this->show();});

Page2Window *Page2FrommMin = new class Page2FromMain(this); // 使用匿名內(nèi)部類

connect(page2_button, &QPushButton::clicked, this, [=]() {Page2FrommMin->show();this->hide();});

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_page1_button_clicked()

{

this->hide();

page1->show();

}

void MainWindow::on_page2_button_clicked()

{

this->hide();

page2->show();

}

?pgge1window.h:

#ifndef PAGE1WINDOW_H

#define PAGE1WINDOW_H

#include

#include

#include

namespace Ui {

class Page1Window;

}

class Page1Window : public QMainWindow

{

Q_OBJECT

public:

explicit Page1Window(QWidget *parent = nullptr);

~Page1Window();

signals:

void goback();

private slots:

void on_return_btn_clicked();

private:

Ui::Page1Window *ui;

QPushButton *return_button=NULL;

QPushButton *page2_button=NULL;

QHBoxLayout *btn_hlayout; //水平布局

};

#endif // PAGE1WINDOW_H

pgge1window.cpp:

#include "page1window.h"

#include "ui_page1window.h"

#include "page2window.h"

Page1Window::Page1Window(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::Page1Window)

{

ui->setupUi(this);

QWidget *widget=new QWidget(this);

this->setCentralWidget(widget); // 設(shè)置為中心部件

btn_hlayout = new QHBoxLayout(widget);

return_button =new QPushButton("返回主頁面");

page2_button =new QPushButton("前往頁面二");

btn_hlayout->addWidget(return_button);

btn_hlayout->addWidget(page2_button);

connect(return_button, &QPushButton::clicked, this, &Page1Window::on_return_btn_clicked);

Page2Window *Page2FrommPage1 = new class Page2FromPage1(this); // 使用匿名內(nèi)部類

connect(page2_button, &QPushButton::clicked, this, [=]() {Page2FrommPage1->show();this->hide();});

}

Page1Window::~Page1Window()

{

delete ui;

}

void Page1Window::on_return_btn_clicked()

{

emit goback();

}

?pgge2window.h:?

#ifndef PAGE2WINDOW_H

#define PAGE2WINDOW_H

#include

#include

#include

namespace Ui {

class Page2Window;

}

class Page2Window : public QMainWindow

{

Q_OBJECT

public:

explicit Page2Window(QWidget *parent = nullptr);

~Page2Window();

virtual void on_return_btn_clicked() = 0; // 純虛函數(shù),需要在子類中實(shí)現(xiàn)

private:

Ui::Page2Window *ui;

QWidget *Widget;

QPushButton *return_button;

QHBoxLayout *btn_hlayout; //水平布局

};

//頁面二(從主頁面跳轉(zhuǎn))

class Page2FromMain : public Page2Window {

QWidget *parentWindow1;

public:

Page2FromMain(QWidget *parent = nullptr) : Page2Window(parent), parentWindow1(parent) {

}

void on_return_btn_clicked() override {

parentWindow1->show();

this->hide();

}

};

//頁面二(從頁面一跳轉(zhuǎn))

class Page2FromPage1 : public Page2Window {

QWidget *parentWindow2;

public:

Page2FromPage1(QWidget *parent = nullptr) : Page2Window(parent), parentWindow2(parent) {

}

void on_return_btn_clicked() override {

parentWindow2->show();

this->hide();

}

};

#endif // PAGE2WINDOW_H

??pgge2window.cpp:?

#include "page2window.h"

#include "ui_page2window.h"

Page2Window::Page2Window(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::Page2Window)

{

ui->setupUi(this);

QWidget *widget=new QWidget(this);

this->setCentralWidget(widget); // 設(shè)置為中心部件

btn_hlayout = new QHBoxLayout(widget);

return_button =new QPushButton("返回父頁面");

btn_hlayout->addWidget(return_button);

connect(return_button, &QPushButton::clicked, this, &Page2Window::on_return_btn_clicked);

}

Page2Window::~Page2Window()

{

delete ui;

}

四、效果圖

?

?總結(jié)

通過qt5實(shí)現(xiàn)了多頁面之間的跳轉(zhuǎn),在此過程中使用了虛函數(shù)(c語言沒有),看來學(xué)習(xí)的任務(wù)依舊任重而道遠(yuǎn)。另外,使用此方式進(jìn)行界面跳轉(zhuǎn)時(shí)Page2Window的基類貌似只能使用MainWindow而不能是widget。

柚子快報(bào)激活碼778899分享:QT5:多窗口跳轉(zhuǎn)

http://yzkb.51969.com/

參考鏈接

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19553843.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄