第一章 Qt入门

2023-11-17

2017/10/20

HelloZEX


感谢奇趣科技公司(Trolltech,Qt门户:https://www.qt.io)为我们提供了Qt(一种图形用户界面框架)。利用Qt提供的C++应用程序开发框架,可以轻松实现“一次编写,随处编译”跨平台解决方案。Qt5相对于4修改最明显的就是Qt的GUI的模块的修改,而且Qt5溢出了Qt OpenGL模块,重新复合在Qt Gu中了,Qt5直接内置JSON解析。学习中可以用VS2015+Qt5.7(我的选择,但是部分还是使用Qt4的方法)或者VS2010+Qt4.8.4+add-in。Qt帮助文档MSDN和Assist简直神器,要好好利用。

笔记不完全按照GUI4这本书的结构顺序,根据学习进程做适当修改。暂时不对安装环境配置作解释。

一、第一个程序  HelloZEX

#include <QtWidgets/QApplication>
#include <QLabel>
#include <QPushButton>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QLabel *label = new QLabel("HelloZEX");
	label->show();

	QPushButton *pushButton = new QPushButton("HelloZEX");
	pushButton->show();

	return a.exec();
}

闯进了一个Qapplication对象,用来管理整个应用程序框架的资源。创建一个QLabel和QPushButton上面默认显示“HelloZEX”字符串。 return将用用程序的控制权专递给Qt

,此时程序会进入时间循环状态。


二、信号槽建立连接

信号槽机制是Qt使用的精髓之一,可以让编程人员将互不相关的对象绑定在一起,实现随想之间的通信。与Windows消息机制类似,基于回调函数,用信号与槽代替函数指针,是程序更加安全简洁。

#include <QtWidgets/QApplication>
#include <QLabel>
#include <QPushButton>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QLabel *label = new QLabel("Label");
	QPushButton *pushButton = new QPushButton("HelloZEX");
	QObject::connect(pushButton, SIGNAL(clicked()), label, SLOT(show()));
	pushButton->show();
	return a.exec();
}

信号槽使用格式为:

QObject::connect(pushButton, SIGNAL(clicked()), label, SLOT(show()));

参数分别为 谁发的消息+发的什么消息+谁接收的消息+做出什么反应,如果消息中含有参数,那么SIGNAL和SLOT参数必须相同。


三、窗口部件的布局

有三个主要的布局管理器:QHBoxLayout + QVBoxLayout + QGridLayout。如果不需要new动态的窗口部件使用Qt Designer绘制会更加方便。

#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);

	QWidget *window = new QWidget;
	window->setWindowTitle("Enter Your Age");

	QSpinBox *spinBox = new QSpinBox;
	QSlider *slider = new QSlider(Qt::Horizontal);
	spinBox->setRange(0, 130);
	slider->setRange(0, 130);

	QObject::connect(spinBox, SIGNAL(valueChanged(int)),
		slider, SLOT(setValue(int)));
	QObject::connect(slider, SIGNAL(valueChanged(int)),
		spinBox, SLOT(setValue(int)));
	spinBox->setValue(35);

	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(spinBox);
	layout->addWidget(slider);
	window->setLayout(layout);

	window->show();

	return app.exec();
}


四、使用参考文档

你不太可能记住所有的类和函数,所以使用一些在线参考文档、Qt助手或者论坛会事半功倍=-=。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一章 Qt入门 的相关文章

  • STM32+W5500+MQTT使用记录

    第一次尝试写博客 不为别的 为了积累一些知识和记录下使用的遇到的问题 关于MQTT协议的介绍可以百度搜索或者在本论坛内查找 介绍的还是很多 而且介绍的很想学习 当然我也收藏了很多 一下主要介绍我使用时如何处理的 1 实现MQTT协议 要基于
  • 知识星球-伙伴匹配系统08

    伙伴匹配系统08 控制定时任务的执行 锁 分布式锁 分布式锁实现的关键 抢锁机制 注意事项 Redisson 实现分布式锁 2 种引入方式 定时任务 锁 控制定时任务的执行 为啥 浪费资源 想象 10000 台服务器同时 打鸣 脏数据 比如
  • 学生python编辑2--反弹的小球

    目录 上下反弹的小球 左右反弹的小球 碰边反弹的小球 上下反弹的小球 coding UTF 8 开发团队 信息化未来 开发人员 Administrator 开发时间 2022 8 21 17 52 文件名称 自动反弹的小球 py 开发工具
  • 初级5 题目三 认识布隆过滤器

    1 布隆过滤器的使用需求是 查询一个东西是否在一个集合中 例如现在有 100 亿个url被列为黑名单 每次用户访问到该 url 时 返回 false 如果单纯地使用 HashSet 至少 6400 亿字节内存的损耗 而布隆过滤器可以极大程度
  • Python 实现 PCA

    前言 说好的要做个有逼格的技术博客 虽然这篇依然没什么水平 但总算走出了第一步 希望以后每天都能进步一点点吧 接触机器学习也一年多了 也学了很多算法 而PCA是数据预处理中一个很重要的算法 当时学习的时候也在网上看了很多资料 没想到一个简单
  • java.io.IOException: read failed, socket might closed or timeout, read ret: -1

    好吧 重要的事情说三遍 连接蓝牙前关闭蓝牙搜索 连接蓝牙前关闭蓝牙搜索 连接蓝牙前关闭蓝牙搜索
  • 补码加减运算及判断溢出方法

    一 补码加减运算 二 判断溢出方法 1 符号位判溢出方法 对于加减运算 两个异号数相加或者两个同号数相减 结果的绝对值一定比任何一个数的绝对值要小 不会发生上溢出 两个异号数相减或者两个同号数相加的绝对值肯定比任何一个数要大 可能发生溢出
  • UE4的视频播放(Media Player)

    1 视频播放Begining 首先将需要播放的视频拖入 创建Media Player和Media Texture 创建Material 将材质改为User Interface 在UI界面 创建Image 将这个材质装入 在人物Pawn界面添
  • FriendlyDesktop系统烧写,SOM-RK3399/NanoPC T4烧录系统

    SOM RK3399 SOM RK3399 V2 NanoPC T4的系统是通用的 由于Type C烧写有蛮大的概率会识别不成功 实测 所以建议使用SD卡脱机烧写 友善之臂提供了几种系统支持 android7 8 10 FriendlyCo
  • Redis概述与安装

    Redis简介 首先 简单了解一下NoSQL Not only sql 不要错误的理解为 没有SQL 而是不仅仅是SQL NoSQL工具也是一种简易的数据库 它主要是基于内存的数据库 并提供一定的持久化功能 现在有很多这种技术如 memca
  • VS2022·初尝试评测(非专业测评)

    阅文时长 0 59分钟 字数统计 956 8字符 主要内容 1 引言 背景 2 载入界面 UI图标等细节 3 加载项目时间对比 4 编译项目时间对比 5 声明与参考资料 VS2022 初尝试评测 非专业测评 编写人 SCscHero
  • Python3快速入门(六)——Python3面向对象

    Python3快速入门 六 Python3面向对象 一 面向对象技术简介 1 面向对象简介 面向对象编程 Object Oriented Programing OOP 是一种编程思想 OOP把对象当成程序的一个基本单元 一个对象包含数据和操

随机推荐

  • springboot配置RabbitMQ时,本地正常,远程连接RabbitMQ却无法生成Queue,Exchange

    RabbitMQ 在springboot中 无法正确操作远程服务器的问题 问题描述 如果你已经确定你的IP正确 端口号也是5672 账号没有使用默认的guest账号 但是还是没有连接上远程的RabbitMQ 可能是你的springboot配
  • int8,FLOPS,FLOPs,TOPS 等具体含义

    1 定义 算力的计量单位FLOPS Floating point operations per second FLOPS表示每秒浮点的运算次数 具体使用时 FLOPS前面还会有一个字母常量 例如TFLOPS PFLOPS 这个字母T P代表
  • 翻页特效原理

    http www open open com lib view 1326265166952 实现真实的翻页效果 为了能在翻页的过程中看到下一页的内容 在翻页之前必须准备两张页面 一张是当前页 另一张是下一页 翻页的过程就是对这两张页面的剪切
  • SAGE(SAGEMATH)密码学基本使用方法

    求逆元 inv inverse mod 30 1373 print 30 inv 1373 1 扩展欧几里得算法 d u v xgcd 20 30 print d 0 u 1 v 2 format d u v d 10 u 1 v 1 孙子
  • win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法...

    打印机是我们办公室中必备的设备 如今各种打印方式也是层出不穷 最近有用户在使用win10系统进行打印的时候遇到了这样的提示信息 windows 无法连接到打印机 在更详细的信息提示界面中已经告诉我们是由于本地打印店额后台服务程序没有启用导致
  • void、void 的使用

    void的使用 1 对函数返回值的限定 函数无返回值 void test int a int num a 2 void 限定函数的返回值为任意类型的指针 void test int a 5 int p a return p 3 对函数参数的
  • ASCII unicode utf8 编码、解码的那些事

    ASCII unicode gbk utf8 编码 解码的那些事 对应编码这块一直处于一种懵懵懂懂的状态 有的时候去查了资料 当下理解了 过一段时间又遗忘了 今天又重新查阅了一番资料 记录一下所感所悟 阮一峰老师 关于编码的总结 1 ASC
  • 【学一点儿前端】box-sizing以及flex:1的解释

    box sizing box sizing 是一种用于控制CSS盒子模型行为的CSS属性 它的作用是指定元素的宽度和高度的计算方式 以确定元素的总尺寸 具体来说 box sizing 可以有两个可能的取值 1 content box 默认值
  • hive加载数据权限报错

    前提 上传数据至hdfs 的 user root 下 创建了hive的orc表 准备load数据 创建了临时的ordertmp的textfile格式表 后面用insert overwrite进目标表 执行load data 从 user r
  • 2020-06-07

    Arcgis engine实现栅格运算功能 有大佬能帮助一下吗 arcgis是10 2版本的 环境是vs2015
  • linux的-Mtime 命令

    我在写shell脚本的时候 定时删除一些文件的时候 也经常用得到 mtime这个参数 所以打算好好看看 把它弄明白一下 man find里的解释 mtime n File s data was last modified n 24 hour
  • java ee 运行环境_EE质量检查:为我们的网站开发和运行自动测试

    java ee 运行环境 Introduction 介绍 This article is the last of three articles that explain why and how the Experts Exchange QA
  • 【Python_requests学习笔记(九)】基于requests和threading模块实现多线程爬虫

    基于requests和threading模块实现多线程爬虫 前言 此篇文章中介绍基于 requests 和 threading 模块实现多线程爬虫 并以 抓取Cocos中文社区中 热门主题下的帖子名称及id数据 为例进行讲解 因主要介绍如何
  • 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南

    适用对象 系列 产品型号 HC32L130 HC32L130E8PA HC32L130F8UA HC32L130J8TA HC32L130J8UA HC32L136 HC32L136J8TA HC32L136K8TA HC32L130 HC
  • 三角函数常见基本公式

    定义式 图形 正弦 sin 余弦 cos 正切 tan或tg 余切 cot或ctg 正割 sec 余割 csc 函数关系 商数关系 倒数关系 平方关系 和差角公式 二角和差公式 三角和公式 积化和差公式 倍角公式 二倍角公式 三倍角公式 四
  • centos7初始化操作-时间同步/网络防火墙/本地源/ssh/等

    一 chrony安装及配置 验证 说明 协议 NTP协议 时间同步必要场景 集群 日志 加密协议等 相关文章 https blog csdn net weixin 44515412 article details 106875753 1 安
  • 使用Lodop控件打印表单和二维码

    文章目录 1 了解Lodop 1 1Lodop的定义 1 2Lodop主要函数 1 3Lodop的下载 2 在页面中引入Lodop 3 支持的浏览器 4 Lodop的应用 4 1使用Lodop打印表单 4 2打印二维码 1 了解Lodop
  • Python学习笔记(十二)————判断语句相关

    目录 1 布尔类型的定义 2 比较运算符 3 if语句 4 if else语句 5 if elif else语句 1 布尔类型的定义 布尔类型的字面量 True 表示真 是 肯定 False 表示假 否 否定 布尔类型的数据 不仅可以通过定
  • UNI APP---Android端原生插件开发实战(一)

    1 前言 最近一个项目要求我们的产品必须走网络隧道 并且提供了对应的SDK 很明显只能通过原生开发的方式才能实现这个流程 笔者没有做过原生开发 也没有学过java 所以也踩了不少坑啊 花了两天时间总算完成任务 今天系统的总结下步骤 由于是根
  • 第一章 Qt入门

    2017 10 20 HelloZEX 感谢奇趣科技公司 Trolltech Qt门户 https www qt io 为我们提供了Qt 一种图形用户界面框架 利用Qt提供的C 应用程序开发框架 可以轻松实现 一次编写 随处编译 跨平台解决