将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);
    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对象。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...