Qt 主窗口与子窗口之间传值

2023-11-08

1、主函数向子函数传值:

主窗口定义信号,子窗口定义槽函数,在主窗口将信号与槽连接起来

mainwindow.h:

#include<Dialog.h>

signals:

        void sendStr(QString);

private:

        Dialog *newDialog;

mainwindow.cpp:

void MainWindow::on_pushButton_clicked()   //自定义按钮函数 点击传值。

{

         QTreeWidgetItem *item = ui->treeWidget->currentItem();  //自定义treeWidget

         newDialog = new Dialog();

         newDialog->setModal(true);   //模态

         QObject::connect(this,SIGNAL(sendStr(QString)),newDialog,SLOT(getStr(QString)));

         QString oldStr = item->text(0);  //向newDialog传当前节点名字

         emit sendStr(oldStr);

         newDialog->show();
 }

dialog.h:

  private slots:
  
          void getStr(QString);

dialog.cpp:

void Dialog::getStr(QString str)
{

         ui->lineEdit->setText(str);  //自定义linEdit对象,将oldStr 传入dialog并显示在linEdit中。

}

2、子函数向主函数传值:

规则一致。代码相似: 子窗口中定义信号(emit),然后在父窗口中定义槽(),在主窗口中将槽和信号连接起来,

mainwindow.h:

#include<Dialog.h>

private:

        Dialog *newDialog;

private  slots:

        void getNewStr(QString);

mainwindow.cpp:

void MainWindow::getNewStr(QString newstr)  //将Dialog传回的值设为treeWidget当前节点的内容

{

        QTreeWidgetItem *item = ui->treeWidget->currentItem();

        item->setText(0,newStr);

}

void MainWindow::on_pushButton_clicked()   //自定义按钮函数,点击打开newDialog

{

        newDialog = new Dialog();

        newDialog->setModal(true); //模态

        QObject::connect(newDialog,SIGNAL(sendNewStr(QString)),this,SLOT(getNewStr(QString)));

        newDialog->show();

}

dialog.h:

 signals:
 
         void sendNewStr(QString);

dialog.cpp:

void Dialog::on_okButton_clicked() //自定义传递按钮

{

        QString newStr = ui->lineEdit->text();  //获取lineEdit中输入的内容为newStr

        emit sendNewStr(newStr );

        this->hide();  //传值后隐藏,回到MainWindow

}

3、将1、2合并可以完成功能:主窗口旧名字传递给子窗口,子窗口重命名后将新名字传递给主窗口。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(Qt实战项目,C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 主窗口与子窗口之间传值 的相关文章

  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • Qt中如何获取鼠标在屏幕上的位置?

    我想获取屏幕上的鼠标坐标 我怎样才能在 Qt 中做到这一点 在 Windows 上 使用 C 我正在做类似答案中建议的事情对于这个问题 https stackoverflow com q 11737665 1420197 正如文档所述 QC
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • PyQt:如何设置组合框项目可检查?

    为了将 GUI 小部件数量保持在最低限度 我需要找到一种方法来为用户提供下拉菜单项的选择 这些菜单项可用于过滤掉 listWidget 项中显示的内容 假设 listWidget 列出了 5 个不同类别的项目 Cat A Cat B Cat
  • QGraphicsScene::clear 不会改变 sceneRect

    我有一个 QGraphicsScene 场景 和 QGraphicsView graphicsView 我有一个画图的方法 当我需要重绘所有图形时 我调用这个方法 一切都好 但我意识到 scene gt clear 不会改变 sceneRe
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 如何将 zlib 添加到现有的 qt 安装中

    如何将 zlib 添加到 Qt 的现有安装中 我对此很陌生 所以请给我详细的描述 提前感谢您的帮助 zlib 包含在 Qt 核心库中 如果你想在 Qt 程序中使用 zlib 函数 你只需要包含 src 3rdparty zlib 中的 zl
  • 如何为 Windows 构建静态 Qt 库并将其与 Qt Creator 一起使用

    我已经下载了以下 Qt 源 http download qt nokia com qt source qt everywhere opensource src 4 7 3 zip http download qt nokia com qt
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望
  • Qt 安装程序框架 - 如何在卸载时仅删除某些文件和文件夹

    我使用 Qt 安装程序框架 如何确保在卸载时仅删除某些文件或文件夹 而不是像当前那样删除安装文件夹中的所有文件 先感谢您 您可以覆盖默认行为component createOperations对于卸载程序 然后使用手动指定每个卸载路径com
  • 将 QByteArray 从大端转换为小端

    我想我在这里有点不知所措 我尝试了这么简单的事情 我不敢相信没有任何内置的 Qt 使用 Qt 5 6 2 我尝试将 QByteArray 内的数据从大端转换为小端 总是从相同的测试 QByteArray 开始 就像这样 QByteArray
  • 为什么 QGraphicsWidget 的选择边框在 QGraphicsScene 中不可见?

    我已经通过一个小部件添加到图形场景 QGraphicSscene QGraphicsProxyWidget 问题是 当我选择该项目时 它被选中 但选择边框不可见 这是代码 QDial dial new QDial Widget dial g
  • 在 Qthread 中运行函数 - 应用程序将挂起

    我在 QT 内部线程方面遇到一些问题 include
  • 如何从 matlab 调用 Qtproject?

    我在 matlab 中有一个函数可以写入一个 file txt 我在 qt 项目中使用它 So 当我使用 unix 获取要运行的 qt 编译可执行文件时 我有一个 Matlab 文件 但出现错误 代码 unix home matt Desk

随机推荐

  • 向Intel迁移!(上)

    转自 http www programmer com cn 14703 文 王越 2005年 苹果宣布其芯片向Intel迁移 在这背后夹杂着错综复杂的缘由 从Intel的诞生 精简指令集与复杂指令集之争到AIM与Wintel两大联盟之争 几
  • 计算机系统的组成说课,计算机系统的组成说课稿

    计算机系统的组成说课稿 一 教学内容分析 1 教学内容分析 本节是广东教育出版社出版的 信息技术 初中第一册第一章 信息处理与计算机 第二节的内容 授课为1课时 这是小学升初一新生接触信息技术这门课的第二堂课 这节课能否讲得生动易懂 涉及能
  • 函数式语言Haskell

    函数式语言Haskell 为了方便 建设在windows下安装编译器和解析器 今有2个 Hugs 和 GHC 网址如下 http cvs haskell org Hugs pages downloading htm http www has
  • 密码学之公钥密码体系(2):RSA算法

    密码学之公钥密码体系 2 RSA算法 文章目录 一 RSA算法背景 二 RSA算法描述 三 RSA的硬件实现 四 RSA的安全性 五 对RSA的选择密文攻击 一 RSA算法背景 上一讲介绍了公钥密码体系中的背包算法 在Merkle背包算法出
  • Spring自动事物管理失效情形

    声明式事物管理虽然十分方便 但是也有失效的情形 1 Transactional作用在非public方法上 Spring的事物管理只支持使用public声明的方法 即使是在同一个包或者同一个类中的方法事务管理也会失效 package com
  • Materialize时间组件datepicker汉化

    首先说明我用的是1 0版本 由于版本差异导致js调用的方法不一致 请注意
  • ubuntu20.04修改时间localtime

    根据网络上目前的一些语句设置都无法正常实现 主要原因在于 网上的办法都是基于 System clock synchronized 参数的值是 yes 但是我的该参数一直都是no 且根据网上常规办法无法实现修改时区 因此 我经过查找资料找到了
  • 安装nodejs时提示Leaving directory

    在按照标准的编译命令 configure gt make gt make install 在make的时候发生错误 deps v8 src base platform mutex h 210 error expected before co
  • 在线PDF保护解除器,完全免费,没有文件数量限制 - PDF在线解锁器

    通常一般的PDF文件我们可以使用PDF阅读器程序打开 并可以打印内容 复制文本或转换为其他格式 但是 有时你可能发现某些PDF文件虽然可以像普通PDF一样被我们查看 但却无法打印它或选择复制文本内容 这些文件是被PDF创建者加了权限保护的P
  • 2.1 pytorch官方demo(Lenet)

    实现一个图像分类器 pytorch官方demo TRAINING A CLASSIFIER PytorchDemo LeNet 介绍 Convolutions 卷积 Subsampling 下采样 Full connection 全连接 L
  • avive零头撸矿

    Avive 是一个透明的 自下而上替代自上而下的多元网络 旨在克服当前生态系统的局限性 实现去中心化社会 aVive 一个基于 SBT 和市场的 deSoc 它使 dapps 能够与分散的位置 oracle 和 SBT 关系进行互操作 您的
  • vue history模式 nginx配置

    vue history模式 nginx配置 wap为history路径 location wap try files uri uri router index index html index htm location router rew
  • jupyter notebook选择conda环境

    参考 https stackoverflow com questions 37085665 in which conda environment is jupyter executing 需要安装 conda install ipykern
  • IDEA插件-----Squaretest(自动生成单元测试)

    菜单栏就多了一项Squaretest 首先我们打开一个类 这个类就是我们即将要作为实验的类 这个类有7个public方法 因为Squaretest生成的单元测试方法都是只能生成public的 当然这也是合理的嘛 毕竟private的肯定被p
  • 02.java实现冷饮批发管理系统-页面设计之【选择店铺页面】

    需求 用户设置完收货地址 系统判断该地址里对应的商铺列表 HTML 预览
  • 1.7 起步 - 获取帮助

    1 7 起步 获取帮助 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 19 初稿 目录 文章目录 1 7 起步 获取帮助 版本说明 目录 获取帮助 获取帮助 若你使用 Git 时需要获取帮助 有三种方法可以找到 Git
  • Vue中@click事件无效?@click.native中.native的含义和使用

    记录 click绑定事件的一个坑 问题描述 今天开发的时候 给组件绑定了 click事件 但是事件却没有执行 代码如下
  • 【Clion】自定义内容的自动补全——动态模板使用教程

    Clion的动态模板 动态模板的作用 实现自动补全 添加动态模板 添加动态模板的步骤 第一步是找到动态模板在哪里添加 打开clion的设置setting 找到编辑器选项editor 选择实时模板live template 选择C C 栏目
  • TCP协议疑难杂症全景解析

    说明 1 本文以TCP的发展历程解析容易引起混淆 误会的方方面面 2 本文不会贴大量的源码 大多数是以文字形式描述 我相信文字看起来是要比代码更轻松的 3 针对对象 对TCP已经有了全面了解的人 因为本文不会解析TCP头里面的每一个字段或者
  • Qt 主窗口与子窗口之间传值

    1 主函数向子函数传值 主窗口定义信号 子窗口定义槽函数 在主窗口将信号与槽连接起来 mainwindow h include