• 6778阅读
  • 9回复

QT中的signal函数的名字可以乱取吗~!? [复制链接]

上一主题 下一主题
离线kintam
 
只看楼主 倒序阅读 楼主  发表于: 2010-12-26
— 本帖被 XChinux 执行加亮操作(2011-01-18) —
关键词: 求助
一般来说,QT类中定义一个信号是这样的:

signals:
     void valueChanged(int);



我要问的是,可以这样吗~!?(随便定义一个函数名,随便定义一个函数原型)
signals:
     void fucktheQT(int);


或是:
signals:
     void fucktheQT(double);


signals:
     char *fucktheQT(int);


或是更多的情况~!?


具体来说,我觉得QT的信号函数的名字应该是固定的,而且每一个名字就对应一种“操作”的发生,比如void valueChanged(int);,应该是对应控件的值的变化,好像是拉杆的位置改变,或是某些框里面的数字输入改变,就好像VB那样,有控件被点击,控件被拖动,控件被输入,控件被怎么怎么样,每种情况都是固定好的,而每种情况在QT里面都有一个专用的函数原型,你需要的话就在signal:下面写就好了,如果系统发现sigal:下面的函数原型是系统没有的就会报错。请问我的理解正确吗~?!


如果不是这样,那我随便一个int fucktheQT(char *)又会是什么意思呢~!?
离线kintam
只看该作者 1楼 发表于: 2010-12-26
期待高手的出现~!!!!!!!!!!!
离线浪漫天使
只看该作者 2楼 发表于: 2010-12-26
可以,只要不是相关的关键字,不信你试试,不要没f之前就说不能f。
随便一个f***(int) 信号就是你想告诉这个信号的接收者你要f之。
至于参数int你可以表示f的长度,或者次数,或者其他,
这个就谁用谁知道。
[ 此帖被浪漫天使在2010-12-26 13:42重新编辑 ]
离线kintam
只看该作者 3楼 发表于: 2010-12-26
引用第3楼浪漫天使于2010-12-26 13:34发表的 :
可以,只要不是相关的关键字,不信你试试,不要没f之前就说不能f。
随便一个f***(int) 信号就是你想告诉这个信号的接收者你要f之。
至于参数int你可以表示f的长度,或者次数,或者其他,
这个就谁用谁知道。



不太明白,可以说的清楚一点吗~!?

那么click()这个信号,如果变成click(int)或是click(float),然后对点击控件仍然能触发click信号吗~!?
离线cycloneii

只看该作者 4楼 发表于: 2010-12-26
可以定义返回值非void的信号?不过那样有意义吗?信号肯定没有返回值的呀
离线浪漫天使
只看该作者 5楼 发表于: 2010-12-26
那么click()这个信号,如果变成click(int)或是click(float),然后对点击控件仍然能触发click信号吗~!?

click()这个信号

click(int)这个信号
这是两个完全不同的信号,参数也是一个关键。
就像戴tt的f与不戴tt的f是完全不同的。

qt系统内部对点击控件触发的永远都是 click()这个信号
而不是
click(int)这个信号

qt自己根本就就不知道click(int)是什么鸟。
离线浪漫天使
只看该作者 6楼 发表于: 2010-12-26
引用第5楼cycloneii于2010-12-26 14:13发表的  :
可以定义返回值非void的信号?不过那样有意义吗?信号肯定没有返回值的呀


个人觉得也是没有什么意义,
只管信号发出去,不管后面怎么样的 就像是打出去的信号弹。
或者 就像,不停的f,才不管被f的对象反应如何呢。
离线roywillow

只看该作者 7楼 发表于: 2010-12-26
信号的发出其实是你在代码中自己实现的,用emit发出信号
所以信号的名字是可以随便取,只要是合法的就可以
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ronaldo_s
只看该作者 8楼 发表于: 2011-01-27
只有不是QT类自己定义好的信号,你自己定义的信号,都可以随便取名的吧
离线梅克斯
只看该作者 9楼 发表于: 2011-01-27
信号要弄void类型吧,其他取什么名字就随意了
快速回复
限100 字节
 
上一个 下一个