qt 信号和槽,例子

 void MainWindow::onQPushBtnClicked_workArea()
 {
	Canvas* w = new Canvas(parCan);
    connect(w, SIGNAL(test()),
                this, SLOT(handleCanvasButton()));
}

这里想要把 Canvas 这个类的按钮点击事件和 MainWindow 类关联起来,实现Canvas 窗口点击按钮之后返回数值,MainWindow 的handleCanvasButton拿到数值,暂时没传递参数,但思路是这么个写法。

public:
signals:
    void test();

Canvas声明里写好信号
在执行完某函数onButtonClearClicked之后,发射信号:

void Canvas::onButtonDownClicked()//确认
{
// 一顿操作
	emit test();
}

此时,就会执行handleCanvasButton

void MainWindow::handleCanvasButton(){
    qDebug() << "[test]   test ";
}

那么就打印出了:[test] test


主要是区分 signals 和 slot 的写法,我本来以为这两个都跟函数一样没啥区别,没想到 signals 是这样的

你可能感兴趣的:(笔记,qt,开发语言)