C++库QT的一个问题,在一个SLOT(槽)函数中不能emit SIGNAL吗?
刚学QT,想用用看emit机制,但发现我emit出去的SIGNAL没有被响应LCDSum::LCDSum(QWidget*parent):QWidget(parent){...
刚学QT,想用用看emit机制,但发现我emit出去的SIGNAL没有被响应
LCDSum::LCDSum(QWidget *parent)
: QWidget(parent)
{
lcd = new QLCDNumber(4);
lcd->setSegmentStyle(QLCDNumber::Filled);
connect(this, SIGNAL(ValueChanged(int)), this, SLOT(display(int)));
num = 0;
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lcd);
setLayout(layout);
}
void LCDSum::addPt(LCDRange *p) {
pt[num++] = p;
}
void LCDSum::valueUp(int value)
{
int mm = 0;
for (int i = 0;i < num;i++)
mm += pt[i]->value();
emit valueChanged(mm);
}
void LCDSum::display(int value)
{
lcd->display(value);
}
在前面我connect过了,使用时发现没效果。
connect(this, SIGNAL(ValueChanged(int)), this, SLOT(display(int)));
兄弟们我发现哪里错了,是大小写写错了!!!坑爹,编译器怎么不提醒我没有这个SIGNAL,我随便找个人给正解吧。 展开
LCDSum::LCDSum(QWidget *parent)
: QWidget(parent)
{
lcd = new QLCDNumber(4);
lcd->setSegmentStyle(QLCDNumber::Filled);
connect(this, SIGNAL(ValueChanged(int)), this, SLOT(display(int)));
num = 0;
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lcd);
setLayout(layout);
}
void LCDSum::addPt(LCDRange *p) {
pt[num++] = p;
}
void LCDSum::valueUp(int value)
{
int mm = 0;
for (int i = 0;i < num;i++)
mm += pt[i]->value();
emit valueChanged(mm);
}
void LCDSum::display(int value)
{
lcd->display(value);
}
在前面我connect过了,使用时发现没效果。
connect(this, SIGNAL(ValueChanged(int)), this, SLOT(display(int)));
兄弟们我发现哪里错了,是大小写写错了!!!坑爹,编译器怎么不提醒我没有这个SIGNAL,我随便找个人给正解吧。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询