qt-C++笔记之使用信号和槽实现跨类成员变量同步响应

qt-C++笔记之使用信号和槽实现跨类成员变量同步响应

在这里插入图片描述

—— 杭州 2024-01-24

code review!

1.运行

在这里插入图片描述

2.main.cpp

在这里插入图片描述

代码

#include <QCoreApplication>
#include <QObject>
#include <QDebug>

// MySource 类定义
class MySource : public QObject {
   
    Q_OBJECT

public:
    MySource() : m_value(0) {
   }

    void setValue(int value) {
   
        if (m_value != value) {
   
            m_value = value;
            emit valueChanged(m_value);
        }
    }

signals:
    void valueChanged(int newValue);

private:
    int m_value;
};

// MyTarget 类定义
class MyTarget : public QObject {
   
    Q_OBJECT

public slots:
    void onValueChanged(int newValue) {
   
        qDebug() << "Value changed to:" << newValue;
        m_value = newValue;
        // 这里可以添加其他响应newValue变化的代码
    }

private:
    int m_value;
};

#include "main.moc" // 如果你使用的是qmake,确保这个文件可以被moc工具找到

// 主函数
int main(int argc, char *argv[]) {
   
    QCoreApplication a(argc, argv);

    MySource source;
    MyTarget target;

    // 将source的valueChanged信号连接到target的onValueChanged槽
    QObject::connect(&source, &MySource::valueChanged, &target, &MyTarget::onValueChanged);

    // 当我们设置source的值时,target的onValueChanged槽将被调用
    source.setValue(10); // target的onValueChanged将被调用,打印"Value changed to: 10"
    source.setValue(20); // target的onValueChanged将被调用,打印"Value changed to: 20"

    return a.exec();
}

3.test.pro

# filename: test.pro
QT       += core
QT       -= gui
TARGET    = test
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES  += main.cpp

4.编译

/usr/lib/qt5/bin/qmake test.pro

make

相关推荐

  1. QT 信号

    2024-01-25 11:56:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 11:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 11:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 11:56:02       82 阅读
  4. Python语言-面向对象

    2024-01-25 11:56:02       91 阅读

热门阅读

  1. 【笔记】Helm-4 最佳实践-依赖

    2024-01-25 11:56:02       57 阅读
  2. harmonyOS app 开发环境配置流程

    2024-01-25 11:56:02       50 阅读
  3. 安卓MediaRecorder(4)视频采集编码写入详细源码分析

    2024-01-25 11:56:02       67 阅读
  4. Jenkins相关

    2024-01-25 11:56:02       56 阅读
  5. android:excludeFromRecents

    2024-01-25 11:56:02       40 阅读
  6. c# 策略模式

    2024-01-25 11:56:02       58 阅读
  7. 为什么需要数据仓库

    2024-01-25 11:56:02       58 阅读