将QLabel连接到QSlider时出现问题



我有个问题。我创建了一个类,其中有一个滑块和一个标签。我想用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,300);
label.setParent(&okno);
slider.setParent(&okno);
label.setGeometry(0,0,300,200);
slider.setGeometry(0,200,300,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对象。

最新更新