[英]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.