首页 > 其他分享 >QT基础——核心模块QtCore

QT基础——核心模块QtCore

时间:2023-01-05 23:24:13浏览次数:56  
标签:Priority QT int value QObject priority 模块 QtCore public

qt core 提供了元对象系统,扩展了c++ 在元对象系统的基础上,qt又提供了信号/槽、property以及对象树等特性

  • The Meta-Object System
  • The Property System
  • Object Model
  • Object Trees & Ownership
  • Signals & Slots

Meta-Object系统

较复杂,暂时跳过

Property 系统

例子:

class MyClass : public QObject
{
    Q_OBJECT
    Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)

public:
    MyClass(QObject *parent = nullptr);
    ~MyClass();

    enum Priority { High, Low, VeryHigh, VeryLow };
    Q_ENUM(Priority)

    void setPriority(Priority priority)
    {
        m_priority = priority;
        emit priorityChanged(priority);
    }
    Priority priority() const
    { return m_priority; }

signals:
    void priorityChanged(Priority);

private:
    Priority m_priority;
};

信号 & 槽

一个普通的c++类:

class Counter
{
public:
    Counter() { m_value = 0; }

    int value() const { return m_value; }
    void setValue(int value);

private:
    int m_value;
};

添加信号槽:

#include <QObject>

class Counter : public QObject
{
    Q_OBJECT

public:
    Counter() { m_value = 0; }

    int value() const { return m_value; }

public slots:
    void setValue(int value);

signals:
    void valueChanged(int newValue);

private:
    int m_value;
};

信号 & 槽的连接用connect函数:

connect(sender, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(Qbject*)));
connect(sender, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed()));
connect(sender, SIGNAL(destroyed()), this, SLOT(objectDestroyed()));

标签:Priority,QT,int,value,QObject,priority,模块,QtCore,public
From: https://www.cnblogs.com/feipeng8848/p/17029102.html

相关文章

  • QT基础——QML及其相关的qt模块
    QML语言(qt6)https://doc.qt.io/qt-6/qmlreference.html以qt6版本说明,其他b版本不一定对的上基础语法主要是三个方面:import关键字,对象的声明(子对象),注释importQtQuick......
  • 仿bbs项目之评论功能完善,后台管理功能部分讲解,bs4模块简介
    目录仿bbs项目之评论功能完善,后台管理功能部分讲解,bs4模块简介昨日内容回顾今日内容概要今日内容详细根评论完善后台管理添加文章仿bbs项目之评论功能完善,后台管理功能部......
  • sqlite3的使用,包括连接qt
    一、sqlite比较轻量级数据库二、类型:关系型数据库三、linux系统一般自带四、创建数据库1、在你要创建的数据的文件夹下打开cmd2、执行:sqlite3testBase.db ......
  • Html飞机大战(十八): 模块化+项目开源
    好家伙,好久好久没有更新这个系列了        为了使文档更方便阅读,使代码更容易维护,来把这个飞机大战模块化项目已开源:https://gitee.com/tang-an......
  • 模块
    一、实验目的和要求1、了解模块的内容;2、掌握模块的创建和导入方式;3、了解包结构的创建和使用。 二、实验环境软件版本:Python3.1064_bit 三、实验过程1、实例......
  • EMQX+阿里云飞天洛神云网络 NLB:MQTT 消息亿级并发、千万级吞吐性能达成
    随着物联网技术的发展与各行业数字化进程的推进,全球物联网设备连接规模与日俱增。一个可靠高效的物联网系统需要具备高并发、大吞吐、低时延的数据处理能力,支撑海量物联网数......
  • git中submodule子模块的添加、使用和删除
    背景项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。本文主要讲......
  • 手把手教你把 Git 子模块更新到主项目
    本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把Git子模块更新到主项目中去。首先,把fork的skywalking项目克隆到本地:OneMoreMINGW64......
  • bs4 模块
    爬虫之bs4模块我们在编写一些业务时需要从html页面上获取到用户输入的内容。比如说文章内容。其实底层是在编写html代码,用户输入的时候看着是字其实是标签里包含输入的文......
  • 【Qt】开源一键代码开光工具,一行代码给你的项目施加祝福,减少Bug
    年底啦,没什么项目,想摸鱼划水没见到什么好玩的东西,看到有人分享这个,直接做个库来玩下,之后说不定会嵌到公司的项目里面去....效果如下,佛光普照!输入也只需要一行命令magic......