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

【qt】跳转到另一个界面

如何在一个界面跳转到另一个界面呢?

1.具体步骤

1.先新建一个界面
在这里插入图片描述
2.选择qt设计师界面
在这里插入图片描述
3.选择W
在这里插入图片描述
4.新界面名称
在这里插入图片描述
5.界面设计
因为我们要实现通信,需要一个发送信息栏,一个发送按钮,一个清空发送栏按钮
在这里插入图片描述
6.实现跳转
在这里插入图片描述
我们可以参考主页面的实现,但是我们跳转到另一个界面,需要关闭原先的界面,我们只需要将他隐藏起来,然后调用新界面,我们是什么时候调用新界面呢
在这里插入图片描述
在建立连接之后,先隐藏原界面,调用新界面,我们需要在老界面那里调用新界面,所以要在widget中包含chat头文件
在这里插入图片描述
但是这里有一个问题,就是我们需要在新界面实现通信,所以我们必须将建立好的socket传过去
在这里插入图片描述

2.源码分享

chat.h

#ifndef CHAT_H
#define CHAT_H#include <QWidget>
#include<QTcpSocket>
namespace Ui {
class chat;
}class chat : public QWidget
{Q_OBJECTpublic:explicit chat(QTcpSocket*s,QWidget *parent = nullptr);~chat();private:Ui::chat *ui;QTcpSocket*socket;
};#endif // CHAT_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QTcpSocket>
#include<QString>
#include <QHostAddress>
#include<QMessageBox>
#include<chat.h>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_closebutton_clicked();void on_connectbutton_clicked();private:Ui::Widget *ui;QTcpSocket* socket;
};
#endif // WIDGET_H

chat.cpp

#include "chat.h"
#include "ui_chat.h"chat::chat(QTcpSocket *s, QWidget *parent) :QWidget(parent),ui(new Ui::chat)
{ui->setupUi(this);socket=s;}chat::~chat()
{delete ui;
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);socket=new QTcpSocket;}Widget::~Widget()
{delete ui;
}void Widget::on_closebutton_clicked()
{this->close();
}void Widget::on_connectbutton_clicked()
{QString ip=ui->iplabel->text();QString port=ui->portlabel->text();socket->connectToHost(QHostAddress(ip),port.toShort());connect(socket,&QTcpSocket::connected,[this](){QMessageBox::information(this,"连接提示","连接成功");this->hide();chat *newui=new chat(socket);newui->show();});connect(socket,&QTcpSocket::disconnected,[this](){QMessageBox::warning(this,"连接提示","连接异常");});}

3.效果演示

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 安全密码算法:SM3哈希算法介绍
  • 电子电气架构---EEA的发展趋势
  • 量化交易的基石:ExchangeSdk
  • (自用)仿写程序
  • 使用 Go 语言将 Base64 编码转换为 PDF 文件
  • 深入探索Amazon EC2:解锁云端计算的无限可能
  • 使用 grep 进行文本文件搜索
  • 网页开发——DOM与BOM
  • watchEffect 函数 与 watch 函数的区别
  • HTTP 请求流程
  • LeetCode 234 - 回文链表 C++ 实现
  • 设计模式之结构型模式
  • 深入浅出:理解TCP传输控制协议的核心概念
  • Go 语言错误处理
  • keepalive原理详解及应用
  • .pyc 想到的一些问题
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CentOS7简单部署NFS
  • egg(89)--egg之redis的发布和订阅
  • ES6之路之模块详解
  • Java|序列化异常StreamCorruptedException的解决方法
  • Rancher如何对接Ceph-RBD块存储
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Web标准制定过程
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 那些年我们用过的显示性能指标
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 树莓派 - 使用须知
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 优化 Vue 项目编译文件大小
  • 在Unity中实现一个简单的消息管理器
  • 怎样选择前端框架
  • ​HTTP与HTTPS:网络通信的安全卫士
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #pragma pack(1)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $L^p$ 调和函数恒为零
  • (¥1011)-(一千零一拾一元整)输出
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (13):Silverlight 2 数据与通信之WebRequest
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2)空速传感器
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C++哈希表01)
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (四)图像的%2线性拉伸
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (原創) 物件導向與老子思想 (OO)
  • (转) ns2/nam与nam实现相关的文件
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)iOS字体