各位高手,我被一个问题困扰很久了,大家帮忙啊
一个按钮的一个clicked信号可以调用一个槽函数,这样的情况下,按钮少的情况下还可以,按钮太多的时候是不是太麻烦呢?
假如现在有一百个按钮,对应一百个槽函数,每个槽函数只需要进行简单的一个赋值,我想只用一个信号槽通过信号传递的方式就实现所有的赋值,不知道有没有什么好的方法?或者退而求其次,虽然使用100个信号槽连接,但通过参数传递只调用一个槽函数来实现所有的赋值,能否实现呢?
以100个按钮,对应100个赋值槽函数举例说明如下:
信号槽连接
{
int value[100];
connect(exam->pushButton_2,SIGN(clicked()),this,SLOT(assignment2()));
connect(exam->pushButton_3,SIGN(clicked()),this,SLOT(assignment3()));
connect(exam->pushButton_4,SIGN(clicked()),this,SLOT(assignment4()));
.............................
connect(exam->pushButton_97,SIGN(clicked()),this,SLOT(assignment97()));
connect(exam->pushButton_98,SIGN(clicked()),this,SLOT(assignment98()));
connect(exam->pushButton_99,SIGN(clicked()),this,SLOT(assignment99()));
}
槽函数定义
mainwindow::assignment2()
{
value[2] =1;
}
mainwindow::assignment3()
{
value[3] =1;
}
mainwindow::assignment4()
{
value[4] =1;
}
.........................
mainwindow::assignment97()
{
value[97] =1;
}
mainwindow::assignment98()
{
value[98] =1;
}
mainwindow::assignment99()
{
value[99] =1;
}
不知道有什么样的方法可以实现优化呢?忘各位高手指点啊!