首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

迷途的小羊

2012-03-25 
迷途的小羊求助在qt中的connect函数C/C++ codebool QObject::connect ( const QObject * sender, const ch

迷途的小羊求助
在qt中的connect函数

C/C++ code
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection )

中的sender与signal函数是如何是别的,
receiver 与 slot函数是如何识别;
例如把:
C/C++ code
for(int i = 0; i< MAXNUM ;i++)       spinBox = new QSpinBox[MAXNUM];       spinBoxSpd = new QSpinBox[MAXNUM];       {           connect(slider+i,SIGNAL(valueChanged(int)),spinBox+i,SLOT(setValue(int)));           connect(spinBox+i,SIGNAL(valueChanged(int)),slider+i,SLOT(setValue(int)));           connect(spinBox+i,SIGNAL(valueChanged(int)),this,SLOT(setmySliderData(int)));           connect(spinBoxSpd+i,SIGNAL(valueChanged(int)),SLOT(updateSpeed(int)));       }

这段代码中在setvalue(int)中识别他的接受者spinBox+i是数组spinBox中的第几个呢?
虽然我有点菜希望大家先帮我回答了再鄙视呵呵呵。。。

[解决办法]
没有完全明白你说的啥意思
估计你是信号和槽还理解的不深吧
你说的识别的意思我理解的你是不是要问怎么一个函数就是信号,一个函数就是槽函数?
这样的话信号和槽在类的声明的时候都是定义好的,signal:定义的函数是信号,slot:定义的是槽函数。
信号是用来发射的,可以带参数,槽函数首先就是一个普通的函数,你可以像正常的函数一样使用它。
信号函数声明后不必去实现,到哪是槽函数声明后是必须得去实现的
还有你问的第二个问题为什么能选中第几个,这就是信号和槽之间connect之后能够传递数据,就相当于复制粘贴一样,前提是connect的信号和槽函数参数要一致。比如你emit一个信号里面的参数是4,那么你和他相连的槽函数收到的数据也就是4了
至于对象的问题,那就一时半会也说不清了。总之信号和槽机制十分的强大,熟练掌握后机会没有办不到的,最好是多看看信号和槽机制的基础
楼主好运啊
看在打这么多字的份上,给点分吧
[解决办法]
语死早?我看了3遍没看懂说的啥。
for循环里, slider+i和spinBox+i的i当然是同一个值。
[解决办法]
探讨
在qt中的connect函数C/C++ code
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection )

中的sender……

[解决办法]
说了这么半天,是不是要知道是那个object发射的信号啊?
[解决办法]
数组中的每一个元素并不是指针~
[解决办法]
信号和槽没有本质区别,
不需要区分。

热点排行