当前位置: 首页 > news >正文

Qt之QWidget相关

Qt概述

Qt 是一个跨平台的 C++ 开发框架。

 

跨平台支持:可以用于开发 Windows、macOS、Linux、Android、iOS 等多种操作系统下的应用程序。这意味着开发者使用 Qt 编写的代码,在经过适当的编译和配置后,能够在不同平台上运行,减少了为每个平台单独开发的成本。

丰富的库和工具:它提供了大量的类库来处理图形用户界面(GUI)开发、数据库访问、网络通信、多媒体处理等诸多任务。例如,在 GUI 开发方面,有各种现成的窗口部件(如按钮、文本框等),能帮助开发者快速构建出美观实用的界面。

信号与槽机制:这是 Qt 的一个特色通信机制。信号可以由对象发出,比如按钮的点击信号;槽是接收信号后执行的函数。这种机制使得对象间的通信更加灵活和安全,方便开发者实现事件驱动的编程。

面向对象设计:Qt 是基于 C++ 的,充分利用了面向对象编程的特点。开发者可以通过继承、封装等方式高效地构建复杂的应用程序,方便代码的维护和扩展。

应用广泛:在桌面软件开发、移动应用开发、嵌入式系统开发等领域都有大量应用。例如一些知名的软件就是用 Qt 开发的,它为开发高质量的软件提供了有力的支持。

创建项目

项目的本质是一个存储程序相关文件的文件夹


Qt Creator创建项目

        方式1:文件->新建文件或项目

        方式2:点击new project

        方式3:点击编辑,在其项目栏空白区域点击鼠标右键,选择新建项目


注意:

        项目的名称与存储项目的路径中不要有中文或特殊符号

项目结构

项目名.pro

        作用:项目的配置文件,如项目名称,项目中窗口对应的头文件,源文件,ui文件,支持的库,忽略警告等

头文件:        

        作用:存储项目中窗口对应的头文件,一个窗口对应一个类,一个窗口对象就是一个类对象

源文件:

        main.cpp

                1,创建一个应用程序

                 2,创建一个窗口

                3,显示窗口

                4,获取执行权到窗口中

        通过对main.cpp的分析,我们发现窗口的相关代码在窗口的构造函数中书写

ui文件:

        作用:存储窗口对应的布局文件

Qt对象模型

QObject

        QWidget

                QMainWindow

                QPushButton

                ......

QTUI文件坐标系

左上角为(0,0)点

x轴向右为正

y轴向下为正

设置窗口

resize(int w,int h);        设置窗口大小,可拖拽改变

setFixedSize(int w,int h);        设置窗口大小,不可拖拽改变

setWindowTitle(QString str);        设置窗口标题

QPushButton

概述:Qt提供按钮的类

创建:

        方式1:代码创建

                QPushButton *变量名 = new QPushButton(this);

                QPushButotn *变量名 = new QPushButton("展示的文本",this);

        方式2:UI文件中拖拽

                ui->组建在文件中的objectname

相关函数:

        继承于QWidget,所以QWidget提供的函数与变量都可以用

        text();        //获取当前按钮上显示的信息

        setText("显示的内容");        //设置按钮上现实的文本

常用信号:

          clicked(bool b);        //点击信号      

 QWidget提供的槽

close();        //关闭

show();        //显示

hide();        //隐藏

信号与槽

绑定信号与槽

connect(谁1,信号,谁2,槽函数);


Qt4的写法:

        connect(谁1,SIGNAL(信号(形参列表)),谁2,SLOT(槽函数(形参列表)));

Qt5的写法:

        connect(谁1,&谁1的类名::信号,谁2,&谁2的类名::槽函数名);    


注意:

        1,谁1,谁2都必须是QObject的子类对象

        2,槽函数的参数数量不能多于其所绑定信号的参数数量。

        3,可以使用emit发送信号

                emit 谁->信号(实参);

        4,一个信号可以绑定多个槽

        5,多个信号可以绑定同一个槽

        6,信号可以连接信号

自定义槽

1,在对应的窗口的头文件中定义槽函数

        public slots:

                void 槽函数名(形参列表);

                void 槽函数名(形参列表);

                ...

2,在源文件中实现该槽函数
3,使用connect绑定信号与槽               

自定义信号

1,在对应的窗口的头文件中定义

        signals:

                void 信号名(形参列表);

注意:

        信号不用实现

相关文章:

Qt之QWidget相关

Qt概述 Qt 是一个跨平台的 C 开发框架。 跨平台支持:可以用于开发 Windows、macOS、Linux、Android、iOS 等多种操作系统下的应用程序。这意味着开发者使用 Qt 编写的代码,在经过适当的编译和配置后,能够在不同平台上运行,减少了…...

用web前端写出一个高校官网

所实现的效果如链接&#xff1a; http://127.0.0.1:5500/school.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>xigongshang</title> <style> * {margin: 0;padding: 0;} a{ text-decoration: none…...

【笔记】Android Gradle Plugin配置文件相关说明-libs.versions.toml

版本号 文件路径&#xff1a;Project\gradle\libs.versions.toml 直接搜索versions.agp是找不到的&#xff0c;这是变量引用的写法&#xff0c;查询 agp版本可以直接查版本号。 [versions] agp "8.5.0-alpha08" junit "4.13.2" junitVersion "1.…...

如何修复WordPress卡在维护模式

当你管理WordPress网站时&#xff0c;没有什么比看到它卡在维护模式更令人沮丧的了。特别是在你进行重要更新或期望大量流量的时候&#xff0c;这种情况会更加令人不安。 维护模式可能由许多因素引起&#xff0c;从简单的文件损坏到更复杂的插件冲突或存在的.maintenance文件。…...

glob三个函数的效果

glob 允许你给一个从dirname到basename pattern的整字符串路径&#xff0c;然后匹配一切符合要求的路径。 glob0 dirname和basename分开传&#xff0c;只返回basename。可见不支持pattern匹配。 glob1 dirname和basename pattern分开传&#xff0c;只返回basename。支持pa…...

FreeRTOS:事件标志组与任务通知

目录 一、事件标志组&#xff08;Event Groups&#xff09; 1、事件标志组的特点 2、事件标志组与队列、信号量的区别 3、关键API函数 4、示例代码 5、优缺点 6、总结 二、任务通知&#xff08;Task Notifications&#xff09; 1、任务通知的特点 2、关键API函数 3、…...

c++11的动态类型

c17引入了any 和 variant&#xff0c;可以将任意数据类型统一用any或variant类型表示&#xff0c;在开发中还是能够带来很多便利的。在c11版本中&#xff0c;可以用下面这个例子&#xff0c;仿照实现一个Any类型。 #include <iostream> #include <stdexcept> #inc…...

付费会员渗透难,腾讯音乐的触顶挑战

腾讯音乐付费用户增长背后&#xff0c;月活跃用户数下滑3%&#xff0c;超级会员渗透率仅1.8%。 转载|原创新熵 作者丨晓伊 编辑丨蕨影 腾讯音乐此次营收同比正增长的到来&#xff0c;殊为不易。要知道&#xff0c;此前已连续四个季度出现营收同比下滑的态势。 11月12日&#x…...

内网安全隧道搭建-ngrok-frp-nps-sapp

1.ngrok 建立内网主机与公网跳板机的连接&#xff1a; 内网主机为客户机&#xff1a; 下载客户端执行 2.frp &#xff08;1&#xff09;以下为内网穿透端口转发 frp服务端配置&#xff1a; bindPort 为frp运行端口 服务端运行 ./frps -c frps.ini frp客户端配置&#xf…...

Load-Balanced-Online-OJ(负载均衡式在线OJ)

负载均衡式在线OJ 1. 项目介绍2. 项目说明4. 项目代码5. 项目演示 1. 项目介绍 2. 项目说明 4. 项目代码 5. 项目演示...

Postman之变量操作

系列文章目录 1.Postman之安装及汉化基本使用介绍 2.Postman之变量操作 3.Postman之数据提取 4.Postman之pm.test断言操作 5.Postman之newman Postman之变量操作 1.pm.globals全局变量2.pm.environment环境变量3.pm.collectionVariables集合变量4.pm.variables5.提取数据-设置变…...

查找字符串中某个字符返回字符位置

当然有正则表达式就非常简单,没有的话也不用担心,我们自己写算法完成这个功能. 早期的vs版本不支持vs,当然也可以下载boost来实现,关键还是不想下载,那么就自己写吧. 1.要求,查找字符串中同一个字符,并找出字符的位置. 2.根据字符位置,计算出对应的x,y坐标. 算法第一步,查找字…...

《数学物理学报》

作者指南 一、目的与范围 《数学物理学报》以刊登数学与物理科学的边缘学科中具有创造性的代表学科水平的科研成果为主的综合性学术刊物。其目的旨在向专业读者&#xff08;研究生水平以上&#xff09;提供数理学科领域的重要的、独创的成果。 二、投稿 要求文章内容具有创新…...

39页PDF | 毕马威_数据资产运营白皮书(限免下载)

一、前言 《毕马威数据资产运营白皮书》探讨了数据作为新型生产要素在企业数智化转型中的重要性&#xff0c;提出了数据资产运营的“三要素”&#xff08;组织与意识、流程与规范、平台与工具&#xff09;和“四重奏”&#xff08;数据资产盘点、评估、治理、共享&#xff09;…...

K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express

什么是 MongoDB 副本集&#xff1f; MongoDB 副本集&#xff08;Replica-Set&#xff09;是一个分布式数据库系统&#xff0c;它包含一个主节点和多个从节点。主节点负责处理所有写操作&#xff0c;从节点用于读取数据。当主节点发生故障时&#xff0c;从节点可以自动选举一个…...

2024小迪安全基础入门第四课

目录 Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影响 堡垒机的核心功能 堡垒机的优势 API的结构 Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影响 蜜罐&#xff08;Honeypot&#xff09;是…...

一文详解使用java easyexcel导出文件的几种情况

情况一&#xff1a;简单的导出指定类型文档&#xff0c;不要求格式 filePath-文件路径// 设置响应头response.setContentType("application/octet-stream");// 字符集处理&#xff0c;确保文件名的正确显示response.setHeader("Content-Disposition","…...

【蓝桥杯C/C++】深入解析I/O高效性能优化:std::ios::sync_with_stdio(false)

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 &#x1f4af;前言&#x1f4af;C 语言与 C 语言的输入输出对比1.1 C 语言的输入输出1.2 C 语言的输入输出 &#x1f4af; std::ios::sync_with_stdio(false) 的作用与意义2.1 什么是 std::ios::sync_with_st…...

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中&#xff0c;中间件&#xff08;Middleware&#xff09;是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑&#xff0c;像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用&#xff0c;也可以只在特定页…...

数据科学与SQL:组距分组分析 | 区间分布问题

目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 绝对值分布分析也可以理解为组距分组分析。对于某个指标而言&#xff0c;一个记录对应的指标值的绝对值&#xff0c;肯定落在所有指标值的绝对值的最小值和最大值构成的区间内&#xff0c;根据一定的算法&#x…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...