信号槽是Qt的核心机制之一,信号槽简单的来说就是两个对象及两个对象问答行为。
例如:发送者(Sender)发出信号(SIGNAL)、接收者(Receiver)做出反应(SLOT)。利用connect函数将这两个对象及其行为联系起来。
一个简单的例子如下,创建一个button,Clicked button make app quit.
#include <QApplication> #include <QPushbutton> int main(int argc, char* argv[]) { QApplication a(argc, argv); // Create a button. QPushButton button("QUIT"); // Connect signal and slot QObject::connect(&button, &QPushButton::clicked, &QApplication::quit); // Show button in the screen. button.show(); return a.exec(); }
connect函数的一般形式为:
connect(sender, signal, receiver, slot);
当sender发出signal信号后,receiver的slot函数会自动调用。
其中sender和receiver没有区别,都是QObject指针,主要区别在于signal和slot
signal和slot要求参数类型一致,如果不一致,则允许slot的参数比signal少,但是存在的参数必须对应一致。
时间: 2024-11-07 18:59:27