QT点击主界面按钮弹出新界面,点击新界面按钮再返回主界面

        最近在自学习,第一次写博客,有需要改正的还请留言讨论。

        先说一下这个练习的需求:在主界面有一个按钮,点击按钮弹出一个新的界面。新界面上也有一个按钮,点击可以返回主界面。(使用的是Qt 5.9.4版本的Qt Creator)

       (新建项目细节没问题的直接看文章末尾的截图吧~)

         新建项目  -- >   弹窗中选择Application的Qt Widgets Application(默认的),点击“choose”   -- >  更改文件名,我改的是demo8,“下一步”   -- >   “下一步”--基类的选择有MainWindow/QWidget/QDialog三种,我选的是QWidget(第一个也可以),点“下一步”   --  > “完成”。此时就会出现一个项目,包括头文件、源文件和ui文件(ui文件是在选择基类的界面时候有一个默认的勾选有的,可能部分人没接触这块,去掉对勾就没有ui文件了)。这里说一下,ui文件只是写程序时更快捷方便,其实结果都是一样的。

      单击项目 --> 点击右键--添加新文件   -- >  选择Qt 下的Qt设计师界面类,点“choose”--模板我这里默认是“Dialog without Buttons”(按钮可以回头再添加),下一步   -- >  类名,我这里没改,该也可以,记得第二个界面的objectName和这个是对应的。下一步  -- >  完成。进入dialog.ui设计界面,在界面上拖入一个按钮,右侧属性栏改一下它的objectName,这里我改的是:backButton,将按钮上文字改为:back  -- >点击编辑,可以看到添加了dialog的头文件、源文件和ui文件   -- >  点击widget.ui,进入设计界面在左侧拖一个Push Button入框,单击框中的按钮让它成选中状态,右键选择“转到槽”,默认是在clicked(),直接点击“OK”,  -- >   (这里默认是返回到widget.cpp的槽函数里,先不着急) 点击widget.h,添加第二个界面的头文件#include "second.h"(这一步很重要噢~)  -- >  ,然后点击widget.cpp,在槽函数里(我这里是 on_pushButton_clicked())创建一个第二界面的对象:

  Dialog *dialog = new Dialog(this);       //这一步省去了在头文件里添加私有成员的操作
不推荐这种方式,这是创建临时变量。还是正常操作吧~
  dialog->setModal(true);                  //setModal()是设置模态,就是得关闭当前窗口才能操作其他窗口
  dialog->show();                          //将new出的界面对象显示出来

        this:当前对话框窗口,QT有自动删除机制,自动删除机制:QT删除对话框时,会自动删除其所有的子对象。所以这里new出来的新对象不需要额外delete。

       setModal()可以在帮助文档里搜索了解,默认是false,是非模态,就是不需要关闭当前窗口也可以操作其他窗口(额外延申的一个小知识点,可以不写)。说点题外话,由于我也在学习,所以这些就是看了很多视频、博客才弄清楚内容综合了学来的知识点,可能有些你们也看到过了。b站有个不错的视频推荐给大家:2019年最新QT从入门到实战完整版。

 

      点击dialog.ui文件,同样的操作,选中按钮右键点击“转到槽”,默认点击“OK”,在槽函数里加:

       this->hide();                     //将当前界面挂起

下面放几张截图吧,都是文字估计也不想看~~~

 

QT点击主界面按钮弹出新界面,点击新界面按钮再返回主界面_第1张图片

QT点击主界面按钮弹出新界面,点击新界面按钮再返回主界面_第2张图片

头文件没有添加的,为了部分可能需要的小伙伴,也放上去吧~

QT点击主界面按钮弹出新界面,点击新界面按钮再返回主界面_第3张图片

QT点击主界面按钮弹出新界面,点击新界面按钮再返回主界面_第4张图片

内容简单,有点凌乱,有点low阿,有问题留言就行~~ 

你可能感兴趣的:(QT,qt,c++,qtcreator)