簡體   English   中英

QT中的信號槽

[英]SIGNAL SLOT in QT

我在VS2013中編寫了一個簡單的QT計算器。 我使用信號released()來調用我的插槽,但是我的插槽不起作用。 也許我的信號從未觸發。 我是QT的新手,我不知道自己做錯了什么。

我的班級有這個財產:

class Calculator : public QMainWindow
{
Q_OBJECT

public:
    Calculator(QWidget *parent = 0);
    ~Calculator();

private slots:
    void Calculator::two();
private:
    QLabel *lable;  
    QPushButton *two_button;
    QString value;
    QString total;
    int fnum;
    int snum;
    bool addbool;
    bool subtractbool;
    bool multiplybool;
    bool devidebool;
};

這是我的代碼行,用於將信號連接到插槽:

one_button = new QPushButton("2", this);

connect(two_button, SIGNAL(released()), this, SLOT(two()));

我的位置是

void Calculator::two()
{
    value = value+"2";
    lable->setText(value);
}

我在插槽中放置了一個斷點,但是它從未達到斷點。

您應該檢查connect功能的結果。 如果您使用的是舊的信號/插槽語法,則需要使用與您提供的connect方式相同的方式來定義插槽,因此

// this seems to be a non-standard extension of MSVC
// doesn't even compile under gcc, clang
void Calculator::two(); 

應該成為

void two();

但是您應該使用Qt 5引入的語法:

connect(two_button, &QPushButton::released, this, &Calculator::two);

沒關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM