搜了一下没有中文资料,看了英文资料,知道怎么做了,简单说一下吧。
在QT中将SIGNAL定义为信号名(字符串)前面加上2,SLOT定义为方法名(字符串)前面加上1
也就是说,只要在运行时使用signal名字前面加上2,slot名字前面加上1即可。
例如:
已有信号和槽的定义:
signals: void test(); public slots: void onTest();
则可动态连接如下:
connect(this, "2test()", this, "1onTest()");
在本例中看似是多余的,但是在某些情况下却是很有用的,比如写代码时并不知道需要连接哪些信号槽,运行时才知道,那么就可以根据名字来动态绑定。