最近在学习qt tutorial。今天学习到了t7,遇到点有点麻烦。
t7的lcdrange.cpp中,有两个成员函数是这样实现的
LCDRange::LCDRange(QWidget *parent)而我做了两处修改
:QWidget(parent)
{
QLCDNumber *lcd = new QLCDNumber(2);
lcd->setSegmentStyle(QLCDNumber::Filled);
slider = new QSlider(Qt::Horizontal);
slider->setRange(0,99);
slider->setValue(0);
connect(slider, SIGNAL(valueChanged(int)),
lcd, SLOT(display(int)));
connect(slider, SIGNAL(valueChanged(int)),
this, SIGNAL(valueChanged(int)));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lcd);
layout->addWidget(slider);
setLayout(layout);
}
void LCDRange::setValue(int value)
{
slider->setValue(value);
}
LCDRange::LCDRange(QWidget *parent)结果LCDRange就不对外发送signal了。看来自己对signals and slots机制还是没有透彻的理解,还要加强学习。
:QWidget(parent)
{
QLCDNumber *lcd = new QLCDNumber(2);
lcd->setSegmentStyle(QLCDNumber::Filled);
slider = new QSlider(Qt::Horizontal);
slider->setRange(0,99);
slider->setValue(0);
connect(slider, SIGNAL(valueChanged(int)),
lcd, SLOT(display(int)));
// connect(slider, SIGNAL(valueChanged(int)),
// this, SIGNAL(valueChanged(int)));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lcd);
layout->addWidget(slider);
setLayout(layout);
}
void LCDRange::setValue(int value)
{
slider->setValue(value);
emit valueChanged(value);
}
记之!等以后功力深厚了,看看是什么问题。