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);
,这并不重要。
相关文章:
- Qt VTK交互风格的信号到小部件
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- Qt将信号与另一个类方法连接
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 控制带有信号/插槽的Qt QML滑动视图
- Qt 信号/插槽问题
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- Qt:如何通知对象已建立涉及它的信号槽连接
- Qt/C++ 系统单元启动/停止时的信号
- C++Qt信号和插槽
- Qt moveToThread,带有参数的信号/插槽
- 如何在Qt测试框架中对信号进行基准测试?
- Qt - Q_PROPERTY的通知信号未发出有关成员更改的通知信号
- 当再次触发信号时,从Qt插槽执行的功能被第二次调用时会发生什么?
- 使用std::move将std::unique_ptr作为qt信号参数传递
- 使用std::bind将Qt信号连接到插槽
- Qt:向死/停止线程发送信号
- 呼叫函数直接与发射信号(QT-信号和插槽)
- 没有这样的插槽/信号(Qt)