Qt 信号与槽的连接方式有以下几种:
-
使用 connect() 函数手动连接信号和槽:
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
-
使用 Qt5 中的新语法,使用 lambda 表达式连接信号和槽:
connect(sender, &Sender::signal, [=](){ receiver->slot(); });
-
在 Qt Designer 中通过拖拽和设置属性连接信号和槽。例如,在设计窗口中选择一个按钮,然后在属性编辑器中设置 clicked() 信号连接到对应的槽函数。
-
通过使用 QMetaObject::connectSlotsByName() 函数自动将部件中以 on_ 开头命名的槽函数与其对应的信号相连接。例如,在设计窗口中选择一个按钮,并在属性编辑器中设置其 objectName 属性为 "myButton",然后定义一个 on_myButton_clicked() 槽函数,该函数将自动连接到该按钮的 clicked() 信号上。