当前位置: 首页 > wzjs >正文

电商网站建设怎么样做视频网站怎么挣钱吗

电商网站建设怎么样,做视频网站怎么挣钱吗,广州互联网公司,什么语言做网站QT的多界面跳转以及界面之间传递参数 一、在QT工程中添加新的界面二、多界面跳转的两种情况1、A界面跳到B界面,不需要返回2、A界面跳到B界面,需要返回1)使用this指针传递将当前界面地址传递给下一界面2)使用parentWidget函数获取上…

QT的多界面跳转以及界面之间传递参数

  • 一、在QT工程中添加新的界面
  • 二、多界面跳转的两种情况
    • 1、A界面跳到B界面,不需要返回
    • 2、A界面跳到B界面,需要返回
      • 1)使用this指针传递将当前界面地址传递给下一界面
      • 2)使用parentWidget函数获取上一级窗口的指针
      • 示例代码:
  • 三、界面之间传递参数(本质上是类跟类之间传递信息)
    • 1、B界面的类中定义了一个公有的方法,通过调用这个公有方法把参数传递过去
    • 2、通过自定义信号来传递参数(发送信号,信号带参数)

一、在QT工程中添加新的界面

右键点击工程名–》选择添加新文件–》QT–》QT设计师界面类–》模板选择MainWindow
详细步骤如下:
1、
在这里插入图片描述
2、
在这里插入图片描述
3、
在这里插入图片描述
4、
在这里插入图片描述
5、
在这里插入图片描述

二、多界面跳转的两种情况

1、A界面跳到B界面,不需要返回

//创建主界面对象
MainWindow *newwin=new MainWindow(); //堆空间
//把主界面显示出来
newwin->show();
//把登录界面关闭 ,与需要返回的差别
this->close();

2、A界面跳到B界面,需要返回

1)使用this指针传递将当前界面地址传递给下一界面

// 创建主界面对象
MainWindow *newwin=new MainWindow(this); //此时必须传递this,原因是返回的时候需要根据这个this找到上一级窗口的地址
qDebug()<<"登录界面的首地址是: "<<this;
//把主界面显示出来
newwin->show();
//把登录界面隐藏--》把登录界面转入系统后台运行
this->hide();

2)使用parentWidget函数获取上一级窗口的指针

QWidget *QWidget::parentWidget() const  返回值:返回上一级窗口的指针原理:当初你跳到下一个界面的时候必须把当前界面的地址传递给下一个界面

示例代码:

// 第二个界面:info_win.cpp
#include "info_win.h"
#include "ui_info_win.h"
#include <QDebug>
#include <QWidget>info_win::info_win(QWidget *parent) :QMainWindow(parent),ui(new Ui::info_win)
{ui->setupUi(this);save_mainwin = parent;qDebug()<<"传递过来的参数是第一个界面的地址:"<<parent;
}info_win::~info_win()
{delete ui;
}
//返回上一级界面按钮的槽函数(第一个界面,登录界面)
void info_win::on_btn_back_clicked()
{//得到上一级界面的地址//思路1:当初创建第二个界面的时候,把第一个界面的地址通过构造函数传递过来//      定义的私有成员save_mainwin就是用来保存传递过来的第一个界面的地址// 显示上级界面
//    save_mainwin->show();//思路2:QT提供了一个函数,叫做parentWidget(),该函数用来返回上一级界面地址QWidget *main_win = this->parentWidget();main_win->show();qDebug()<<"main_win界面地址:"<<main_win;//关闭当前(第二个界面)界面delete this;    // this->close();
}// info_win.h
#ifndef INFO_WIN_H
#define INFO_WIN_H#include <QMainWindow>namespace Ui {
class info_win;
}class info_win : public QMainWindow
{Q_OBJECTpublic:explicit info_win(QWidget *parent = nullptr);~info_win();private slots:void on_btn_back_clicked();private:Ui::info_win *ui;QWidget *save_mainwin;
};#endif // INFO_WIN_H

三、界面之间传递参数(本质上是类跟类之间传递信息)

A界面传递参数给B界面(A是第一个界面,B是第二个界面)

1、B界面的类中定义了一个公有的方法,通过调用这个公有方法把参数传递过去

// A界面

// 第一个界面:// mainwindow.h#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "info_win.h"
#include <QString>
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}
// 登录按钮的槽函数
void MainWindow::on_pushButton_clicked()
{// 获取输入的用户名和密码QString account = ui->lineEdit->text();QString pswd = ui->lineEdit_2->text();if(account == "aaa" && pswd == "123"){//创建第二个界面对象,必须传递this指针(把第一个界面的地址传给第二个界面)info_win *info_w = new info_win(this);// 将第一个界面的账号和密码传递给第二个界面info_w->getMsg(account, pswd);qDebug()<<"第一界面的地址是"<<this;// 显示第二个界面info_w->show();//隐藏第一个界面/*隐藏:把界面转入到系统后台运行,这个界面对象依然存在关闭:界面释放掉,对象不存在了*/this->hide();}else{qDebug()<<"账号或密码错误,重新输入";}
}

// B 界面

// 第二个界面
// info_win.h
#ifndef INFO_WIN_H
#define INFO_WIN_H#include <QMainWindow>namespace Ui {
class info_win;
}class info_win : public QMainWindow
{Q_OBJECTpublic:explicit info_win(QWidget *parent = nullptr);~info_win();void getMsg(QString account, QString pswd);private slots:void on_btn_back_clicked();private:Ui::info_win *ui;QWidget *save_mainwin;QString main_account;QString main_pswd;
};#endif // INFO_WIN_H// info_win.cpp
#include "info_win.h"
#include "ui_info_win.h"
#include <QDebug>
#include <QWidget>info_win::info_win(QWidget *parent) :QMainWindow(parent),ui(new Ui::info_win)
{ui->setupUi(this);save_mainwin = parent;qDebug()<<"传递过来的参数是第一个界面的地址:"<<parent;
}info_win::~info_win()
{delete ui;
}
// 获取第一个界面的账号和密码
void info_win::getMsg(QString account, QString pswd)
{main_account = account;main_pswd = pswd;qDebug()<<"第一个界面传递过来的账号和密码:"<<main_account<<"  "<<main_pswd;
}
//返回上一级界面按钮的槽函数(第一个界面,登录界面)
void info_win::on_btn_back_clicked()
{//得到上一级界面的地址//思路1:当初创建第二个界面的时候,把第一个界面的地址通过构造函数传递过来//      定义的私有成员save_mainwin就是用来保存传递过来的第一个界面的地址// 显示上级界面
//    save_mainwin->show();//思路2:QT提供了一个函数,叫做parentWidget(),该函数用来返回上一级界面地址QWidget *main_win = this->parentWidget();main_win->show();qDebug()<<"main_win界面地址:"<<main_win;//关闭当前(第二个界面)界面delete this;    // this->close();
}

2、通过自定义信号来传递参数(发送信号,信号带参数)

// 第一个界面:
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();signals: //自定义信号void sendSign(QString, QString);private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "info_win.h"
#include <QString>
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}
// 登录按钮的槽函数
void MainWindow::on_pushButton_clicked()
{// 获取输入的用户名和密码QString account = ui->lineEdit->text();QString pswd = ui->lineEdit_2->text();if(account == "aaa" && pswd == "123"){//创建第二个界面对象,必须传递this指针(把第一个界面的地址传给第二个界面)info_win *info_w = new info_win(this);// 将第一个界面的账号和密码传递给第二个界面 --信号发送connect(this, SIGNAL(sendSign(QString, QString)), info_w, SLOT(recvSlot(QString, QString)));emit sendSign(account, pswd);qDebug()<<"第一界面的地址是"<<this;// 显示第二个界面info_w->show();this->hide();}else{qDebug()<<"账号或密码错误,重新输入";}
}
// 第二个界面:
// info_win.h
#ifndef INFO_WIN_H
#define INFO_WIN_H#include <QMainWindow>namespace Ui {
class info_win;
}class info_win : public QMainWindow
{Q_OBJECTpublic:explicit info_win(QWidget *parent = nullptr);~info_win();//void getMsg(QString account, QString pswd);private slots:void on_btn_back_clicked();void recvSlot(QString account, QString pswd);private:Ui::info_win *ui;QWidget *save_mainwin;QString main_account;QString main_pswd;
};#endif // INFO_WIN_H// info_win.cpp
#include "info_win.h"
#include "ui_info_win.h"
#include <QDebug>
#include <QWidget>info_win::info_win(QWidget *parent) :QMainWindow(parent),ui(new Ui::info_win)
{ui->setupUi(this);save_mainwin = parent;qDebug()<<"传递过来的参数是第一个界面的地址:"<<parent;
}info_win::~info_win()
{delete ui;
}//返回上一级界面按钮的槽函数(第一个界面,登录界面)
void info_win::on_btn_back_clicked()
{//得到上一级界面的地址//思路1:当初创建第二个界面的时候,把第一个界面的地址通过构造函数传递过来//      定义的私有成员save_mainwin就是用来保存传递过来的第一个界面的地址// 显示上级界面
//    save_mainwin->show();//思路2:QT提供了一个函数,叫做parentWidget(),该函数用来返回上一级界面地址QWidget *main_win = this->parentWidget();main_win->show();qDebug()<<"main_win界面地址:"<<main_win;//关闭当前(第二个界面)界面delete this;    // this->close();
}void info_win::recvSlot(QString account, QString pswd)
{qDebug()<<"通过信号传递过来的参数"<<account<<"  "<<pswd;
}
http://www.dtcms.com/wzjs/825383.html

相关文章:

  • 网站代优化百度地图的精准定位功能
  • 北京网站建设哪家好天室内设计培训班快速
  • 太平建设公司官方网站陕西建设技术学院网站
  • 河南省城乡建设厅网站专业网站运营
  • 二手车网站开发PPTasp.net做毕业设计网站
  • 手机网站 wap界面设计风格
  • 物流网站免费模板自己做的网站怎么赚钱吗
  • 电子商务网站设计书wordpress 漫画主题
  • 基于html5的移动端网站开发东莞市手机网站建设平台
  • 欢迎访问中国建设银行网上银行网站成都装修设计公司
  • 阿里巴巴做轮播网站阜宁县城乡建设局新的官方网站
  • 交流网站建设项目背景wordpress传上去
  • 个人网站 不备案wordpress链接替换
  • 网站 页面风格 建设怎样制作3d立体效果图
  • 网站租金可以做办公费吗wordpress相册标签
  • 官方网站是 优帮云做dapp开发广州
  • 建可收费的网站网站空间续费合同
  • 网站背景怎么做网站上线过程
  • 企业网站建设方案如何网站建设规范布局
  • 网站建设太金手指六六十八搜索引擎下载入口
  • 建设工程合同分类有哪些wordpress 数据库优化
  • 长春网站优化平台网站建设费入什么总账科目
  • 阿里云网站如何建设视频大石桥城乡规划建设局网站
  • 网站开发检测用户微信号深圳市大型公司
  • wordpress 建门户网站邢台微商城制作设计
  • win10建站wordpress手机网卡
  • 国外网站推荐公司网站建设需要咨询什么问题
  • 35互联做网站怎么样专业企业网站建设
  • 网站建设什么科目苏州建设银行招聘网站
  • 网站设计方案图建站宝盒v8破解版下载