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前端写出一个高校官网
所实现的效果如链接: 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
版本号 文件路径:Project\gradle\libs.versions.toml 直接搜索versions.agp是找不到的,这是变量引用的写法,查询 agp版本可以直接查版本号。 [versions] agp "8.5.0-alpha08" junit "4.13.2" junitVersion "1.…...
如何修复WordPress卡在维护模式
当你管理WordPress网站时,没有什么比看到它卡在维护模式更令人沮丧的了。特别是在你进行重要更新或期望大量流量的时候,这种情况会更加令人不安。 维护模式可能由许多因素引起,从简单的文件损坏到更复杂的插件冲突或存在的.maintenance文件。…...
glob三个函数的效果
glob 允许你给一个从dirname到basename pattern的整字符串路径,然后匹配一切符合要求的路径。 glob0 dirname和basename分开传,只返回basename。可见不支持pattern匹配。 glob1 dirname和basename pattern分开传,只返回basename。支持pa…...
FreeRTOS:事件标志组与任务通知
目录 一、事件标志组(Event Groups) 1、事件标志组的特点 2、事件标志组与队列、信号量的区别 3、关键API函数 4、示例代码 5、优缺点 6、总结 二、任务通知(Task Notifications) 1、任务通知的特点 2、关键API函数 3、…...
c++11的动态类型
c17引入了any 和 variant,可以将任意数据类型统一用any或variant类型表示,在开发中还是能够带来很多便利的。在c11版本中,可以用下面这个例子,仿照实现一个Any类型。 #include <iostream> #include <stdexcept> #inc…...
付费会员渗透难,腾讯音乐的触顶挑战
腾讯音乐付费用户增长背后,月活跃用户数下滑3%,超级会员渗透率仅1.8%。 转载|原创新熵 作者丨晓伊 编辑丨蕨影 腾讯音乐此次营收同比正增长的到来,殊为不易。要知道,此前已连续四个季度出现营收同比下滑的态势。 11月12日&#x…...
内网安全隧道搭建-ngrok-frp-nps-sapp
1.ngrok 建立内网主机与公网跳板机的连接: 内网主机为客户机: 下载客户端执行 2.frp (1)以下为内网穿透端口转发 frp服务端配置: bindPort 为frp运行端口 服务端运行 ./frps -c frps.ini frp客户端配置…...
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坐标. 算法第一步,查找字…...
《数学物理学报》
作者指南 一、目的与范围 《数学物理学报》以刊登数学与物理科学的边缘学科中具有创造性的代表学科水平的科研成果为主的综合性学术刊物。其目的旨在向专业读者(研究生水平以上)提供数理学科领域的重要的、独创的成果。 二、投稿 要求文章内容具有创新…...
39页PDF | 毕马威_数据资产运营白皮书(限免下载)
一、前言 《毕马威数据资产运营白皮书》探讨了数据作为新型生产要素在企业数智化转型中的重要性,提出了数据资产运营的“三要素”(组织与意识、流程与规范、平台与工具)和“四重奏”(数据资产盘点、评估、治理、共享)…...
K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
什么是 MongoDB 副本集? MongoDB 副本集(Replica-Set)是一个分布式数据库系统,它包含一个主节点和多个从节点。主节点负责处理所有写操作,从节点用于读取数据。当主节点发生故障时,从节点可以自动选举一个…...
2024小迪安全基础入门第四课
目录 Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影响 堡垒机的核心功能 堡垒机的优势 API的结构 Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影响 蜜罐(Honeypot)是…...
一文详解使用java easyexcel导出文件的几种情况
情况一:简单的导出指定类型文档,不要求格式 filePath-文件路径// 设置响应头response.setContentType("application/octet-stream");// 字符集处理,确保文件名的正确显示response.setHeader("Content-Disposition","…...
【蓝桥杯C/C++】深入解析I/O高效性能优化:std::ios::sync_with_stdio(false)
博客主页: [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 💯前言💯C 语言与 C 语言的输入输出对比1.1 C 语言的输入输出1.2 C 语言的输入输出 💯 std::ios::sync_with_stdio(false) 的作用与意义2.1 什么是 std::ios::sync_with_st…...
NUXT3学习日记四(路由中间件、导航守卫)
前言 在 Nuxt 3 中,中间件(Middleware)是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑,像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用,也可以只在特定页…...
数据科学与SQL:组距分组分析 | 区间分布问题
目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 绝对值分布分析也可以理解为组距分组分析。对于某个指标而言,一个记录对应的指标值的绝对值,肯定落在所有指标值的绝对值的最小值和最大值构成的区间内,根据一定的算法&#x…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
