将 QLabel 连接到 QSlider 时出现问题

Problem with connecting QLabel to QSlider

我有问题。我创建了一个 class,其中有一个滑块和一个标签。我想将它们与 QObject::connect 连接起来,但是当我这样做时,没有任何反应。你能告诉我我做错了什么吗?

我的class:

class Loads :public QObject
{
    Q_OBJECT

public:
    QSlider slider;
    QLabel label;
    QMainWindow okno;
    Loads();

private:
    int wart;

public slots:
    void zmiana(int li);

};

Class “加载”构造函数:

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 对象。