pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用發(fā)射與調(diào)用信號,就好像它是 Qt 中的常規(guī)函

Using emit vs calling a signal as if it#39;s a regular function in Qt(使用發(fā)射與調(diào)用信號,就好像它是 Qt 中的常規(guī)函數(shù)??一樣)
本文介紹了使用發(fā)射與調(diào)用信號,就好像它是 Qt 中的常規(guī)函數(shù)??一樣的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

假設(shè)我有這個信號:

signals:
    void progressNotification(int progress);

我最近才知道 Qt 中的 emit 關(guān)鍵字.到現(xiàn)在為止,我曾經(jīng)通過像普通函數(shù)一樣調(diào)用它們來執(zhí)行信號.所以,而不是:

I only recently learned about the emit keyword in Qt. Until now, I used to execute signals by just calling them like a regular function. So instead of:

emit progressNotification(1000 * seconds);

我會寫:

progressNotification(1000 * seconds);

像這樣調(diào)用它們似乎可行,并且所有連接的插槽都會執(zhí)行,所以使用emit 關(guān)鍵字會導(dǎo)致不同的行為,還是只是語法糖?

Calling them like that seemed to work, and all the connected slots would execute, so does using the emit keyword cause a different behaviour, or is it just syntactic sugar?

推薦答案

emit 只是語法糖.如果您查看發(fā)出信號的函數(shù)的預(yù)處理輸出,您會看到 emit 剛剛消失.

emit is just syntactic sugar. If you look at the pre-processed output of function that emits a signal, you'll see emit is just gone.

魔術(shù)"發(fā)生在信號發(fā)射函數(shù)的生成代碼中,您可以通過檢查由 moc 生成的 C++ 代碼來查看.

The "magic" happens in the generated code for the signal emitting function, which you can look at by inspecting the C++ code generated by moc.

例如一個沒有參數(shù)的 foo 信號生成這個成員函數(shù):

For example a foo signal with no parameters generates this member function:

void W::foo()
{
    QMetaObject::activate(this, &staticMetaObject, 0, 0);
}

并且代碼emit foo();被預(yù)處理為簡單的foo();

And the code emit foo(); is pre-processed to simply foo();

emitQt/qobjectdefs.h 中定義(無論如何都是開源的),像這樣:

emit is defined in Qt/qobjectdefs.h (in the open-source flavor of the source anyway), like this:

#ifndef QT_NO_EMIT
# define emit
#endif

(定義保護(hù)是允許您通過 no_keywords QMake 配置選項將 Qt 與具有沖突名稱的其他框架一起使用.)

(The define guard is to allow you to use Qt with other frameworks that have colliding names via the no_keywords QMake config option.)

這篇關(guān)于使用發(fā)射與調(diào)用信號,就好像它是 Qt 中的常規(guī)函數(shù)??一樣的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 包塑软管|金属软管|包塑金属软管-闵彬管业 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 柴油机_柴油发电机_厂家_品牌-江苏卡得城仕发动机有限公司 | 信阳市建筑勘察设计研究院有限公司 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 中控室大屏幕-上海亿基自动化控制系统工程有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 铸铁平台,大理石平台专业生产厂家_河北-北重机械| 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 真空上料机(一种真空输送机)-百科 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 |