QT creator简介

Qt Creator:轻量级跨平台集成开发环境,包含高级C++代码编辑器、集成的GUI外观和版式设计器、项目和生成管理工具、集成的上下文相关帮助系统以及图形化调试器等。

Qt Designer:强大的拖曳式图形化用户界面排版和设计工具。

Qt Linguist:多国语言翻译工具,用于Qt应用程序的多国语言翻译。

Qt Assistant:基于Qt的开源帮助文档阅读器,用于阅读由Qt Assistant应用程序生成的帮助文件。

qmake:用于编译ui文件的命令行工具,全称为UI Compiler。

uic:全称为User Interface Compiler,将.ui文件编译为.h文件的命令行工具。

moc:全称为Meta-Object Compiler,将.h文件进行元对象编程的命令行工具。

对象间的通信机制 --- 信号和槽机制(Signal & Slot)

信号是在特定情况下被发射的事件,例如PushButton最常见的信号就是鼠标单击时发射的clicked()信号。发射信号使用emit关键字。定义信号使用QT的signals关键字。

槽是对信号响应的函数,就是一个普通的成员函数,可以声明在类的任何部分,可以具有任何参数,也可以被直接调用。槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。

要使用信号和槽,需要使用Qt的connect函数将信号和槽连接起来。当指定的信号被发射时,与之关联的槽函数将被自动执行。

创建信号和槽函数

在窗口类的定义中添加信号和槽函数签名。

创建一个信号actionClicked和一个槽函数myslot

signals:    

        void actionClicked();

private slots:    

        void myslot();

在窗口类的实现文件中实现槽函数

void Demo1::myslot()

{    

        QMessageBox::information(this,"Action","New");

}

在需要触发槽函数的地方连接信号和槽。可以使用QObject的connect函数将信号和槽连接起来。

//信号连接

// 将菜单的triggered信号连接到Demo1的actionClicked信号

connect(ui->actionNew, SIGNAL(triggered()), this, SIGNAL(actionClicked()));

//信号和槽连接  

connect(this, SIGNAL(actionClicked()), this, SLOT(myslot()));

SIGNAL()和SLOT()是Qt定义的两个宏,它们返回其参数的C语言风格的字符串(const char*)。

信号与槽机制的连接方式

(1)一个信号可以与另一个信号相连,代码如下:

connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1));

表示Object1的信号1发送可以触发Object2的信号1发送

(2)同一个信号可以与多个槽相连,代码如下:

connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2)); connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1));

(3)同一个槽可以响应多个信号,代码如下:

connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2)); connect(Object3,SIGNAL(signal2),Object2,SIGNAL(slot2)

但是,常用的连接方式为:

connect(Object1,SIGNAL(signal),Object2,SLOT(slot));

其中,signal为对象Object1的信号,slot为对象Object2的槽。

Qt 5元对象系统

Qt 5元对象系统提供了对象间的通信机制(信号和槽)、运行时类型信息和动态属性系统的支持,是标准C++的一个扩展,它使Qt能够更好地实现GUI图形用户界面编程。Qt 5的元对象系统不支持C++模板,尽管该模板扩展了标准C++的功能。但是,元对象系统提供了模板无法提供的一些特性。Qt 5元对象系统基于以下三个事实。

(1)基类QObject:任何需要使用元对象系统功能的类必须继承自QObject。

(2)Q_OBJECT宏:Q_OBJECT宏必须出现在类的私有声明区中,用于启动元对象的特性。 (3)元对象编译器(Meta-Object Compiler,moc):为QObject子类实现元对象特性提供必要的代码实现。

交叉编译

交叉编译是指在一类计算机上编译生成另一类计算机上运行的代码。例如,我们可以在运行x86的Linux的计算机上编译生成运行在Arm上的程序。

交叉编译需要使用交叉编译器,例如GCC的交叉版本Cross GCC。交叉编译器需要在目标计算机上创建一个运行环境,然后将这个运行环境集成到主机计算机的编译过程中。

$ arm-linux-gnueabi-gcc -o outputfile inputfile.c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix6.0使用自带模板(Redis by Zabbix agent 2)监控Redis数据库

注意:Zabbix6.0使用Redis by Zabbix agent 2 模板可直接监控Redis数据。 1、添加Redis账号密码信息(如果Redis没有设置密码可省略此步骤) vim zabbix_agent2.confPlugins.Redis.Sessions.redis.Uritcp://redis.huayunworld.com:6379 Plugins.Redis.Sessions.redis…

025-GeoGebra中级篇-曲线(1)_显式曲线、隐式曲线、参数曲线

写到曲线这一章节,不得不先梳理一下数学中关于曲线这一部分的内容,我们常见的曲线有显式曲线、隐式曲线、参数曲线,当然还有极坐标曲线、参数化曲面、分段函数曲线、分形曲线、复数平面上的曲线、随机曲线、和非线性动力系统的轨迹&#xff0…

CentOS 系统监控项

在维护和优化 CentOS 系统时,实时监控硬件和资源的使用情况非常重要。为了满足工作需要,可以定时采集 CentOS 系统相关的监控数据,并将其推送到 Prometheus 进行集中监控和管理。以下是日常采集项及对应的 shell 命令,并附上每项命…

在 PostgreSQL 里如何实现数据的分布式事务的回滚和补偿机制?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的分布式事务的回滚和补偿机制一、分布式事务的概念与挑战(一…

STM32智能农田监测系统教程

目录 引言环境准备智能农田监测系统基础代码实现:实现智能农田监测系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:农田监测与管理问题解决方案与优化收尾与总结 1. 引言 智能农田监测系统通…

【LeetCode 链表合集】

文章目录 1. LeetCode 206 反转链表2. NC40 链表相加 1. LeetCode 206 反转链表 题目链接🔗 解题思路: 🔍 🐧创建一个新的节点,使用链表头插的方法; 2. NC40 链表相加 题目链接🔗 解题思路…

WPF MVVM框架 Caliburn.Micro的Action绑定

WPF MVVM框架 Caliburn.Micro的Action绑定 通过命名约定来绑定Action View <Window x:Class"WpfApp1.Views.AboutView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml…

spring boot 基础特性

Spring Boot 特性&#xff1a; SpringBoot Starter&#xff08;场景启动器&#xff09;&#xff1a;将常用的依赖分组进行了整合&#xff0c;将其合并到一个依赖中&#xff0c;这样就可以一次性添加到项目的Maven或Gradle构建中。使编码变得简单&#xff0c;SpringBoot采用 Ja…

Meta的元宇宙愿景:技术战略与AI的融合未来

Meta作为科技界的领军企业&#xff0c;其在元宇宙领域的战略布局和未来展望一直是行业关注的焦点。Meta的CTO Andrew Bosworth&#xff08;博斯沃思&#xff09;最近详细阐述了公司的元宇宙战略、XR眼镜的市场突破以及AI时代的发展蓝图。 一、元宇宙战略&#xff1a;定义三个时…

Django 删除所有数据

1&#xff0c;添加模型 Test/app11/models.py from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()pub_date models.DateTimeField(date published)class Book(models.Model):title models.CharFiel…

【java深入学习第5章】Spring Boot 统一功能的实现及处理方式

Spring Boot 统一功能处理 在开发 Web 应用程序时&#xff0c;为了提高代码的可维护性和可扩展性&#xff0c;我们通常会采用一些统一的功能处理方式。本文将介绍如何在 Spring Boot 中实现统一的数据返回格式、异常处理和功能处理&#xff0c;并通过一个图书管理系统的案例来…

论文翻译:Rethinking Interpretability in the Era of Large Language Models

https://arxiv.org/abs/2402.01761 在大型语言模型时代的可解释性再思考 摘要 在过去十年中&#xff0c;随着越来越大的数据集和深度神经网络的兴起&#xff0c;可解释机器学习领域的兴趣迅速增长。同时&#xff0c;大型语言模型&#xff08;LLMs&#xff09;在广泛的任务中…

k8s之client-go:golang与k8s交互的桥梁

文章目录 前言示例总结 前言 k8s是一个非常成熟且强大的容器自动化编排引擎&#xff0c;对于这样一个利器&#xff0c;k8s官方提供了clientgo用来给我们使用golang去接入k8s&#xff0c;通过k8s的api来对k8s中的资源进行操作 通过client-go实现对k8s集群中资源对象(包括deploy…

TypeScript 基础类型(一)

简介 它是 JavaScript 的超集&#xff0c;具有静态类型检查和面向对象编程的特性。TypeScript 的出现&#xff0c;为开发者提供了一种更加严谨和高效的开发方式。 主要特点&#xff1a; 、静态类型检查。 通过静态类型检查&#xff0c;开发者可以在编译时发现错误&#xff0…

QQ频道导航退出

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140413538 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

Jquery常用操作汇总,dom操作,ajax请求

这段时间在写一些小Demo&#xff0c;用的都是很远古的Jquery,哈哈哈&#xff0c;但是呢也挺好玩儿的。想着记录一下。 题外话&#xff1a;补充一些自己欠缺的前端知识&#xff0c;&#xff08;我的前端学的比较乱&#xff0c;哈哈哈&#xff0c;原生的js不是很熟&#xff0c;&a…

链表的回文结构(链表的中间节点+反转链表)

链表的回文结构 一.链表的中间节点思路1&#xff1a;暴力求解思路2&#xff1a;快慢指针 二.返回倒数第k个节点思路1&#xff1a;暴力求解思路2&#xff1a;快慢指针 三.反转链表思路1&#xff1a;头插法思路2&#xff1a;反转指针的指向 四.链表的回文结构思路1&#xff1a;利…

「C++系列」一篇文章讲透【运算符】

文章目录 一、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 条件运算符&#xff08;三元运算符&#xff09;7. 成员访问运算符8. 指针和地址运算符9. 类型转换运算符10. 其他运算符 二、其他特殊运算符1. 成员访问运算符2. 指针和地址运算符3. 类…

Laravel入门:快速启动你的第一个应用

当然&#xff01;下面是关于如何使用Laravel快速启动你的第一个应用的教程。 Laravel入门&#xff1a;快速启动你的第一个应用 1. 简介 Laravel是一个现代化的PHP框架&#xff0c;以其优雅的语法和丰富的功能广受欢迎。本教程将引导你从零开始创建一个简单的Laravel应用。 2…

python的自省机制(改bug有用)

在 Python 中&#xff0c;自省&#xff08;Introspection&#xff09;机制是指程序在运行时能够获取自身的信息&#xff0c;例如对象的类型、属性、方法等。 Python 提供了一些内置函数和特殊属性来支持自省。以下是一些常见的例子&#xff1a; type() 函数&#xff1a;返回对象…