在Qt的开发过程中,信号带参数是很常见的,在使用带参数的信号槽时,有以下几点需要注意。

  • 当信号和槽函数的参数数量相同时,它们的参数类型要完全一致。

信号和槽函数的声明:

signals:
void iSignal(int b);
void strSignal(QString str);
public slots:
void iSlots(int b);
void strSlots(QString str);

信号和槽函数的绑定:

    connect(this,SIGNAL(iSignal(int)),
this,SLOT(iSlots(int))); connect(this,SIGNAL(strSignal(QString)),
this,SLOT(strSlots(QString)));

发射信号:

    emit iSignal(5);
emit strSignal("hello word");

槽函数的实现:

void MainWindow::iSlots(int b)
{
qDebug() << "b = " << b;
} void MainWindow::strSlots(QString str)
{
qDebug() << str;
}
  • 当信号的参数与槽函数的参数数量不同时,只能是信号的参数数量多于槽函数的参数数量,且前面相同数量的参数类型应一致,信号中多余的参数会被忽略。

信号:

    void iSignal(int b,int a);

响应信号的槽函数:

void MainWindow::iSlots(int b)
{
qDebug() << "b = " << b;
}
  • 在不进行参数传递时,信号槽绑定也是要求信号的参数数量大于等于槽函数的参数数量,这种情况一般是一个带参数的信号去绑定一个无参数的槽函数。

信号:

    void iSignal(int b,int a);

响应信号的槽函数:

void iSlots();

信号和槽函数的绑定:

    connect(this,SIGNAL(iSignal(int,int)),
this,SLOT(iSlots()));

Qt带参数的信号和槽的更多相关文章

  1. Qt 信号槽如何传递参数(或带参数的信号槽)

                                    信号槽如何传递参数(或带参数的信号槽) 利用Qt进行程序开发时,有时需要信号槽来完成参数传递.带参数的信号槽在使用时,有几点需要注意的地 ...

  2. 第七章 探秘Qt的核心机制-信号与槽

    第七章 探秘Qt的核心机制-信号与槽 注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用 ...

  3. Qt Quick 事件处理之信号与槽(foruok的博客)

    前面两篇文章<QML 语言基础>和<Qt Quick 简单教程>中我们介绍了 QML 语言的基本语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经可以完成简 ...

  4. Qt Quick 事件处理之信号与槽

    前面两篇文章<QML 语言基础>和<Qt Quick 简单教程>中我们介绍了 QML 语言的基本的语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经能够完毕 ...

  5. 2.QT-窗口组件(QWidget),QT坐标系统,初探消息处理(信号与槽)

    本章主要内容如下: 1) 窗口组件(QWidget) 2) QT坐标系统 3) 消息处理(信号与槽) 窗口组件(QWidget) 介绍 Qt以组件对象的方式构建图形用户界面 Qt中没有父组件的顶级组件 ...

  6. Qt对象模型之一:信号和槽

    一.信号和槽机制概述 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal).这种发出是没有目 ...

  7. PyQt Designer中带参数的信号为什么匹配不到带参数的槽函数?

    老猿在学习ListView组件时,想实现一个在ListView组件中选中一个选择项后触发消息给主窗口,通过主窗口显示当前选中的项的内容. 进入QtDesigner后,设计一个图形界面,其中窗口界面使用 ...

  8. Qt 编程指南 3 信号和槽沟通

    https://qtguide.ustclug.org/ 1 信号和槽 所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座.怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键, ...

  9. QT(4)信号与槽

    mainWidget.h #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QWidget> #include <QPushBu ...

随机推荐

  1. C#读取word文档中的内容

    原文地址 http://blog.csdn.net/yhrun/article/details/7674540 在使用前需要添加引用巨硬的com组件:Microsoft Word 12.0 objec ...

  2. Windows下启动.Net Core程序脚本

    @echo offstart cmd /k "cd /D %~dp0&&dotnet xxx.dll" cmd /k 是执行完dir命令后不关闭命令窗口 cd /d ...

  3. NDK下编译JNI

    NDK环境下编译JNI 下载demo.tar.gz然后解压 弄个套路 1.编辑build.sh设置好NDK目录 2.把cpp文件放到code下面 运行sh build.sh即可

  4. serial redirection

    int setOption(int fd,int nSpeed, int nBits, char mode,char nEvent, int nStop) { struct termios newti ...

  5. c# 窗口关闭方法

    背景:点击datagridview某条信息弹出信息详情窗口,当连续点击时需要关闭之前的详情窗口. 实现方式: 父窗口中 全局创建子窗口(MsgDetailFrm  ): MsgDetailFrm de ...

  6. laravel 配置双模板引擎

    有时候我们可能有这种需求,pc 和 mobile 端显示的页面不一样,这个时候,我们就需要判断设备类型: ****我们用  composer require whichbrowser/parser  ...

  7. CSS3 基础

    style 标签 <style type="text/css"> h1 { font-size:12px; color:#F00; } </style> 行 ...

  8. 获取当前页面的title

    #-*-coding:utf-8-*-from selenium import webdriverdriver = webdriver.Firefox()driver.get("https: ...

  9. node.js中的 compression 中间件

    NodeJs——express启用gzip gzip是用于压缩,js.css等文件的压缩 具体方法如下: 先安装一个依赖 npm install compression --save 在项目的 app ...

  10. [转帖]CGI与ISAPI的区别(转)

    CGI与ISAPI的区别(转) 不知道原始网站是哪个 博客园里面也是转帖的 https://www.cnblogs.com/eret9616/p/8515095.html 不过我还是不了解CGI和IS ...