2013-01-02 59 views
0

我試圖用QSlider改變一個變量的值的值,使用QSlider改變的變量

#include <QSlider> 

class MainThread : public QWidget{ 
Q_OBJECT 
public: 
MainThread(QWidget *parent=0); 
private slots: 
    void setValue(double); 
private: 
QSlider *slider; 
}; 

MainThread::MainThread(QWidget *parent):QWidget(parent){ 
    slider = new QSlider(Qt::Horizontal,0); 
    connect(&slider, SIGNAL((slider->valueChanged())), 
      this, SLOT(setValue(double))); // here's my problem 
    ... 
} 

我的問題是我怎麼能滑塊的SIGNAL連接到setValue(double) SLOT 。

在此先感謝。

+0

你爲什麼不讀Qt文檔?有「入門」教程,你將學習如何使用Qt信號和插槽 –

+0

我做了,這只是我的代碼的一部分,我一直在使用SLOTS和信號,但它不能與QSLIDER – Engine

回答

2

滑塊已經是一個指針,例如,刪除'&'

connect(slider, SIGNAL((slider->valueChanged())), this, SLOT(setValue(double))); 

編輯:這不起作用,因爲信號沒有參數。 將setValue(double)重命名爲setValue(),並使用slider-> value()從滑塊中獲取值。

+0

謝謝謝謝samuel,它解決了語法錯誤,但我仍然有一個編譯錯誤 – Engine

+0

錯誤LNK2019:無法解析的外部符號「private:void __thiscall MainThread :: setValue(int) – Engine

+0

當然,你需要實現setValue函數,它是一個插槽,而不是信號 – elsamuko