当前位置: 代码迷 >> QT开发 >> connect 的位置,该如何解决
  详细解决方案

connect 的位置,该如何解决

热度:100   发布时间:2016-04-25 04:19:34.0
connect 的位置
主窗体构造函数内
QLabel *b = new QLabel(this);
label 中有信号,窗体有槽,
要连接这俩,应该把connect 放在哪呢?放在窗体构造函数的话提示说窗体无此信号,放在label 构造函数的话变量*b不是还未声明吗?
------最佳解决方案--------------------
 

QLabel *b = new QLabel(this);
connect(B,SIGNAL(clicked()),this,SLOT(youFunction()));


------其他解决方案--------------------
楼上的正解,一般new出一个对象,就紧接着创建这个对象的信号槽连接
------其他解决方案--------------------
引用:
C/C++ code1234QLabel *b = new QLabel(this);connect(B,SIGNAL(clicked()),this,SLOT(youFunction()));


弱弱的说一句,QLabel 好像没有clicked() 这个信号吧??
------其他解决方案--------------------
LZ不会是直接copy代码了吧?QLabel是没有clicked信号的。

------其他解决方案--------------------
引用:
C/C++ code1234QLabel *b = new QLabel(this);connect(B,SIGNAL(clicked()),this,SLOT(youFunction()));


是这样写的,但是程序运行的时候,有提示:Object::connect :no such signal 我的信号 in widget.cpp
------其他解决方案--------------------
引用:
引用:C/C++ code1234QLabel *b = new QLabel(this);connect(B,SIGNAL(clicked()),this,SLOT(youFunction()));

是这样写的,但是程序运行的时候,有提示:Object::connect :no such signal 我的信号 in widge……


你不会是把一楼的代码照搬过来吧?

1、信号槽的connect一般是放在对象new出来之后
2、QLabel没有clicked()这个信号

------其他解决方案--------------------
解决了,不是直接copy 了,是自己定义的,原因是忘了写参数列表~
------其他解决方案--------------------
 呵呵  随便顺手写的、忘记了...

确实没有这个信号! sorry!  罪过!
------其他解决方案--------------------
引用:
主窗体构造函数内
QLabel *b = new QLabel(this);
label 中有信号,窗体有槽,
要连接这俩,应该把connect 放在哪呢?放在窗体构造函数的话提示说窗体无此信号,放在label 构造函数的话变量*b不是还未声明吗?

放在主窗体就行,但是你要保证sender正确
  相关解决方案