qt运行时连接signal和slot

搜了一下没有中文资料,看了英文资料,知道怎么做了,简单说一下吧。

在QT中将SIGNAL定义为信号名(字符串)前面加上2,SLOT定义为方法名(字符串)前面加上1

也就是说,只要在运行时使用signal名字前面加上2,slot名字前面加上1即可。

例如:

已有信号和槽的定义:

signals:
    void test();
public slots:
    void onTest();

则可动态连接如下:

connect(this, "2test()", this, "1onTest()");

在本例中看似是多余的,但是在某些情况下却是很有用的,比如写代码时并不知道需要连接哪些信号槽,运行时才知道,那么就可以根据名字来动态绑定。

原文地址:https://www.cnblogs.com/oceanking/p/2705938.html