标题:【提问】singal与slot问题!
作者:daydayup
日期:2005-09-15 11:42
内容:
请问如果我在一个循环中创建了n个QCheckBox,想在循环中实现信号和槽的关联,但是在槽中带参数i却老是不行,简单代码如下:
for(int i=0;i
#1 [myer 09-15 11:50]
checkBox_Call(i) 的i怎么能由 clicked() 传进来呢?
除非一个无参数的signal会变魔术:)
既然是checkbox,clicked后状态是可以读到的,在处理函数中不用知道是谁触发的。
如果需要知道触发对象,使用参考QObject。
#2 [yfy002 09-15 14:51]
connect(checkBox, SIGNAL( clicked() ), this, SLOT(checkBox_Call(QCheckBox *) ));
不知道这样是否可以
在checkBox_Call(QCheckBox *name) 槽中根据CheckBox的值分别处理,我想这样因该是可以的。
#3 [daydayup 09-15 18:01]
我的意思是想在checkBox_Call中得到i的值,以为在槽中要用到这个i.以为n比较大,我想通过i的值判断是哪个QCheckBox.
#4 [daydayup 09-15 18:01]
不好意思,打错了,不是"以为",是"因为".
#5 [tdrhsb 09-17 19:47]
QCheckBox继承了QButton,它的信号有
void pressed ()
void released ()
void clicked ()
void toggled ( bool on )
void stateChanged ( int state )
只有void toggled ( bool on )和void stateChanged ( int state )有参数,其他的都没有参数
connect( checkBox, SIGNAL( clicked() ), this, SLOT( checkBox_Call() ) )应该是没有问题,
好像无法获取你的i值。
你如果有一组的QCheckBox你可以用QGroupBox把它们组合在一起。