找回密码
 立即注册
收起左侧

qt5.8.0两个类之间的信号与槽问题

4
回复
8677
查看
[复制链接]
累计签到:132 天
连续签到:1 天
来源: 2017-4-14 15:39:10 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 adaluobo 于 2017-4-14 15:44 编辑

我再manwindow中写了一个按钮,点击按钮发射信号给另一个叫Form的类,运行之后槽函数不执行,下面是我的代码
mainwindow.h
private:    Ui::MainWindow *ui;    QPushButton *Alarm_info;

signals:    void aaa();
private slots:   
void Alarm_info_clicked();

mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>

  ui->setupUi(this);   
connect(Alarm_info, SIGNAL(clicked()), this, SLOT(Alarm_info_clicked()));}
void MainWindow::Alarm_info_clicked()
{    qDebug()<<"llllllllll"<<endl;   
emit aaa(); }


Form.h

#include <QWidget>
#include "mainwindow.h"
namespace Ui {class Form;}
class Form : public QWidget{    Q_OBJECT
public:    explicit Form(QWidget *parent = 0);    ~Form();
private:    Ui::Form *ui;  
  MainWindow w;
public slots:   
void lalala();};
Form.cpp
#include "form.h"
#include "ui_form.h"
#include <QDebug>
#include "mainwindow.h"
Form::Form(QWidget *parent) :    QWidget(parent),    ui(new Ui::Form)
{    ui->setupUi(this);  
  connect(w,SIGNAL(aaa()),this,SLOT(lalala()));}
Form::~Form(){    delete ui;}
void Form::lalala()
{    qDebug()<<"ok"<<endl;}




最佳答案

查看完整内容

你仅仅包含了头文件,说明你能找到这个类,但是使用的时候要创建这个类的实例。 你这里没有创建。实例的创建,一般放到cpp文件中完成。
回复

使用道具 举报

累计签到:58 天
连续签到:1 天
2017-4-14 15:39:11 显示全部楼层
adaluobo 发表于 2017-4-15 08:49
不是包含mainwindow的头文件就可以么?

你仅仅包含了头文件,说明你能找到这个类,但是使用的时候要创建这个类的实例。
你这里没有创建。实例的创建,一般放到cpp文件中完成。
回复

使用道具 举报

累计签到:58 天
连续签到:1 天
2017-4-15 08:36:58 显示全部楼层
connect(w,SIGNAL(aaa()),this,SLOT(lalala()));
这个挂不起来吧。你的Form中的 MainWindow w 是怎么创建的啊。

点评

不是包含mainwindow的头文件就可以么?  详情 回复 发表于 2017-4-15 08:49
回复

使用道具 举报

累计签到:132 天
连续签到:1 天
2017-4-15 08:49:36 显示全部楼层
BlueLinux 发表于 2017-4-15 08:36
connect(w,SIGNAL(aaa()),this,SLOT(lalala()));
这个挂不起来吧。你的Form中的 MainWindow w 是怎么创建的 ...

不是包含mainwindow的头文件就可以么?
回复

使用道具 举报

累计签到:50 天
连续签到:1 天
2017-4-15 23:37:09 显示全部楼层
你这个arm的按钮有用new开辟空间吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了