Qt在B类中发出A类到槽的形式

时间:2012-11-25 18:07:54

标签: qt signals-slots

我正在尝试为我的Gui应用程序创建一个日志窗口。

我有名为sql和MyService的类

如何从类sql构建和发出信号以更新MyService日志窗口?

在main.cpp中:

    MyService myService;
    sql mySql;
    QObject::connect(mySql, SIGNAL(updateMyLog(QString(msg))),myService, 
    SLOT(updateMyLog(QString(msg))));

修改
我在我的sql类中忘记了Q_OBJECT 和错误dosnt显示

error: C2665: 'QObject::connect' : 
none of the 3 overloads could convert all the argument types

EDIT2:
我的updateMyLog插槽是:

public slots:
void updateMyLog(QString logmessage);

我得到了不同的错误:

QObject::connect: No such signal sql::updateMyLog(QString msg)

2 个答案:

答案 0 :(得分:0)

似乎我应该这样做:

QObject::connect(&mySql, SIGNAL(updateMyLog(QString)),&myService,
                 SLOT(updateMyLog(QString)));

答案 1 :(得分:0)

如果你这样写它会起作用吗?

QObject::connect(&mySql, SIGNAL(updateMyLog(QString)), &myService, 
SLOT(updateMyLog(QString)));

请注意,您应该将指针作为第一个和第三个参数传递。由于myService不是指针,因此应该获取分配它的内存地址(指向它的指针)。