linux qt实现窗口跳转_QT系列之使用QT编辑多窗口程序

本文介绍如何使用QT在Linux环境下创建多窗口应用,重点讲解从登录窗口到主窗口的跳转。通过QT Creator新建主窗口,设置显示文本,添加登录对话框并实现点击按钮后的窗口切换。涉及信号与槽的概念,详细步骤指导,适合初学者学习。
摘要由CSDN通过智能技术生成

QT的功能是非常强大的,在很多桌面应用程序都有用到。这里主要给大家介绍的是如何使用QT实现多窗口跳转。所谓的多窗口程序简单的理解一下,我们日常用的QQ,微信都有一个登录界面,点击登录之后就会进行跳转。今天主要给大家介绍的是如何使用QT进行多窗口程序,像密码验证,登录界面的设计暂时先不介绍,有兴趣的朋友欢迎进行留言,可以单独进行分析普及。

程序实现功能:点击运行会出现一个对话框,就像QQ的登录窗口,按下登录按钮后登录对话框退出,出现主窗口 ,如何点击退出按钮则不能进入主窗口,整个程序就会退出。在主窗口中,点击对话框按钮,会进入另一个对话框,点击退出按钮返回主窗口。

大致整个程序需要实现的功能就是上诉所描述的,下面我就实现的整个流程,进行操作演示。有不对的地方,希望各位志同道合的朋友给予批评指正,当然也更加欢迎大家一起讨论学习。想要了解更多内容,欢迎点击由上角的关注,更多精彩内容与您共享。

本次使用的操作环境:windaws10+QTcreator5.9.4

一、 新建主窗口

1. 首先打开QTcraztor,我这里使用的是5.9.4版本,当然基本QT5系列都通用,不过每个版本稳定性可能有些差异,楼主使用5.9.4版本感觉还挺稳定的,新建Qt WidgetsApplication,项目名称设置为windows,在类信息界面保持基类为QMainWindow、类名MainWindow,这此时一个主窗口界面就已经新建完成了。

c6e9d9589dea8614580c6f9299db0a64.png

ui界面

2. 主窗口新建完成后,点击Forms文件下的mainwindows.ui,进入ui界面设计模式。在左侧控件板块中,选择一个push button的控件,将其直接拖拽到主窗口界面,选择合适的位置放置。双击此控件,进入名称编辑模式,更改控件名称为按钮。MainWindow::MainWindow(QWidget *parent) :

二、 设置主窗口显示文本

1. 使用Ctrl+2快捷键进入编辑模式,选择mainwindows.cpp进入进行编辑,在maiinwindows构造函数里面加入代码,如下图所示。

544f8e0b824baa3fa6f9172a43d95d8f.png

代码块

 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); ui->pushButton->setText("新窗口");}

这里的ui对象就是界面文件对应的类的实例,在mainwindow.h文件中对其进行了定义,我们可以通过它来访问设计模式添加到界面上的部件。前面添加的按钮部件Push Button,在其属性面板上可以看到它的objectName属性的默认值为pushButton,这里就是通过这个属性来获取部件对象的。

在这个地方,使用Push Button这个类的setText函数来实现显示文本的功能点击Ctrl+R按钮运行程序,可以看见一下效果。观察发现,通过程序直接编辑的显示文本会覆盖之前ui设计的文本。这是需要注意的一个地方。

9d123499a62085dc4ee35f717356bba6.png

主窗口

三、 添加登录对话框(重点)

1. 首先添加一个新的对话框,需要添加新文件,在项目目录下的Windows下右击鼠标,选择添加新文件

b4c980bb2e83106c748c25f371472349.png

2. 模板选择文件和类分类下的QT选项,选择QT设计师界面类,点击choose进入下一步。

ed9ae8ec91c15adde410a2f8976fa856.png

3. 界面模板选择Dialog withoutButtons,单击下一步

10525ae591715231f60de13bba22b883.png

4. 此时进入类的信息界面,这里我们将类名修改为Login_interface,一般类名的首字母需要大写,此时相关文件会自动进行修改。

1e73afa6d5d60b4269fac93478168bcb.png
1631b7018bc1eae8ee2b64945cd50743.png

5. 点击完成 按钮后会跳转到登录窗口的ui界面设计模式,这里我们选择一个push button控件,拖拽到登录界面,选择合适的位置,双击控件进入名称编辑模式,修改名称为进入主界面。我们的目的是为了实现点击此按钮,会关闭此对话款,并且进入显示主窗口。这里运用了QT的核心知识信号与槽的概念。这里只演示,不做过多介绍,需要的朋友给以在后续的介绍中了解。

首先点击设计模式上方的 按钮,进入信号和槽的编辑模式,按着鼠标左键,从按钮上拖向界面,如下图所示。

bba421e13f4ad8af0ef6370035bfd2a5.png

6.进入配置连接中,在pushButton中选择clicked选项,在login_interface中,选择accept选项,完成后点击ok按钮。

d31b420bf6c0dacfec465c616728d6df.png

.

设置好了信号与槽的关联后,显示界面如下图。

632604f075814781fec53f8ec5ecdc0b.png

6. 完成后,按F3键返回控件编辑模式

四、 设置自定义对话框类

1. 按下Ctrl+2返回代码编辑模式,在这里打开main.cpp文件,添加代码:如下图所示

此时即可测试一下程序。

ec9bba80c789e99b19c2d70e3ae9728f.png
#include "login_interface.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; Login_interface dlg;//建立Login_interface的实例dlg if(dlg.exec() == QDialog::Accepted)//利用Accepted返回值判断按钮是否被按下 { w.show();//如果按下,显示主窗口 return a.exec();//程序一直执行,直到主程序关闭 } else return 0;//如果没有按下,则不会继续如主窗口,程序结束}

2. 上述方案以代码形式实现,通过UI界面也可实现显示对话框。

首先进入Forms文件下的mainwindow.ui界面,右击按钮这个控件在弹出的转到槽对话框中选择第一个clicked()信号并按下确定按钮。这时会跳转到编辑模式mainwindow.cpp文件的on_pushButton_clicked()函数处,这个就是自动生成的槽,已经自动在mainwindow.h文件中进行了声明,这里需要在windows.cpp下添加两句代码,代码如下

void MainWindow::on_pushButton_clicked(){ QDialog *dlg = new QDialog(this); dlg ->show();}

需要注意,在cpp下需要添加头文件,到此,整个过程就已经结束了,大家可以点击运行观察效果。

欢迎各位朋友发表意见与看法,有兴趣的大家一起交流探索,需要源码的朋友可以私信我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值