首页 > 其他分享 >QT信号槽Connect最后一个参数

QT信号槽Connect最后一个参数

时间:2023-07-30 16:23:52浏览次数:36  
标签:QT 发送 线程 Connect 信号 参数 接收 连接 Qt

connect函数最后一个参数是Qt::ConnectionType,该参数指明信号槽的连接方式。

 

    1. 先说说什么是信号槽吧:

    当一个对象发生变化,想让与之相关联的其他对象对这个变化做出响应,这时候我们就需要不同对象(这些对象可能在不同线程)的通信。

     qt不同于其他框架的最主要特征是可以通过信号槽机制在两个对象之间通信,甚至可以跨线程通信。

 

  2. 那么信号槽就分为发出的信号(发送方)和接收的槽(接收方)是在同一线程和不同线程的两种场景。针对这两种场景,在connect连接信号槽的时候,由最后一个参数指明信号槽的连接方式:

    1)Qt::AutoConnection:默认方式,如果最后一个参数缺省时,自动设置为该自动连接方式。当发送方和接收方在同一线程的的时候相当于DirectConnection,在不同线程相当于QueuedConnection。此时连接类型是在发送方发出信号时确定的。

    2)Qt::DirectConnection:槽函数在信号发出时直接被调用,相当于槽函数运行于在信号发出的位置,槽函数执行完毕再继续执行发出信号后的部分。所以该连接方式适用于发送方接收方在同一线程的情况,如果多线程情况可能会造成崩溃。

    3)Qt::QueuedConnection:适用多线程异步场景,发送方发送信号之后会继续向下执行,无须等待槽函数执行完。槽函数在接收方线程事件队列中处理,不实时调用。

    4) Qt::BlockingQueuedConnection:适用于多线程同步场景,信号发出后,由接收方线程事件队列处理,但是在槽函数执行完成之前,发送方所在的线程会阻塞。如果发送方和接收方在同一线程,不可使用该方式连接。

    5)Qt::UniqueConnection:防止重复连接,这是一个标志位,可与前面四个类型通过按位或( | )的方式组合。使用该种方式连接,如果相同的信号槽已经建立过连接,再次连接将会失败。

标签:QT,发送,线程,Connect,信号,参数,接收,连接,Qt
From: https://www.cnblogs.com/ping-code/p/17591604.html

相关文章

  • Revit二次开发-获取族类型以及族参数值
      在族环境中获取当前族的所有族类型以及族类型对应的所有参数和参数值。直接上代码~publicoverrideResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements){vardoc=commandData.Application.ActiveUIDocument......
  • HuggingFace | config.json参数讲解
    在HuggingFace中,config.json文件是用于配置预训练模型参数的文件。这个文件通常包含了模型的架构、超参数和其他模型配置信息。它是一个JSON格式的文件,可以在加载模型时用来初始化模型的配置。在加载模型时,from_pretrained()方法通常会自动加载相应的config.json文件。例如,BertF......
  • 关于使用Qt.labs.platform在arch中报错 ERROR: No native FileDialog implementation
    当跟着QtBook的章节QtQuickControls编写一个ImageViewer,运行时报错:ERROR:NonativeFileDialogimplementationavailable.QtLabsPlatformrequiresQtWidgetsonthissetup.Add'QT+=widgets'to.proandcreateQApplicationinmain().尝试过搜索在cmake中引入Q......
  • Day6: Shell函数和参数传递
    学习目标学习内容1.函数的定义和调用2.参数传递3.返回值4.练习任务大树哥个人信息学习目标学习Shell中函数的概念和用法。理解如何在函数中定义和调用命令序列。掌握如何传递参数给函数并获取返回值。练习编写脚本,使用函数进行模块化编程。学习内容今天我们将学习如......
  • oracle 参数建议和详解
    隐藏参数_optimizer_adaptive_cursor_sharing建议关闭隐藏参数_optimizer_adaptive_cursor_sharing只有在开启了_optim_peek_user_binds后才有意义,它可以防止不合理的执行计划,但是在实际生产环境中,_optimizer_adaptive_cursor_sharing会带来各种问题,产生bug,因此建议关闭该参......
  • 解决QT QGraphicsView提升到QChartView报错的问题
    使用QT提供的QChartView来绘制图表,提升QGraphicsView控件继承QChartView后,然后将QGraphicsView提升到我们自己写的类,怎么才能确保提升后编译不报错呢。[问题描述]使用QGraphicsView显示图表的时候,我们需要将它提升为QChartView.但提升后再此运行一般会发生编译报错,错误发生在......
  • 【VS Code 与 Qt6】QAction 类的一些事
    QAction类表示用户命令的一种抽象,包括命令文本、图标、命令触发后要执行的代码。菜单、工具栏按钮往往存在相同的功能,将这些命令独立抽出来,放到QAction以象上,可避免编写重复的代码。比如“文件”菜单下有“保存”命令,工具栏上也会有“保存”按钮。因此,创建一个表示“保存”的Q......
  • SAP Fiori Elements 应用加载时的 url 参数 sap-ui-xx-viewCache=false
    SAPFioriElements是SAP提供的一种UI技术,其主要目的是提供一种快速、简单、一致且易于维护的方式来开发SAP用户界面。而sap-ui-xx-viewCache=false是一个URL参数,用于控制FioriElements应用的视图缓存。在SAPFioriElements中,视图缓存是一个可以提高应用性能的......
  • SAP UI5 OData 请求 url 中的参数 sap-value-list=none
    SAPUI5是一个基于JavaScript的用户界面技术,用于构建企业级web应用程序。OData(OpenDataProtocol)是一个开放标准,允许消费者查询和操作数据。在SAPUI5应用中,OData服务用于处理数据交换。当SAPUI5应用加载时,应用会自动发起一个OData元数据请求,这是因为应用需要从服务端获取元数......
  • 微信小程序 button 等组件单击动态传递参数
    首先在小程序端,加入一个data-*的参数,‘*’需要是小写,若写成大写会被转换为小写,支持‘-’号,如<buttonbindtap="button-click"data-abc="{{value}}"></button>然后在js文件中实现‘click’方法,通过event.currentTarget.dataset.*获取在小程序端写的值button-click:function(e......