qt中的信号和槽机制本质上是应用了观察者模式进行设计的
1.qt中的信号和槽
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
Qt::ConnectionType = Qt::AutoConnection
如果接收器位于发出信号的线程中,则使用Qt::DirectConnection。否则,将使用Qt::QueuedConnection。连接类型在发出信号时确定。
即绑定信号和槽函数,用信号触发槽函数执行
2.观察者模式解析信号和槽
这里被观察者的Notify(),即为一个signal,观察者的Updata()即为slot,connect函数把观察者和被观察者连接,从而达到signal触发slot的目的,实现解耦合
3.信号和槽的使用
connect(this, &Widget::sig1, this, &Widget::slot1);
void Widget