• 3791阅读
  • 4回复

关于信号与槽  新手问题 [复制链接]

上一主题 下一主题
离线banyibanyi
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-24



connect(first_spinBox,SIGNAL(valueChanged(int)),this,SLOT(on_inputSpinBox()));
}
void add::on_inputSpinBox()
{
    result_label->setText(QString::number(second_spinBox->value() + first_spinBox->value()));
}


这里first_spinBox是一个Spin Box 我想做个很简单的加法器  两个SpinBox  和的值写到label里
我的信号和槽是这么写的  但没什么反映,刚学QT 困惑多多  请大家帮帮忙  谢谢了
离线banyibanyi

只看该作者 1楼 发表于: 2009-04-24
有人能帮忙解决一下吗  谢谢
离线banyibanyi

只看该作者 2楼 发表于: 2009-04-24
connect(first_spinBox,SIGNAL(valueChanged(int)),this,SLOT(on_inputSpinBox(int)));
}
void add::on_inputSpinBox(int s)
{
    result_label->setText(QString::number(s));
}

我简化成现在的样子,当信号一发送  程序就完蛋   为什么 大家帮忙看看
只看该作者 3楼 发表于: 2009-04-24
最可能的情况是……result_label指针无效
离线hercules

只看该作者 4楼 发表于: 2009-04-24
connect(first_spinBox,SIGNAL(valueChanged(int)),this,SLOT(on_inputSpinBox()));
}
void add::on_inputSpinBox()
{
   result_label->blockSignals(TRUE);
   result_label->setText(QString::number(second_spinBox->value() + first_spinBox->value()));
    result_label->blockSignals(FALSE);
}

setText()会emit valueChanged()这个signal,会造成dead loop
我的QQ号:337396132
欢迎大家加我为好友,一起学习Qt
快速回复
限100 字节
 
上一个 下一个