将信号与不同类别的插槽连接

时间:2016-02-16 02:16:47

标签: c++ qt

我是Qt的新编程,我需要连接一个信号,例如,从菜单触发的信号,以及另一个类中的插槽。这是我的代码: connect(ui-> actionAbrir,SIGNAL(triggered()),this,SLOT(QImageProc :: open())) 应用程序运行没有错误,但是当我启动应用程序时连接似乎不起作用。

1 个答案:

答案 0 :(得分:0)

使用Qt 4连接语法时,无需在SLOT宏中指定类名(QImageProc)。此外,您可以使用返回值检查连接的正确性。

更新:必须使用指针或成员将QImageProc类的对象添加到MainWindow类,例如:

//MainWindow.h:
QImageProc* m_pImageProc;

//MainWindow.cpp:    
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this);
    //somthing like this:
    m_pImageProc = new QImageProc(/* parameters */);

    //add m_pImageProc as a third parameter to connect:
    bool ok = connect( ui->actionAbrir, SIGNAL(triggered()), m_pImageProc, SLOT(open()) );
    //...

另请参阅:New Signal Slot Syntax in Qt 5