我在一个cpp文件中定义并发送一个信号,想在另一个cpp接收这个信号怎么办
代码如下:
第一个cpp的.h文件
class syxm : public QWidget
{
Q_OBJECT
public:
explicit syxm(QWidget *parent = 0);
public:
QRadioButton *rb_ss;
signals:
void missed();
};
在这个cpp中的connect如下
QObject::connect(rb_ss,SIGNAL(toggled(bool)),this,SIGNAL(missed()));
第二个cpp中调用
QObject::connect(this,SIGNAL(missed()),this,SLOT(slot_rb()));
这样做有什么问题么,求大侠指教
------解决方案--------------------
这是属于类之间的信号槽的调用,信号槽在连接时要确定对象已经被创建,看你的代码,贴的不全不过我觉得QObject::connect(this,SIGNAL(missed()),this,SLOT(slot_rb()));
这句写错了,你可以把第一个类当做参数传给第二个类然后在第二个里进行信号槽的链接。
不知道这么说明白么?
MainWindow::MainWindow(MyClass * myclass) :
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//第一种
m_myClass = new MyClass;
connect(this,SIGNAL(display()),m_myClass,SLOT(display()));
//第二种
connect(this,SIGNAL(display()),myclass,SLOT(display()));
}
------解决方案--------------------
懒得看了
你只要把实例化后的某个部件的指针传到你需要connect的对象的函数里就行了