福优林@Qt5小白变大牛初级篇word---第10章.pdf


-
10.1 何为Qt样式表 由于Qt样式表的引入,定制Qt部件的外观样式变得非常简单。 Qt样式表的思想很大程度上是来自于HTML的层叠式样式表(CSS), 通过调用QWidget::setStyleSheet()或QApplication::setStyleSheet(), 你可以为一个独立的子部件、整个窗口,甚至是整个个应用程序指定一个样式表。 样式表是通过QStyle的一个叫做QStyleSheetStyle的特殊子类来实现的。 这个特殊的子类实际上是其他的系统特定风格类的包裹类,它会把通过样式表指定的自定义外观风格应用在底层的系统特定风格之上。 10.2 样式表语法基础 Qt样式表与CSS的语法规则几乎完全相同,如果你已经了解了CSS,完全可以跳过本节。 一个样式表由一系列的样式规则构成。每个样式规则都有着下面的形式: selector { attribute: value } 选择器(selector)部分通常是一个类名(例如QComboBox),当然也还有其他的语法形式。 属性(attribute)部分是一个样式表属性的名字, 值(value)部分是赋给该属性的值。 为了使用方便,我们还可以使用一种简化形式: selector1, selector2, ..., selectorM { attribute1: value1; attribute2: value2; ... attributeN: valueN; } 这种简化形式可以同时为与M个选择器相匹配的部件设置N种属性。 例如: QCheckBox, QComboBox, QSpinBox { color: red; //字体颜色:红 font: bold; } 这个规则设置了所有的QCheckBox、QComboBox和QSpinBox的前景色、背景色和字体。 10.3 方箱模型 在样式表中,每个部件都被看作是一个由四个同心相似的矩形组成的箱体: 空白(margin)、边框(border)、填充(padding)和内容(content)。 对于一个平面部件——例如一个空白、边框和填充都是0像素的部件——而言,这四个矩形是完全重合的。 空白区域位于边框外,并且总是透明的。 边框为部件提供了四周的框架,其border-style属性可以设置为一些内置的框架风格,如inset、outset、solid和ridge。 填充在边框和内容区域之间提供了空白间隔。 10.4 前景与背景 部件的前景色用于绘制上面的文本,可以通过color属性指定。 背景色用于绘制部件的填充矩形,可以通过background-color属性指定。 背景图片使用background-image属性定义,它用于绘制由background-origin指定的矩形区域(空白、边框、填充或内容)。背景图片在矩形区域内的对齐和平铺方式可以通过background-position和background-repeat属性指定。 QFrame { margin: 10px; border: 2px solid green; padding: 20px; background-image: url(qt.png); background-position: top right; background-origin: content; background-repeat: none; } 在这个例子中,QFrame四周的空白、边框和填充值都是一样的。 实际上margin属性可以在上下左右四个方向分别指定我们需要的不同值,例如: QFrame { margin: 14px 18px 20px 18px; } 同时,我们也可以分别指定margin-top、margin-right、margin-bottom、margin-left四个属性。 QFrame { margin-top: 14px; margin-right: 18px; margin-bottom: 20px; margin-left: 18px; } 虽然目前我们仅仅使用了QFrame作为例子,但是我们也可以同样的将这些属性应用于任何一个支持方箱模型的Qt部件,例如:QCheckBox、 QLabel、QLineEdit、QListView、QMenu、QPushButton、QTextEdit、和QToolTip。 10.5 可缩放样式 在默认情况下,通过background-image指定的背景图片会自动重复平铺,以覆盖部件的整个填充矩形

4.65MB
福优林@Qt5小白变大牛初级篇word---第1章.pdf
2020-07-231.1 Qt开发环境搭建(Qt Creator5.9.8) 搭环境:有可能会头疼。 因为每次学习一门技术都要亲手搭环境,然而又没有什么技术含量和复用性,纯机械式抄教程,但确实又经常出问题,有可能会比较头疼。 无论如何,一定要亲手搭建一次。
1.62MB
福优林@Qt5小白变大牛初级篇word---第17章.pdf
2020-07-23第17章 Qt面试题分析与讲解 254 0. 什么是 qt有什么优点 254 1. QT信号槽机制的优缺点 255 2. Qt信号和槽的本质是什么 255 3. 如何实现一个自定义按钮, 255 方法一: 255 方法二: 256 4. 多线程情况下, Qt中的信号槽分别在什么线程中执行, 如何控制? 256 5. 描述Windows下一个消息从触发到处理的整个路由过程. 256 6. 使用编码实现Lable显示“hello world”的功能 256 7. 编写代码实现调用槽函数退出的 quit 257 8. 编程实现 spinbox 和 slider的交互界面 257 9. 如何编译运行 qt 程序命令是什么 258 10. 如何将UI界面文件转化成代码的.h文件 259 11. QApplication QGuiApplication QCoreApplication 区别和联系 259 12. QApplication的主要功能 259 13. Qt国际化的三部曲 260 14. Qt国际化的操作步骤 260
983KB
福优林@Qt5小白变大牛初级篇word---第3章.pdf
2020-07-23第3章 Qt信号槽使用及其原理 96 3.1 Qt信号槽概念原理讲解 96 信号槽机制 96 信号是什么 96 槽是什么 97 信号与槽的关联 97 3.2 Qt的moc机制 98 moc简介 98 moc过程 98 moc小结 99 3.3 手动使用moc分析信号代码 100 编辑源代码 100 moc处理 100 分析moc文件 100 3.4 Qt Designer 中设置信号与槽 101 3.5 使用connect函数实现信号槽绑定 103 3.6 内功的修炼--底层操作系统的通信机制 105
688KB
福优林@Qt5小白变大牛初级篇word---第14章.pdf
2020-07-23Qt视频播放器 Qt对音视频的播放和控制、相机拍摄、收音机等多媒体应用提供了强大的支持。 Qt5使用了全新的Qt Multimedia模块来实现多媒体应用,Qt4中用来实现多媒体功能的Phonon模块已经被移除。 新的Qt Multimedia模块提供了丰富的接口,可以轻松地使用平台的多媒体功能。例如进行媒体播放、使用相机和收音机等。 QMediaPlayer简介 QMediaPlayer播放视频要在界面上显示出来,还需要其他类进行辅助,比如QVideoWidget类。:编解码 QVideoWidget继承自QWidget,所有它可以作为一个普通窗口部件进行显示,也可以嵌入到其他窗口。:播放窗口 将QVideoWidget指定为QMediaPlayer的视频输出窗口后,就可以显示播放的视频画面。 二者组合,可以播放视频: player = new QMediaPlayer; videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); videoWidget->show(); player->play(); QVideoWidget简介 QvideoWidget是一个用来展示视频的类,需要先定义一个QMediaPlayer对象,然后将QMediaPlayer的VideoOutput设置为QVideoWidget对象即可 QVideoWidget属性 名称 类型 说明 aspectRatioMode Qt::AspectRatioMode 显示比率 brightness int 亮度 contrast int 对比度 fullScreen bool 是否全屏 hue int 色调 mediaObject QMediaObject *const 视频媒体对象 saturation int 饱和度 error: C1083: 问题:qt creator报错 error: C1083: 无法打开包括文件:“QMediaPlayer” 解决:QT += multimedia multimediawidgets 如何获取duration QT关于QMediaplayer 的duration()获取的音视频时间长度为0的问题。 在QT中,使用QMediaplayer类可以很方便地实现视频的播放,而在QMediaplayer类中有个duration函数可以直接获取所打开视频的总时间长度。 但使用后你会发现duration()返回的居然是个0。 官方解释: The value may change across the life time of the QMediaPlayer object and may not be available when initial playback begins, connect to the durationChanged() signal to receive status notifications. 在初始回放开始时可能不可用,请连接durationChanged()信号以接收状态通知。 即我们只需要写个槽函数,在槽函数里面调用duration()就可以接收到正确的时间 例: //第一步:连接槽函数,信号为QMediaPlayer自带的durationChanged,槽就是自己定义的getduration,注意参数类型要一致 QObject::connect(player, SIGNAL(durationChanged(qint64)), this, SLOT(getduration(qint64))); //第二步:写槽函数,mediaplay为类名,不同类需要修改这个类名,playtime为总时长 void Widget::getduration(qint64 playtime) { // 在这里获取duration(...) playtime = player->duration(); } 经过以上两步就可以获得正确的时间啦。 以下再附上把获得的时间转化为时分秒的函数: QString Widget::convertMillisecToString(qint64 millisec) { int h,m,s; millisec /= 1000; //获得的时间是以毫秒为单位的 h = (int)millisec / 3600; m = ((int)millisec - h*3600)/60; s = (int)millisec - h*3600 - m*60; //把int型转化为string类型 QString strFormat = QString("%1:%2:%3") .arg(h,2,10,QChar('0')) .arg(m,2,10,QChar('0')) .arg(s,2,10,QChar('0')); return strFormat; } 双击全屏显示
571KB
福优林@Qt5小白变大牛初级篇word---第11章.pdf
2020-07-2311.1 Qml简介 从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。 而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于 JavaScript 的声明式语言。 在 Qt 5 中, QML 有了长足进步,并且同 C++ 并列成为 Qt 的首选编程语言。 也就是说,使用 Qt 5,我们不仅可以使用 C++ 开发 Qt 程序,而且可以使用 QML。 虽然 QML 是解释型语言,性能要比 C++ 低一些,但是新版 QML 使用 V8,Qt 5.2 又引入了专为 QML 优化的 V4 引擎,使得其性能不再有明显降低。 在 Nokia 发布 Qt 4.7 的时候,QML 被用于开发手机应用程序,全面支持触摸操作、流畅的动画效果等。但是在 Qt 5 中,QML 已经不仅限于开发手机应用,也可以用户开发传统的桌面程序。 QML 文档描述了一个对象树。 QML 元素包含了其构造块、图形元素(矩形、图片等)和行为(例如动画、切换等)。这些 QML 元素按照一定的嵌套关系构成复杂的组件,供用户交互。 Qt QML模块为QML语言开发应用程序和库提供了一个框架。 它定义并实现了语言及其引擎架构,并且提供了一个接口,允许应用开发者以自定义类型和集成JavaScript与C++代码的方式来扩展QML语言。 Qt QML模块提供了QML和C++两套接口。 QML(Qt Meta-Object Language,Qt元对象语言)是一种用于描述应用程序用户界面的声明式编程语言。 QML是一种高可读性的语言,可以使组件以动态方式进行交互,并且允许组件在用户界面中很容易地实现复用和自定义。 QML允许开发者和设计者以类似的方式创建高性能的、具有流畅的动画效果的、极具视觉吸引力的应用程序。 QML提供了一个具有高可读性的类似JSON的声明式语法,并提供了必要的JavaScript语句和动态属性绑定的支持。 QML语言和引擎框架由Qt QML模块提供。 11.2 创建一个Qt Quick应用
2.74MB
福优林@Qt5小白变大牛初级篇word---第2章.pdf
2020-07-23第2章 Qt的HelloWorld(GUI)及剖析 65 2.1 hello world程序创建及运行 65 2.1 hello world程序创建及运行(VS2015) 68 2.1 调试源代码 69 2.2 Qt之pro配置详解 69 2.2.1 注释 69 2.2.2 CONFIG 69 2.2.3 DEFINES 69 2.2.4 FORMS 70 2.2.5 HEADERS 70 2.2.6 INCLUDEPATH 70 2.2.7 LIBS 71 2.2.8 QT 71 2.2.9 SOURCES 71 2.2.10 TRANSLATIONS 71 2.2.11 TARGET 72 2.3 Qt之输出控制 72 2.3.1 示例代码 72 2.3.2 GUI应用程序输出 72 2.3.3 GUI程序的控制台输出 73 2.4 Qt程序的命令行方式 74 2.4.1 步骤一:命令行编译ui文件并创建项目.pro文件 75 2.4.2 步骤二:构建项目.pro文件 75 2.4.3 步骤三:命令行编译生成exe 75 2.5 Qt程序的运行和发布 76 2.5.1 设置环境变量 76 2.5.2 生成.exe程序 77 2.5.3 使用windeployqt自动复制所依赖的dll 77
538KB
福优林@Qt5小白变大牛初级篇word---第5章.pdf
2020-07-23Qt Widgets模块提供了一组UI元素来创建经典的桌面风格的用户界面。 1.Widgets概述 QWidget类是所有用户界面对象的基类。 头文件:要包含模块类的定义,请使用以下指令: #include <QtWidgets> 库文件:要链接模块,请将以下行添加到您的qmake .pro文件中: QT += widgets 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。 每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。 一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 5.3.1 QWidget简介 在 Qt 中,我们将窗口和控件统称为部件(Widget) QWidget类是所有用户界面对象的基类,被称为基础窗口部件。 像主窗口、对话框、标签、还有按钮、文本输入框等都是窗口部件。 这些部件可以接受用户输入,显示数据和状态信息,并且在屏幕上绘制自己。 5.3.2 窗口与控件 QT把没有嵌入到其它部件的部件称为窗口,一般窗口都有边框和标题栏,就像程序中的widget和label一样,QMainWindow和大量的QDialog子类是最一般的窗口类型,窗口就是没有父部件的部件,所以又称为顶级部件。 窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等。 控件是指按钮、复选框、文本框、表格、进度条等这些组成程序的基本元素。 一个程序可以有多个窗口,一个窗口也可以有多个控件。
577KB
福优林@Qt5小白变大牛初级篇word---第12章.pdf
2020-07-23第12章 Qt项目实战之计算器 12.1 简介 计算器的样子模仿Windows自带的计算器,但是简化了一些。 一整体方案设计 本设计总体可分为两个部分,界面设计部分和内部逻辑部分。 界面设计入上图所示一些按钮和一个QLineEdit(用于输入数字和显示结果)和QLabel(用于显示运算表达式)。 主要是采用界面设计师(直接拖拽设计)和代码设计部分。 基本上外部的垂直布局里面套了个网格布局(网格布局里主要是处于下方的按钮) 12.2 MVC框架 MVC(Model-View-Controller)框架 其实从字面意思来说,只能了解各大概,view应该是视图的意思,那Model和Controller究竟是什么? Model: 处理数据逻辑和程序运行状态,实体类,用于存储属性值 View: 则只负责显示 Controller: 通常负责处理用户交互的部分,从视图读取数据与用户输入,并向模型发送数据;这里顺便提一下,在Qt里面我们并没有Controller的概念,而是Delegate(委托),意义很明显:控制器委托模型来处理数据,模型委托控制器来做数据的交互。 这样的框架好处是很明显的: - 高重用性:一个模型可以有多个视图,同样一个视图也可以对应多个模型 - 低耦合:因为模型与视图分离,所以可以独立的拓展和修改而不产生相互的影响 - 快速开发和便捷部署 12.3 创建工程 打开Qt Creator 点击New Project 创建工程 选择Qt Widgets Application,点击Choose, 按照提示,填写名称和路径,然后下一步。 选择基类是QWidget,类名为Widget.(或者自己取名) 然后下一步。 然后点完成。 程序创建好了。 12.4 界面设计(View) 双击后缀为.ui的文件,进入设计界面。 我们在这里进行布局。 模仿windows系统自带计算器,我们设计的计算器的界面为: 设计界面的操作比较简单:上面是一个LineEdit和一个Label,用于显示, 下面是4x4的按钮区(Push Button)。 设置好界面后,为了方便后面的操作,我们要修改它们的名字。 例如按钮C:功能是清除,名字就改成btn_clear.
296KB
福优林@Qt5小白变大牛初级篇word---第18章.pdf
2020-07-23第18章 Qt零基础之中级篇概览 IO操作:文件、目录、流 Qt内存管理 Qt进程与线程 二维图形 XML与Json 数据库:SQL语法、SQLite、Mysql 网络编程:Socket、tcp、udp
1.49MB
福优林@Qt5小白变大牛初级篇word---第8章.pdf
2020-07-23局简介 布局管理器 布局是一种优雅而灵活的方式,可以在其容器中自动安排子部件。 每个小部件通过sizeHint和sizePolicy属性将其大小要求报告给布局,并且该布局相应地分配可用空间。 Qt Designer是一个强大的工具,用于在布局中交互式创建和排列小部件。 第7章讲述了一些窗口部件,当时往界面上拖放部件时都是随意放置的,这对于学习部件的使用没有太大的影响,但是,对于一个完善的软件,布局管理却是必不可少的。 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都要进行布局管理。 QLayout类 QLayout类是布局管理器的基类,是一个抽象基类,继承自 QObject 和 QLayoutItem 类,而 QLayoutltem 类提供了 一个供 QLayout 操作的抽象项目。 QLayout 和 QLayoutItem 都是在设计自己的布局管理器时才使用的,一般只需要使用 QLayout 的几个子类就可以了,分别是: QBoxLayout(基本布局管理器) QGridLayout(栅格布局管理器) QFormLayout(表单布局管理器) QStackedLayout(栈布局管理器) Qt提供的布局类以及他们之间的继承关系(如下图):
1.9MB
福优林@Qt5小白变大牛初级篇word---第6章.pdf
2020-07-23主窗口为建立应用程序用户界面提供了一个框架,Qt提供了QMainWindow和其他一些相关的类共同完成主窗口的管理。 QMainWindow类拥有自己的布局,见下图 (1).菜单栏(QMenuBar) 菜单栏包含了一个下拉菜单项的列表,这些菜单项由QAction类实现。 位于窗口顶部,一个主窗口只能有一个菜单栏。 (2).工具栏(QToolBar) 工具栏用于显示一些常见的菜单项,也可以插入其他窗口部件,可以移动。 一个主窗口可以拥有多个工具栏。 (3).中心部件(CenterWidget) 应用程序的主要功能实现区域。 一个主窗口只能有一个中心部件。 (4).Dock部件(QDockWidget) Dock部件常被称为停靠窗口可以停靠在中心部件的四周,像工具箱一样。 一个窗口可以拥有多个Dock部件。 (5).状态栏(QStatusBar) 状态栏用于显示程序的一些状态信息,在主窗口的最底部。 一个窗口只能拥有一个状态栏。 注意:QMainWIndow类中默认提供了一个菜单栏、一个工具栏、一个中心区域和一个状态栏,而Dock部件是需要自己添加的。
707KB
福优林@Qt5小白变大牛初级篇word---第13章 .pdf
2020-07-23第13章 Qt项目实战之信息管理系统 13.1 CRM简介 概念 CRM软件全名是客户关系管理软件(Customer Relationship Management),同时这个软件也可以处理一些数据,包括:客户、产品、关系、销售、财务、等等。 企业客户业务 CRM 的中心是实时客户信息库,它具有先进强大的预构建结构可帮助用户捕获、存储不同类型的信息,然后根据用户的需求进行过滤,实时展示用户所需的信息。 客户信息库的任何数据更新,与其相关的其它信息也会相应地实时自动更新。 企业客户生命周期管理 企业客户的基本信息 企业客户的联系信息 企业客户的兴趣与偏好 企业客户的财务与信用信息 企业客户的交互、问题和行动 企业客户的交易历史与价值 企业客户的营销管理 内容营销 关系营销 社交媒体营销 一对一个性化营销 电子问卷调查 电子邮件营销 搜索引擎营销 企业客户的财务与信用 企业客户业务 CRM 支持记录每个企业客户的财务报告,信用评级以及应收账款信息等。这些信息能帮助您的团队更好地确定报价与选择适当的收款方式,以降低回款风险。 有良好财务状况的客户是价值更高的客户,您可以根据客户的财务信息更准确地识别高价值的客户并寻求长期的合作关系。 13.2 UI设计:巧妙使用Layout 总共两个界面,主界面和信息添加界面。 主界面结构: 左侧:数组件,QTreeWidget 右侧: 右上:按钮(添加、删除) 右下:表格组件,QTableWidget 布局: 主布局: 水平结构,QHorizontalLayout 右侧布局: 垂直结构,QVerticalLayout 信息添加界面: 主布局: QGridLayout 字段结构: QFormLayout
309KB
福优林@Qt5小白变大牛初级篇word---第16章.pdf
2020-07-23视频转码 -- 操作说明 HiTT -- 福优学苑音视频转码系统,经典的B/S架构,分为Tomcat服务端和浏览器端。 服务端负责对视频文件进行转码,浏览器主要上传视频文件、查看进度、管理视频等。 第1步:创建转码模板,设置各种转码参数 第2步:创建素材类别,方便对视频进行维护 第3步:选择音视频文件,并上传(断点续传、大文件切片) 第4步:正在转码的视频列表,显示实时进度 第5步:视频列表,包括转码完成、正在转码、转码失败 第6步:素材列表,包括音频列表、视频列表、图片列表
686KB
福优林@Qt5小白变大牛初级篇word---第15章.pdf
2020-07-23视频加密 视频加密 -- 操作说明 音视频加密,经典的C/S架构,分为服务端和客户端。 服务端负责对视频文件进行加密,客户端主要负责播放视频(边解密边播放)。 第1步:选择音视频文件 第2步:加密设置(密码设置、加密模式、一机一码、共享模式、绑定硬盘主板显卡) 第3步:播放设置(次数限制、预览限制、时间限制、播放比例、视频水印设置) 第4步:防盗设置(防止录屏、禁止截屏、禁止虚拟机播放、防盗问答) 第5步:输出设置(输出文件夹) 播放器:一机一码,边解密边播放,保护视频版权
31.75MB
课件与源码打包——qt5小白变大牛初级篇.rar
2020-07-24课件与源码打包——qt5小白变大牛初级篇,Qt5(C++)零基础理论与实战之初级篇, 1.带领你学习QT5/C++,从开发环境(QTCreator和VS2015两种)搭建到项目实战,从入门到精通。 2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法(可以下载所有的电子课件与源码)。 3.本阶段主要完成Qt开发环境搭建、基于Widget的图形控件、布局管理、容器类、QT事件处理、QSS、QML等几个方面知识的学习 4.项目实战部分包括:计算器、CRM、视频播放器、视频加密器、等。 5.通过学习qt框架,进一步加深了对C++设计模式的理解。可以真正投入到实战中,能做基于QT跨平台功能强大的界面程序。
10.25MB
qt5-qtwebkit-5.9.1-2.el7.x86_64.rpm
2020-01-06qt5-qtwebkit-5.9.1-2.el7.x86_64.rpm插件,完美解决Teamviewer Linux 报错
18.61MB
qt-eclipse-integration-linux.x86-1.5.2.tar.gz
2009-09-05qt-eclipse-integration-linux.x86-1.5.2.tar.gz
-
下载
三级课题小说爬虫系统.pdf
三级课题小说爬虫系统.pdf
-
下载
HK2 122.pdf
HK2 122.pdf
-
下载
model500.h5
model500.h5
-
下载
*****数据预处理.ppt*******
*****数据预处理.ppt*******
-
下载
Hello,Fresh 2021,手绘超Cute清新赏心悦目轻柔的ppt音乐模板~.pptx
Hello,Fresh 2021,手绘超Cute清新赏心悦目轻柔的ppt音乐模板~.pptx
-
下载
QE表面能计算课程视频PPT
QE表面能计算课程视频PPT
-
下载
学习秘籍.xlsx 自己看文章总结的方法,可操作性强
学习秘籍.xlsx 自己看文章总结的方法,可操作性强
-
下载
黑龙江省青冈县第一中学校2020-2021学年高二第二学期月考(筑梦班) 数学(文)试卷 Word版含答案.doc
黑龙江省青冈县第一中学校2020-2021学年高二第二学期月考(筑梦班) 数学(文)试卷 Word版含答案.doc
-
下载
利用钢管三角桁架施工较大悬挑结构.doc
利用钢管三角桁架施工较大悬挑结构.doc
-
下载
黑龙江省青冈县第一中学校2020-2021学年高二第二学期月考(筑梦班) 地理试卷 Word版含答案.doc
黑龙江省青冈县第一中学校2020-2021学年高二第二学期月考(筑梦班) 地理试卷 Word版含答案.doc
