【发布时间】:2017-02-23 18:42:03
【问题描述】:
我在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);
}
我在插槽中设置了一个断点,但它从未命中断点。
【问题讨论】:
-
您是不是要使用
clicked()而不是released()? -
@Mike release 也应该被调用,虽然我猜当你点击按钮时。
-
你声明你的槽错误:不是
void Calculator::two();,而是void two(); -
one_button = new QPushButton("2",this);但connect(two_button,SIGNAL(re...处的错字?