QT C++ 编写多窗口之间的跳转 在一个窗口中可以变化很多UI界面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT C++ 编写多窗口之间的跳转 在一个窗口中可以变化很多UI界面相关的知识,希望对你有一定的参考价值。

就像这个窗口一样 ,点击 欢迎 按钮 会显示一个界面,点击 编辑 又会显示一个界面

qtabwidget的核心部件是qtabbar和qstackedwidget。qtabbar就是现实的一串标签,就像你的浏览器显示的标签一样。真正的显示内容的页面都装在qstackedwidget中,这是一个窗口容器。具体的东西你可以看看qt的帮助文件。 参考技术A 你可以用qtabwidget实现追问

这........是什么?

初学者 还望理解

追答

这是Qt的标签类,构建mainwindow后,用一个qtabwidget作为centralwidget,然后再构建每一个页面,分别用QTabWidget::addTab(部件,图标,标题)添加到作为centralwidget的qtabwidget中,然后就可以利用标签前后翻页了。如果你想做成像qt creator一样的界面,你可以用QTabWidget::setTabPosition设置标签栏的位置。示例在附件中(仅有mainwindow的构造函数部分)。

本回答被提问者采纳
参考技术B 打开不同的子窗口 。。。。。

~
~
参考技术C 这个比较简单的,使用QStackWidget!! 参考技术D http://download.csdn.net/download/yu_20501253/9904802这个你可以下来看看,符合你的要求

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

一、模式

之前一直用的是c#,由于最近要使用CC来二次开发,所以先熟悉一下QT。

1、从一个界面跳到另外一个界面不需要返回

2、从一个界面跳到另外一个界面需要返回

1、新增主窗口

二、窗口跳转 

需要返回:

主窗口


void MainWindow::on_Load_Btn_clicked()

    static  int  count=0;
   QString  name=ui->lineEdit_userName->text();
   QString  pwd=ui->lineEdit_password->text();
   if(name=="123" && pwd=="1234567")
   
      ui->tishi->setText("OK, load success  !!");
      SecondWindow *min=new SecondWindow(this);
      min->show();
      this->hide();
   else
   
       count++;
       if(count>3)
       
           ui->lineEdit_userName->setEnabled(false);
           ui->lineEdit_password->setEnabled(false);
       
       ui->tishi->setText("all 3times,and you have");
   

第二个窗口:

#include "secondwindow.h"
#include "ui_secondwindow.h"

SecondWindow::SecondWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::SecondWindow)

    ui->setupUi(this);
  qDebug()<<"  SecondWindow::SecondWindow: first mainwindow  address :"<<parent ;


SecondWindow::~SecondWindow()

    delete ui;


void SecondWindow::on_backBtn_clicked()

    this->parentWidget()->show();
    delete this;


原理:

 注意点:

1、必须在新的窗口中传入当前的窗口的指针

三、不同窗口之间传参

 本质上是类和类之间的传参

父窗口-》子窗口

1、在接受界面的窗口中定义一个函数,接收函数

 2、在发送参数的那个界面中将这个 参数传递过去

 子窗口-》父窗口

本质是信号 和槽

1、在子窗口中定义一个信号 用来发送参数

 2、在子窗口中用信号发出

 3、在主窗口中声明一个槽函数

 

 4、使用信号与槽的关系来绑定

 实践的项目名称:

 

以上是关于QT C++ 编写多窗口之间的跳转 在一个窗口中可以变化很多UI界面的主要内容,如果未能解决你的问题,请参考以下文章

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

gui中相互关联的窗口的跳转

QT多窗口切换的问题

IntelliJ IDEA神器使用技巧 慕课

qt窗口之间如何通信或信息共享?(C++版)

qt窗口之间如何通信或信息共享?(C++版)