在Qt中,信号和槽是一种很重要的机制,用于实现对象之间的通信。下面我们来看一个简单的例子。
假设我们有一个窗口类MainWindow,其中包含一个按钮QPushButton和一个标签QLabel。当我们点击按钮时,标签内容会发生变化。具体实现如下:
mainwindow.h文件:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QLabel;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void changeLabelText(); // 槽函数
private:
QPushButton *m_button; // 按钮指针
QLabel *m_label; // 标签指针
};
#endif // MAINWINDOW_H
mainwindow.cpp文件:
#include "mainwindow.h"
#include <QPushButton>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
m_button = new QPushButton("Change Label Text", this); // 创建按钮
m_label = new QLabel("Hello World!", this); //