Qt6:子窗口向父窗口传值

news2025/7/27 22:09:53

        终于解决了这个问题!这才怀着激动的心情跑来记录一下。你们是不知道这其中的艰辛啊,太难了,差亿点就放弃学Qt了……

        此处苦水省略一万字……

        关于子窗口向父窗口传值的方法,在网上搜了不下百遍,免费的、付费下载、会员限看的文章都琢磨很久仍一无所获,倒是耐心见长。最后自己一点点摸索,搞懂原理之后就顺利解决了。果然,靠天靠地不如靠自己!

        我的方法是通过信号和槽的机制来实现,大概分为如下4步:

  1. 在子窗口中定义一个信号,用于向父窗口传递数据。
  2. 在子窗口中定义一个槽函数,用于接收父窗口传递过来的数据。
  3. 在父窗口中创建子窗口对象,并连接子窗口的信号和父窗口的槽函数。
  4. 在子窗口中触发信号,将数据传递给父窗口。

        因为是讲方法,所以案例就做的比较简单。主窗口上我在设计界面提前放了一个lineedit控件和一个pushbutton控件。lineedit控件用于显示子窗口中的控件传来的值,pushbutton控件用于弹出子窗口。如下图所示:

        子窗口也是一个lineedit控件和一个pushbutton控件。lineedit控件给用户输入值,然后点击旁边pushbutton控件发送到主窗口的lineedit控件中,并显示出来。子窗口设计界面如下图所示:

         下面我把需要写的代码直接在代码片段中贴出来,不然不了解的小伙伴可能看的有点迷糊。要写代码或者要修改的地方如下代码块中所示,其他自动生成的代码就没贴出来了,还是看不懂的可以翻到文章最底部的完整代码。

主窗口头文件代码中(mainwindow.h):

//要包含一下子窗口的头文件
#include <dialog.h>


private slots:
    //“弹出子窗口”按钮的槽函数声明
    void on_pushButton_clicked();

    //接收子窗口值的槽函数声明
    void recevData(QString data);

private:
    Ui::MainWindow *ui;

    //初始化子窗口(这里不知道有什么用,姑且这么叫吧~)
    Dialog *dlg;

主窗口cpp代码中(mainwindow.cpp): 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //初始化子窗口(2)
    dlg = new Dialog();
    connect(dlg, &Dialog::sendData, this, &MainWindow::recevData);
}


//“弹出子窗口”按钮实现
void MainWindow::on_pushButton_clicked()
{
    dlg->show();
}

//接收子窗口值的函数实现
void MainWindow::recevData(QString data)
{
    ui->lineEdit->setText(data);
}

子窗口头文件代码中(dialog.h):

private slots:
    //“发送”按钮的槽函数声明
    void on_pushButton_clicked();

//用于发送数据的sendData的信号
signals:
    void sendData(QString data);

子窗口cpp文件代码中(dialog.cpp):

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    //connect连接“发送”按钮
    connect(ui->pushButton, &QPushButton::clicked, this, &Dialog::on_pushButton_clicked);
}

//“发送”按钮实现:
void Dialog::on_pushButton_clicked()
{
    QString data = ui->lineEdit->text();
    emit sendData(data);
}

要看源文件所有代码的小伙伴直接下载这篇文章关联的资源文件就行,还有不清楚的可以在评论留言哈,我看到会第一时间回复的哦~

如果对你有帮助,点个小赞就行哈~ 感谢感谢~

对了,我的项目文件结构如下,用的是Qt_6_2_4_MinGW_64_bit-Debug。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1156642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM智能小车——OLED实现测速小车

目录 1. 测速模块 2. 测试原理和单位换算 3. 定时器和中断实现测速开发和调试代码 4. 小车速度显示在OLED屏 1. 测速模块 用途&#xff1a;广泛用于电机转速检测&#xff0c;脉冲计数,位置限位等。有遮挡&#xff0c;输出高电平&#xff1b;无遮挡&#xff0c;输出低电平接线…

0基础学习VR全景平台篇第115篇:转换为立方体面 - PTGui Pro教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01;PTGui的软件教程到了这节课即将结束&#xff0c;我们此前历数各种编辑、优化全景的方法步骤&#xff0c;相信可以带给大家一些帮助。可是因为一些人力不可抗拒因素&#xff0c;造成…

SSM校园设备管信息管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

选题理由 随着计算机网络及多媒体技术的广泛应用&#xff0c;互联网已成为高校办学的基础设施和必备条件&#xff0c;基于互联网的高校信息管理越来越综合化&#xff0c;越来越多的教学管理、行政管理工作将架构在互联网上&#xff0c;互联网正在变为学校实施教学、科研和管理…

图数据库Neo4j概念、应用场景、安装及CQL的使用

一、图数据库概念 引用Seth Godin的说法&#xff0c;企业需要摒弃仅仅收集数据点的做法&#xff0c;开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。 传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系&#xff0c;那些表状数据模…

python爬取csdn的文章内容

今天写了一个爬取csdn文章的 初学不太会&#xff0c;下面代码有时间可以自行优化 新建python文件&#xff0c;把我的代码复制进去保存 把依赖python install 一下 import re import urllib.error import urllib.request import os import tkinter as tk from bs4 import Bea…

2023年Zotero最新同步教程-使用TeraCloud的25G免费空间实时跨设备同步文献

文章目录 1. 前言2.1. 注册账号2.1.1. 填写注册信息2.1.2. 创建账号成功2.1.3. 注意2.2. 扩容空间2.3. 打开WebDAV 3. Zotero配置WebDAV同步3.1. 设置网址3.2. 验证服务器3.3. 文件同步成功 4. 结语 1. 前言 Zotero免费版的存储空间是300m&#xff0c;一个图文PDF动辄两三M&am…

基于JAYA算法的无人机航迹规划-附代码

基于JAYA算法的无人机航迹规划 文章目录 基于JAYA算法的无人机航迹规划1.JAYA搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用JAYA算法来优化无人机航迹规划。 1.JAYA搜索算法 …

高效学习工具之AnkiMobile新手入门指南(ios端,包括ipad、ihpone设备)————创建、使用、备份、设置参数、相关资料

文章目录 0 背景0.1 闭环学习0.2 什么是anki 1 开始使用1.1 导入1.2 创建空白组1.3 创建卡片1.3.1 利用anki创建卡片的两种方法1.3.2 复习材料分类 1.4 筛选&#xff08;做减法&#xff0c;拆分学习&#xff08;做子卡牌集合&#xff09;&#xff09;&#xff08;核心&#xff…

集简云slack(自建)无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统

slack是一个工作效率管理平台&#xff0c;让每个人都能够使用无代码自动化和 AI 功能&#xff0c;还可以无缝连接搜索和知识共享&#xff0c;并确保团队保持联系和参与。在世界各地&#xff0c;Slack 不仅受到公司的信任&#xff0c;同时也是人们偏好使用的平台。 官网&#x…

3.12每日一题(有理函数不定积分)

两种方法&#xff1a; 1、拆项&#xff0c;然后分别加项减项拆&#xff0c;把分母降幂 注&#xff1a; x凑x的平方时前面要乘1/2 分子为x的平方可以分一个x去凑x的平方 2、联想三角有理函数公式&#xff0c;使用三角函数求解 用tant替换x&#xff1b;再通过二倍角公式降幂即可 …

自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目

自定义的卷积神经网络模型CNN&#xff0c;对图片进行分类并使用图片进行测试模型-适合入门&#xff0c;从模型到训练再到测试&#xff1a;开源项目 开源项目完整代码及基础教程&#xff1a; https://mbd.pub/o/bread/ZZWclp5x CNN模型&#xff1a; 1.导入必要的库和模块&…

大模型时代的人工智能+大数据平台,加速创新涌现

大模型和MaaS概念的出现&#xff0c;定义了以模型为中心的一整套AI开发新范式&#xff0c;而这背后日益增长的巨大算力需求&#xff0c;对AI工程底座提出了新的挑战。今天&#xff0c;大模型时代下的人工智能大数据平台&#xff0c;需要具备计算效率、开发效率、处理效率为一体…

Java日志组件介绍之二

一、前言 Java日志组件介绍之一 主要介绍了JDK内置日志和Apache的common-logging通用日志接口&#xff0c;今天这篇我们继续了解Java其它一些日志组件。 二、slf4j slf4j即Simple Logging Facade for JAVA &#xff0c;简单日志门面&#xff0c;类似common-logging&#xff0…

RBAC:基于角色的访问控制

1.介绍 RBAC是一种库表设计思想 基于角色的访问控制&#xff08;RBAC&#xff09;是实施面向企业安全策略的一种有效的访问控制方式。一种数据库的设计思想&#xff0c;其核心是角色。其基本思想是&#xff0c;对系统操作的各种权限不是直接授予具体的用户&#xff0c;而是在…

element表格自定义筛选

文章目录 前言一、简介二、效果展示三、源码总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; …待续 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、简介 修改el-table的筛选…待续 二、效果展示 三、源码 使用方法…

视频汇聚平台EasyCVR分发的流如何进行token鉴权?具体步骤是什么?

视频监控EasyCVR平台能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c;也能支持视…

喜报!CACTER邮件安全网关荣获2023鲲鹏应用创新大赛广东赛区三等奖

近期&#xff0c;2023鲲鹏应用创新大赛广东赛区暨广东省信息技术应用创新产业联盟创新大赛圆满落幕&#xff0c;Coremail凭借“基于鲲鹏CPU的邮件网关一体机解决方案”&#xff0c;荣获“金融行业方向”三等奖。 ​ 鲲鹏凌粤 展翅湾区 本届大赛广东区域赛以“鲲鹏凌粤 展翅湾…

数据结构与算法-树和森林

&#x1f31e; “永远面朝阳光&#xff0c;阴影被甩在身后&#xff01;” 树和森林 &#x1f388;1.线索二叉树&#x1f388;2.树和森林&#x1f52d;2.1树的存储结构&#x1f52d;2.2双亲表示法&#x1f52d;2.3孩子链表表示法&#x1f4dd;2.3.1孩子链表表示法的实现&#x1…

基于深度学习网络的美食检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 % 图像大小 image_size [224 224 3]; num_classes size(VD,2)-1;% 目标类别数量…

解决:Xshell连接服务器卡在To escape to local shell, press ‘Ctrl+Alt+]‘.很久才能够连接上

如下图&#xff1a;在输入服务器的账号密码后&#xff0c;会卡在这里没有任何反映需要几分钟才能连接上 造成这个情况的原因&#xff1a; 在SSH服务中&#xff0c;UseDNS用于指定当用户SSH登录一个域名时&#xff0c;服务器是否使用DNS来确认该域名对应的IP地址。如果UseDNS设置…