问题描述
我有问题。我创建了一个类,其中有一个滑块和一个标签。我想将它们与QObject :: connect连接起来,但是当我这样做时,什么也没发生。你能告诉我我在做什么错吗?
我的课程:
class Loads :public QObject
{
Q_OBJECT
public:
QSlider slider;
QLabel label;
QMainWindow okno;
Loads();
private:
int wart;
public slots:
void zmiana(int li);
};
“负载”类的构造函数:
Loads::Loads()
{
okno.setGeometry(300,300,300);
label.setParent(&okno);
slider.setParent(&okno);
label.setGeometry(0,200);
slider.setGeometry(0,200,100);
slider.setMinimum(1);
slider.setMaximum(30);
label.setText("0");
wart=0;
QObject::connect(this,SIGNAL( slider.valueChanged(int)),this,SLOT( zmiana(int)) );
okno.show();
}
我的“ zmiana”广告位
void Loads::zmiana(int li)
{
wart=li;
label.setText(QString::number(li));
}
解决方法
QObject::connect(this,SIGNAL( slider.valueChanged(int)),this,SLOT( zmiana(int)) );
我认为这是不对的,您正在将Loads
对象的信号连接到插槽,但是Loads
对象不是 一个生成信号的对象,slider
对象就是这样做的。
因此,我认为您将需要slider
作为第一个参数,而不是this
。我相信使用this
作为第三个参数是可以的,因为插槽确实属于Loads
对象。