初学Qt之--带参数的信号和槽的实现(入门级)

2023-10-29

初次接触Qt,由于只有C语言的基础,弄起来很是头疼。下面这个Qt带参数的信号与槽的实例仅供入门之用,高手免观(Qt 4.4.0 实现)

废话不多说,直接上代码:

/*********MyMainWindows.h**************/

#ifndef MYMAINWINDOWS_H_
    #define MYMAINWINDOWS_H_
    #include <QWidget>                        
    #include <QPushButton>                   
    #include <QLineEdit>                      
    #include <QLabel>  

    //申明一个MyMainWindows类,这个类用于实现窗体                      
    class MyMainWindows:public QWidget       
    {                                                      
     Q_OBJECT //Q_OBJECT是在定制信号和槽和必须包含的一条宏语句                             
    public:                                                   
        MyMainWindows();   //类构造函数(用于实现程序的主体部份)                  
    public slots:          //所有的槽函数都必须申明public slots语句内                     
          void SlotTest(); //这个槽函数用于显应点击按钮时改变文本框内容                    
  private:
        QPushButton * pb;  //申请一个按钮QPushButton                   
        QLineEdit * ledit; //申请一个文本框ledit                     
        QLabel * label;    //申请一个文本标签label                      
     signals:              //所有信号都需要申明在signals语句内                  
       void SigTest(QString text);   //自定义的带参数的信号SigTest(QString text)。                     
    }; 
    #endif    

/*************MyMainWindows.cpp****************/

#include "MyMainWindows.h"

MyMainWindows::MyMainWindows()
{
  setGeometry(90,90,300,200);
  pb = new QPushButton("Modify",this);
  pb->setGeometry(10,10,100,20);
  ledit = new QLineEdit("what's your name",this);
  ledit->setGeometry(10,30,200,150);
  label = new QLabel("I am a Label",this);     
  label->setGeometry(115,10,100,20);
  connect(pb,SIGNAL(clicked()),this,SLOT(SlotTest())); 
   
  //连接自定义信号SigTest(QString)和QLineEdit中的预定义槽setText(QString)
  connect(this,SIGNAL(SigTest(QString)),ledit,SLOT(setText(QString))); 
}

 //实现用于接受pb点击信号的槽   
void MyMainWindows::SlotTest()                     
{
  label->setText("clicked");
  
  //发送自定义的信号,请注意信号的参数类型和个数要和槽一样
  emit SigTest("Hello,I am Keyunchuan");   
}



/**************Main.cpp**************/

#include <QApplication>           //所有QT应用程序都要包含QApplication头文件   
#include "MyMainWindows.h"
              
int main(int argc,char * argv[])
{
  QApplication app(argc,argv);    //申明一个QT应用程序对像app    
  MyMainWindows w;                //申明我们实现MyMainWindows窗体对像 w.      
  w.show();                       //显示这个w 窗体         
  return app.exec();
}

然后附上运行时截图:


点击pb后


谢谢围观,如有改进之处,敬请留言。

(----------完---------)

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

初学Qt之--带参数的信号和槽的实现(入门级) 的相关文章

  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 了解 Qt3D 创建的网格

    我创建了一个 Qt3D 网格 如下所示 Qt3DCore QEntity newEntity new Qt3DCore QEntity Qt3DExtras QConeMesh mesh new Qt3DExtras QConeMesh m
  • PyQt4 信号和槽

    我正在使用 PyQt4 编写我的第一个 Python 应用程序 我有一个 MainWindow 和一个 Dialog 类 它是 MainWindow 类的一部分 self loginDialog LoginDialog 我使用插槽和信号 这
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • 即使我在单独的线程中运行,QT GUI 也会冻结

    我有一个小型聊天应用程序 其中使用 SQLite 数据库来存储所有对话 我注意到该应用程序随机冻结 然后我必须最小化和最大化它才能使其再次工作 我认为问题可能是 SQLite 选择 插入导致 gui 冻结 我决定尝试将所有 SQLite 方
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

  • Hadoop从零开始教程第一篇(在linux上安装hadoop集群centos7+hadopp3.2)

    Hadoop简介 Hadoop是Apache旗下的一套开源分布式计算平台 应用范围 利用服务器集群 根据用户的自定义业务逻辑 对海量数据进行分布式处理 核心组件 HDFS 分布式文件系统 高容错性 高伸缩性等允许用户将Hadoop部署在低廉
  • vue实现导出excel的两种方式

    需求说明 通过vue实现导出有两种方式 1 后端返回的是一个地址 直接拼接打开下载就行 2 后端返回的是文件流的形式 这个时候就需要在请求头还有返回值的地方设置一下 一 后端返回的是地址 页面代码
  • 条件数(condition number)

    首先引入维基上的解释 In the field of numerical analysis the condition number of a function with respect to an argument measures ho
  • COLMAP简明教程 重建 转化深度图 导出相机参数 导入相机参数 命令行

    COLMAP简明教程 导入指定参数 命令行 导出深度图 COLMAP是经典的3D重建 SfM 深度估计开源工作 配置和安装按下不表 本文主要从命令行的角度 对COLMAP的基本用法做教程 并备收藏和笔记 对指定图像进行重建和深度估计 准备好
  • 内存管理解析(2) 字节对齐详解

    很想贴出转载链接 找不到原来看的资料了 只有从个人记录的笔记上挪过来 如有错误请留言指正 目录 一 什么是字节对齐 二 为什么要字节对齐 三 有哪些对齐形式 1 结构体对齐 对齐值 对齐准则 对齐的隐患 更改对齐方式 2 栈内存对齐 3 位
  • python如何创建空集合_python 集合

    一 创建集合 创建集合使用 或 set 但是如果要创建空集合只能使用 set 因为 用来创建空字典 s1 10 20 30 40 50 print s1 50 20 40 10 30 s2 10 30 20 10 30 40 30 50 p
  • 大端模式、小端模式及其在Qt中的转换

    大端模式和小端模式是计算机中经常涉及到的两种字节序 也有大端对齐 小端对齐 大尾 小尾等叫法 一 起源 说起这两种模式 就不得不提一下大端 Big endian 和小端 Little endian 这两个英文上的起源 endian 一词来源
  • 【LeetCode】二分法总结

    二分法总结 二分模板 找第一个大于等于target的 找第一个大于target的 33 搜索旋转排序数组 34 在排序数组中查找元素的第一个和最后一个位置 木头切割 二分模板 满足条件就写l mid 或 r mid 找第一个大于等于targ
  • 华为自带浏览器书签删除了怎么恢复_1 秒钟,这个工具能导出你浏览器全部重要数据...

    原标题 1 秒钟 这个工具能导出你浏览器全部重要数据 之前跟大家安利各类浏览器的时候 总有机友问换了浏览器 迁移数据咋办 这个问题确实有点复杂 像我自己 手机电脑加起来常用的浏览器有六七个 Chrome 系的用谷歌账户同步数据 微软系的用微
  • 数字图像处理:基于NDVI的遥感影像植被提取

    文章目录 一 实验任务与内容 二 实验原理 三 编程思路 四 实验成果图 五 源代码 ImageProcessing h ImageProcessing cpp Main cpp 一 实验任务与内容 利用VC 编写计算植被指数的程序 1 采
  • Win10系统mvn -version命令不是内部命令 也不是可运行的程序

    最近遇到一个问题 在cmd命令下查找mvn version提示 命令不是内部命令 也不是可运行的程序 网上搜了各种解决办法 例如设置MAVEN HOME M2 HOME等均不行 由于目前使用的是Win10系统 可能是因为系统不同 后来找到一
  • 有哪些前端可以做的性能优化点

    前端性能优化是一个广泛的主题 涉及许多不同的技术和策略 以下是一些常见的前端性能优化点 资源压缩和最小化 使用工具如Terser来压缩和最小化JavaScript代码 使用CSS压缩工具如CSSNano 压缩HTML内容 图片优化 使用适当
  • Java垃圾回收机制

    一 如何确定某个对象是 垃圾 既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用 那么垃圾收集器如何确定某个对象是 垃圾 以及通过什么方法判断一个对象可以被回收了 在java中是通过引用来和对象进行关联的 也就是说如果要操作对象 必
  • 开放本地数据库局域网共享

    1 先进去我们的本地数据库 mysql u root p 进入我们的数据库 会提示让你输入密码 输入你本地的数据库密码 然后进入 2 use mysql 自带的数据库 select host user from user 3 你可以看到 每
  • Ubuntu下安装Kdevelop IDE和使用教程

    一 在终端输入下面指令安装Kdevelop 要连接网络 先安装cmake sudo apt get install cmake 安装kdevelop sudo apt get install kdevelop 二 新建工程 安装好之后 在搜
  • Tomcat配置问题:Warning:The selected directory is not a TomEE home

    问题描述 在使用IDEA进行Tomcat配置时 发生如下警告 提示 因为是警告就没太在意 配置完成后进行启动 发现变成了 错误 原因分析 产生这个的原因其实是因为自己的一个小疏忽 在配置Tomcat的时候 选择了TomEE Server 解
  • python爬虫实战(1)--爬取新闻数据

    想要每天看到新闻数据又不想占用太多时间去整理 萌生自己抓取新闻网站的想法 1 准备工作 使用python语言可以快速实现 调用BeautifulSoup包里面的方法 安装BeautifulSoup pip install Beautiful
  • 责任链模式二

    本文以创建商品案例来讲解责任链模式 假设创建商品逻辑分为 1 创建商品 2 检验商品 3 保存商品 第二步中校验商品又分为多种情况 必填字段校验 规格校验 价格校验 库存校验等等 伪代码如下 public Result createProc
  • 值不值

    Hi 我是小小 今天是本周的第五篇 主要内容是jpa的入门 现在开始今日内容 数据准备 数据库使用的数据表设计如下 建表语句如下 SET NAMES utf8mb4 SET FOREIGN KEY CHECKS 0 Table struct
  • 初学Qt之--带参数的信号和槽的实现(入门级)

    初次接触Qt 由于只有C语言的基础 弄起来很是头疼 下面这个Qt带参数的信号与槽的实例仅供入门之用 高手免观 Qt 4 4 0 实现 废话不多说 直接上代码 MyMainWindows h ifndef MYMAINWINDOWS H de