QtCreator快速入门课时
《QTCreator快速入门》第十二章:3D绘图

《QTCreator快速⼊门》第⼗⼆章:3D绘图OpenGL是⼀套跨平台的⽤来渲染3D图形的API。
OpenGL⾃⾝是⼀个巨⼤的状态机:⼀系列的变量描述OpenGL此刻应当如何运⾏,OpenGL的状态通常被称为OpenGL上下⽂(Context)。
我们通常使⽤如下途径去更改OpenGL状态:设置选项,操作缓冲,最后,我们使⽤当前OpenGL上下⽂来渲染。
假设当我们想告诉OpenGL去画线段⽽不是三⾓形的时候,我们通过改变⼀些上下⽂变量来改变OpenGL状态,从⽽告诉OpenGL如何去绘图。
⼀旦我们改变了OpenGL的状态为绘制线段,下⼀个绘制命令就会画出线段⽽不是三⾓形。
当使⽤OpenGL的时候,我们会遇到⼀些状态设置函数,这类函数将会改变上下⽂。
以及状态使⽤函数,这类函数会根据当前OpenGL的状态执⾏⼀些操作。
⽐如下⾯例⼦中的glClearColor()函数是⼀个状态设置函数,⽽glClear()函数则是⼀个状态使⽤的函数,它使⽤了当前的状态来获取应该清除为的颜⾊。
Qt中的QtOpenGL模块提供了使⽤OpenGL的⽅法,使⽤它需要在.pro项⽬⽂件中添加QT+=opengl。
QGLWidget是QtOpenGL模块中的⼀个类,它是⼀个⽤来渲染OpenGL图形的部件,可以继承该类后来像使⽤其它QWidget部件⼀样使⽤它。
QGLWidget提供了3个虚函数重写它们来实现指定操作:initializeGL():设置OpenGL渲染环境,定义显⽰列表等,只在resizeGL()、paintGL()之前被调⽤⼀次。
resizeGL():设置OpenGL的视⼝,投影等,部件⼤⼩改变的时候被调⽤。
paintGL():渲染OpenGL场景,当部件需要更新时被调⽤。
Qt中有⼀个Hello GL⽰例程序,它在OpenGL分类中。
1、基本绘制下⾯代码使⽤QGLWidget绘制了⼀个直线、三⾓形、⽂本,其中的MyGLWidget继承⾃QGLWidget:#include <QApplication>#include "myglwidget.h"int main(int argc, char**argv){QApplication app(argc, argv);MyGLWidget w;w.resize(600, 400);w.show();return app.exec();}View Code#ifndef MYGLWIDGET_H#define MYGLWIDGET_H#include <QGLWidget>#include <GL/glu.h>class MyGLWidget: public QGLWidget{void initializeGL(){//void glClearColor(GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha);glClearColor(1.0, 0.0, 0.0, 0.0); //设置清除屏幕(glClear()⽅法)时使⽤的颜⾊为红⾊glShadeModel(GL_SMOOTH); //设置阴影平滑//void glClearDepth(GLclampd depth);glClearDepth(1.0); //设置深度缓存(深度缓冲区中每个像素需要的值)glEnable(GL_DEPTH_TEST); //启⽤深度测试功能,根据坐标的远近⾃动隐藏被遮住的图形(材料)}void resizeGL(int w, int h){//设置视⼝的⼤⼩:告诉OpenGL渲染窗⼝的尺⼨⼤⼩//也可以将视⼝的维度设置为⽐窗⼝的维度⼩,这样OpenGL渲染将会在⼀个⼩窗⼝中显⽰,这样⼦我们也可以将⼀些其它元素显⽰在OpenGL视⼝之外glViewport(0, 0, (GLint)w, (GLint)h);glMatrixMode(GL_PROJECTION); //投影矩阵模式glLoadIdentity(); //重置当前指定的矩阵为单位矩阵,这样可以将矩阵恢复到初始状态。
【精品课程】Qt Creator快速入门教程课件第2章HelloWorld程序

快速入门教程
主要内容
⏹2.1 编写HelloWorld程序(第1课时)
⏹2.2 程序的运行与发布(第1课时)
⏹2.3 helloworld程序源码与编译过程详解(第2课时)⏹2.4 项目模式和项目文件介绍(第2课时)
⏹2.5 小结(第2课时)
2.1 编写HelloWorld程序
什么是Hello World程序?
就是让应用程序显示“Hello World”字符串。
这是最简单的应用,但却包含了一个应用程序的基本要素,所以一般使用它来演示程序的创建过程。
在本节中要讲的就是在Qt Creator中创建一个图形用户界面的项目,来生成一个可以显示“Hello World”字符串的程序。
新建Qt Gui应用分五个步骤:
⏹第一步,选择项目模板。
⏹第二步,输入项目信息。
⏹第三步,选择构建套件。
⏹第四步,输入类信息。
⏹第五步,设置项目管理。
第一步,选择项目模板。
打开“文件→新建文件或项目”菜单项(也可以直接按下Ctrl+N快捷键,或者单击欢迎模式中的“Create
Project”按钮),在选择模板页面选择应用程序中的“Qt Gui应用”一项,然后单击“选择”按钮。
第二步,输入项目信息。
输入项目信息。
在“项目介绍和位置”页面输入项目的名称为
helloworld,然后单击创建路径右边的“浏览”按钮,在F盘中新建文件夹,命名为“2-1”,然后单击“选择文件夹”即可。
如果选中了这里的“设置默认的项目路径”,那么以后创建的项目会默认使用该目录。
(注意:项目名和路径中都不能出现中文。
)。
QtCreator快速入门第1章(1课时)-PPT精品文档

Qt使用4.8.5版本
地址:/archive/qt/4.8/4.8.5/ 下载文件:qt-win-opensource-4.8.5-mingw.exe
Qt Creator使用2.8.0版本
地址:/official_releases/qtcreator/2.8/2.8.0/ 下载文件:qt-creator-windows-opensource-2.8.0.exe
版本介绍
Qt安装包: qt-win-opensource-4.8.5-mingw.exe
win表示Windows平台 opensource表示开源版本 4.8.5是当前版本号 mingw表示使用MinGW编译器
注意:
安装路径中不能有中文 在MinGW安装(MinGW Installation)界面需要指定MinGW的路径,这里提示 需要使用GCC 4.4版本的MinGW。可以到Qter开源社区()的下载页 面下载MinGW,下载的文件是MinGW-gcc440_1.zip,下载完成后需要对其进 行解压缩,例如解压缩到了Qt的默认安装目录,那么应该填写C:\Qt\mingw
设置、布局设置等操作。可以在“工具→选项”菜单项中对设计师进行设置。
调试模式。支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程以及快
照等查看窗口。可以在“工具→选项”菜单项中设置调试器的相关选项。
项目模式。包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系等页面。
③ 构 建 套 件 选 择 器 ( Kit Selector ) 。 包 含 了 目 标 选 择 器 ( Target selector)、运行按钮(Run)、调试按钮(Debug)和构建按钮(Building)4 个图标。目标选择器用来选择要构建哪个项目,使用哪个Qt库,这对于多个Qt 库的项目很有用。这里还可以选择编译项目的debug版本或是release版本。运 行按钮可以实现项目的构建和运行;调试按钮可以进入调试模式,开始调试程 序;构建按钮完成项目的构建。 ④定位器(Locator)。在Qt Creator中可以使用定位器来快速定位项目、文件、 类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找 的结果。可以在“工具→选项”菜单项中设置定位器的相关选项。 ⑤输出窗格(Output panes) 。这里包含了问题、搜索结果、应用程序输出、 编译输出、QML/JS Console、概要信息、版本控制7个选项,它们分别对应一个 输出窗口,相应的快捷键依次是Alt + 数字1~7。问题窗口显示程序编译时的错 误和警告信息;搜索结果窗口显示执行了搜索操作后的结果信息;应用程序输 出窗口显示在应用程序运行过程中输出的所有信息;编译输出窗口显示程序编 译过程输出的相关信息;版本控制窗口显示版本控制的相关输出信息。
【精品课程】Qt Creator快速入门教程课件第5章应用程序主窗口

colorMenu->addAction(tr("绿色"));
toolBtn->setMenu(colorMenu);
// 添加菜单
toolBtn->setPopupMode(QToolButton::MenuButtonPopup); // 设置弹出模式
ui->nToolBar->addWidget(toolBtn);
快速入门教程
这一章开始接触应用程序主窗口的相关内容。对于日常见到的应用 程序而言,它们中的许多都是基于主窗口的,主窗口中包含了菜单栏 、工具栏、状态栏和中心区域等。本章会详细介绍主窗口的每一个部 分,还会涉及到资源管理、富文本处理、拖放操作和文档打印等相关 内容。
在Qt中提供了以QMainWindow类为核心的主窗口框架,它包含了 众多相关的类:
菜单栏
QMenuBar类提供了一个水平的菜单栏,在QMainWindow中可以直接获取它的 默认存在的菜单栏,向其中添加QMenu类型的菜单对象,然后向弹出菜单中 添加QAction类型的动作对象。
在QMenu中还提供了间隔器,可以在设计器中向添加菜单那样直接添加间隔 器,或者在代码中使用addSeparator()函数来添加,它是一条水平线,可以 将菜单分成几组,使得布局很整齐。
在设计器中给菜单栏、工具栏添加动作
在Qt Creator中双击项目中的.ui文件进入设计模式。 添加菜单,双击左上角的“在这里输入”,修改为“文件(&F)”,这里要使
用英文半角的括号,“&F”被称为加速键,表明程序运行时,可以按下Alt+F 键来激活该菜单。修改完成后,按下回车键,并在弹出的下拉菜单中,将第 一项改为“新建文件(&N)”并按下回车键。 这时可以看到在下面的Action编辑器中已经有了“新建文件”动作。 在这里用鼠标点击该动作,将其拖入菜单栏下面的工具栏中。
Qt入门教程详细讲解版

Qt入门教程详细讲解版Qt(发音为“cute”)是一种跨平台的应用程序开发框架,被广泛用于开发图形用户界面(GUI)应用程序。
它采用C++编程语言,提供了一系列的类和工具,使开发者可以轻松地创建各种各样的应用程序,无论是桌面应用程序、移动应用程序还是嵌入式应用程序等。
本教程将深入介绍Qt的基础知识和常用功能,帮助读者快速入门和掌握Qt 的开发技巧。
一、Qt简介及安装Qt是由挪威的Trolltech公司(后被诺基亚收购)开发的,目前由Digia公司维护和支持。
Qt提供了一套完整的工具链,包括了集成开发环境(IDE)、图形用户界面设计器、编译器、调试器等。
首先,我们需要下载和安装Qt开发环境,可以从Qt官方网站(www.qt.io)进行下载,并按照提示进行安装。
安装完成后,我们可以打开Qt Creator IDE开始创建我们的第一个Qt项目。
二、Qt基础知识1. Qt的核心组件Qt的核心组件包括QtCore、QtGui、QtWidgets等模块。
其中QtCore是Qt的核心库,提供了基础的非图形特性,如信号与槽机制、文件操作、多线程等。
QtGui模块提供了图形界面相关的类,如窗口、按钮、文本框等,用于创建和管理应用程序的用户界面。
QtWidgets模块是基于QtGui模块的高级封装,提供了更丰富的功能和更便捷的使用方式。
2. Qt的信号与槽信号与槽是Qt的核心机制之一,用于对象间的通信。
当一个对象的状态发生变化时,它会发出一个信号;其他对象可以通过连接到该信号的槽函数来接收这个信号并进行相应的处理。
信号与槽机制使得对象之间的解耦更加容易,大大降低了代码的复杂度。
3. Qt界面设计Qt提供了一种所见即所得的界面设计工具,可以快速创建和布局应用程序的用户界面。
通过拖拽和放置控件,我们可以直观地设计出我们想要的界面布局,并通过属性编辑器设置控件的属性。
同时,Qt还支持使用代码来创建和布局界面,灵活性非常高。
Qt Creator 快速入门实验讲义(带目录)

《Qt Creator快速入门》第2版实验讲义2014年6月目录实验1 Qt开发环境的搭建......................................................- 2 -目的与要求..................................................................................................................- 2 - 实验准备......................................................................................................................- 2 - 实验内容......................................................................................................................- 2 -实验2 编译和发布Qt程序...................................................- 16 -目的与要求................................................................................................................- 16 - 实验准备....................................................................................................................- 16 - 实验内容....................................................................................................................- 16 -实验3 使用Qt资源文件.......................................................- 25 -目的与要求................................................................................................................- 25 - 实验准备....................................................................................................................- 25 - 实验内容....................................................................................................................- 25 -实验4 创建登陆对话框..........................................................- 30 -目的与要求................................................................................................................- 30 - 实验准备....................................................................................................................- 30 - 实验内容....................................................................................................................- 30 -实验5 定时器和随机数..........................................................- 35 -目的与要求................................................................................................................- 35 - 实验准备....................................................................................................................- 35 - 实验内容....................................................................................................................- 35 -实验6 编译MySQL数据库驱动............................................- 38 -目的与要求................................................................................................................- 38 - 实验准备....................................................................................................................- 38 - 实验内容....................................................................................................................- 38 -实验7 数据库基本操作............................................................- 49 -目的与要求................................................................................................................- 49 - 实验准备....................................................................................................................- 49 - 实验内容....................................................................................................................- 49 -实验8 Qt数据库应用编程(综合设计)................................- 55 -目的与要求................................................................................................................- 55 - 实验准备....................................................................................................................- 55 - 实验内容....................................................................................................................- 55 -实验1 Qt开发环境的搭建目的与要求(1)掌握Qt开发环境的搭建方法(2)掌握Qt Creator的基本使用方法(3)了解Qt Creator的界面布局(4)了解Qt相关工具软件实验准备(1)对Qt及Qt Creator有基本了解(2)了解MinGW(3)下载Qt 4.8.5、Qt Creator 2.8.0和MinGW安装包实验内容1.安装Qt Creator(1)双击运行qt-creator-windows-opensource-2.8.0.exe安装包,将出现如图1.1所示的安装向导界面。
Qt Creator 快速入门期末总结 霍亚飞

题型:填空、判断、选择、简答、程序分析、程序设计一、基本知识点简单解释QtQt提供的工具有那些信号与插槽QtGUI应用程序的main()程序结构利用QtCreator创建窗口是,系统提供的3个基类Qt中顶层窗口与子部件的区别信号与插槽关联函数connection()在那个类中定义,前4个参数的意义两种关联(手动、自动)的区别模态和非模态对话框(概念、创建、初始化、运行、取结果)窗口几何布局(大小和位置)中的两类函数常用的窗口部件布局管理器的任务布局及相关的类(QHBoxLayout、QVBoxLayout、QGridLayout、QStackLayout)管理窗体上子窗口部件的布局方法,各方法优缺点比较大小策略、伸缩因子、伙伴关系QmainWindow框架包含的组件(图5-2)QmainWindow各部件使用的编程方法Qt对C++的一些扩展:Q_OBJECT、emit、moc、uic、父子对象为应用程序提供图片的常用方法(图片文件、XPM文件、资源机制)如何使用资源动作(action)创建菜单和工具栏的步骤中央窗口(中心部件)创建自定义窗口部件的方法(相关Qt窗口部件子类化、用Qt窗口部件作成员聚集组合类、窗口部件基类Qwidget子类化)Qt中常用的类:事件概念,几种常见的事件Qt中定时的方法及编程Qt中事件处理和事件过滤方法事件传递顺序Qt对象模型的特性顺序容器(QVector(T)、QLinkedList(T)、QList(T)、QStack(T)、QQueue(T))关联容器(QMap<K,T>、QHash<K,T>)两种类型的迭代器(各包含只读与读写型)通用算法二维图形的绘制方法(QPainter、paintEvent())绘图设备(QpaintDevice、QWidget、QPixmap、QImage)QPainter的三个主要设置(画笔、画刷、字体)及相应的类(QPen/QBrush/QFont)Qt坐标系统,坐标系统变换中的相关概念:窗口与视口,窗口设置、坐标变换Qt中输入输出方法及相关类文本文件和二进制文件读写操作Qt模型/视图架构数据库和网络应用程序中,在pro文件中分别要加入什么模块利用SQL语句Qt数据库应用程序的基本操作步骤(连接、查询、取结果)SQL模型类Qt中与网络相关的类(QNetworkAccessManager、QFtp、QHttp、QTcpSocket、QUdpSocket、QtcpServer)TCP客户与服务器通信程序模型线程概念及Qt相关类线程的创建与启动现成的同步与互斥,方法(Qmutex、QreadWriteLock、Qsemphore、QWaitCondition)二、简单程序设计对话框应用程序(age、find等)创建动作、工具栏、菜单的程序代码几种布局方法的关键代码文本文件和二进制文件读写操作Qt数据库基本应用程序(利用SQL语句)典型多线程应用程序(生产者与消费者)简单的TCP客户与服务器程序。
2D绘图

非零弯曲填充(WindingFill):
初始值为0; 顺时针绘制+1,逆时针绘制-1; 结果为0→外部,结果不为0→内部。
10.3.3 绘制图像
4个图像类
QImage类:常用
用来进行I/O处理,对I/O处理操作进行了优化,可以用来直接 访问和操作像素。
10.2.2 坐标变换
基本变换——仿射变换: X=AX0+b
放缩:QPainter::scale(sx,sy)函数
变换矩阵A=[(sx,0); (0,sy)],b=(0,0)
旋转:QPainter::rotate(α)函数
变换矩阵A=[(cosα, -sin α); (sin α, cos α)], b=(0,0)
QPaintDevice类的子类
QPicture
QImage
QPaintDevice
QPixmap
QPrinter
QObject
QWidget
QBitmap ……
10.1 基本绘制和填充
绘制操作
绘制操作一般由QPainter来完成,可以绘制的内容包括:
简单线条 复杂图形 图片 文本
绘制操作一般在部件的“重绘事件的处理函数”
跟默认①的一样,没有发生放缩。
类比:
“汇率100美元=691人民币”等价于“10美元=69.1人民币”
注意①:
视口和窗口并不是在限制允许的绘图范围!当视口小于绘图设备的 边界矩形时,可以绘制在视口给定矩形之外。
类比:虽然汇率是以100美元为标准,但可以兑换200或300美元。
注意②:
此处的“窗口”与“窗口部件”不同! 联系之处:窗口部件作为绘图设备时,其默认视口是其边界矩形,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发 应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系 统部署这些应用程序。Qt Software 的前身为创始于1994年的 Trolltech(奇趣科技),Trolltech于2008年6月被 Nokia 收购, 加速了其跨平台开发战略。
③ 构 建 套 件 选 择 器 ( Kit Selector ) 。 包 含 了 目 标 选 择 器 ( Target selector)、运行按钮(Run)、调试按钮(Debug)和构建按钮(Building)4 个图标。目标选择器用来选择要构建哪个项目,使用哪个Qt库,这对于多个Qt 库的项目很有用。这里还可以选择编译项目的debug版本或是release版本。运 行按钮可以实现项目的构建和运行;调试按钮可以进入调试模式,开始调试程 序;构建按钮完成项目的构建。
/official_releases/qtcreator/2.8/2.8.0/
下载文件:qt-creator-windows-opensource-2.8.0.exe
版本介绍
Qt安装包: qt-win-opensource-4.8.5-mingw.exe
win表示Windows平台 opensource表示开源版本 4.8.5是当前版本号 mingw表示使用MinGW编译器
②模式选择器(Mode Selector)。Qt Creator包含欢迎、编辑、设计、调试、 项目、分析和帮助7个模式,各个模式完成不同的功能,也可以使用快捷键来更 换模式,它们对应的快捷键依次是Ctrl + 数字1~7。
欢迎模式。这里主要提供了一些功能的快捷入口,如打开帮助教程、打开示例程序、打开项目、新建 项目、快速打开以前的项目和会话、联网查看Qt官方论坛和博客等。 编辑模式。这里主要用来查看和编辑程序代码,管理项目文件。也可以在“工具→选项”菜单项中对 编辑器进行设置。 设计模式。这里整合了Qt 设计师的功能。可以在这里设计图形界面,进行部件属性设置、信号和槽 设置、布局设置等操作。可以在“工具→选项”菜单项中对设计师进行设置。 调试模式。支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程以及快 照等查看窗口。可以在“工具→选项”菜单项中设置调试器的相关选项。 项目模式。包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系等页面。 也可以在“工具→选项”菜单项中对项目进行设置。 分析模式。可以使用QML分析器、Valgrind内存和功能分析器对代码的内存泄露等问题进行分析。可 以在“工具→选项”菜单中对分析器进行设置。 帮助模式。在帮助模式中将Qt助手整合了进来,包含目录、索引、查找和书签等几个导航模式。可以 在“工具→选项”菜单中对帮助进行相关设置。
Qt Creator是全新的跨平台 Qt IDE(集成开发环境),可单独 使用,也可与 Qt 库和开发工具组成一套完整的SDK(软件开发工 具包 )。其中包括:高级 C++ 代码编辑器、项目和生成管理工具、 集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览工 具。
Qt Quick是在Qt 4.7中被引进的一种高级用户界面技术,开发人 员和设计人员可用它协同创建动画触摸式用户界面和应用程序。Qt Quick是Qt 5的主要内容,本书中没有涉及。
主要内容
1.1 Qt Creator的下载和安装 1.2 Qt Creator环境介绍 1.3 Qt工具简介 1.4 小结
1.1 Qt Creator的下载和安装
为了避免由于开发环境的版本差异而产生不必要的问题, 推荐在学习本书前下载和本书相同的软件版本。这里采用 了Qt 和Qt Creator分别下载和安装的方式,这样可以随意 选择其版本。
Qt使用4.8.5版本
地址:/archive/qt/4.8/4.8.5/ 下载文件:qt-win-opensource-4.8.5-mingw.exe
Qt Creator使用2.8.0版本
地址:http://download.qt-
注意:
安装路径中不能有中文
在MinGW安装(MinGW Installation)界面需要指定MinGW的路径,这里提示 需要使用GCC 4.4版本的MinGW。可以到Qter开源社区()的下 载页面下载MinGW,下载的文件是MinGW-gcc440_1.zip,下载完成后需要对 其进行解压缩,例如解压缩到了Qt的默认安装目录,那么应该填写 C:\Qt\mingw
MinGW即Minimalist GNU For Windows,是将GNU开发工 具移植到Win32平台下的产物,是一套Windows上的GNU 工具集。用其开发的程序不需要额外的第三方DLL支持 就 可 以 直 接 在 Windows 下 运 行 。 更 多 内 容 请 查 看 。
1.2 QtБайду номын сангаасCreator环境介绍
Qt Creator主要由主窗口区、菜单栏、模式选择器、 构建套件选择器、定位器和输出窗格等部分组成
①菜单栏(Menu Bar)。这里有8个菜单选项,包含了常用的功能菜单。 文件菜单。其中包含了新建、打开和关闭项目和文件、打印文件和退出等基本 功能菜单。 编辑菜单。这里有撤销、剪切、复制、查找和选择编码等常用功能菜单,在高 级菜单中还有标示空白符、折叠代码、改变字体大小和使用vim风格编辑等功能 菜单。 构建菜单。包含构建和运行项目等相关的菜单。 调试菜单。包含调试程序等相关的功能菜单。 分析菜单。包含QML分析器、Valgrind内存和功能分析器等相关菜单。 工具菜单。这里提供了快速定位菜单、版本控制工具菜单和外部工具菜单等。 这里的选项菜单中包含了Qt Creator各个方面的设置选项:环境设置、文本编 辑器设置、帮助设置、构建和运行设置、调试器设置和版本控制设置等。 控制菜单。这里包含了设置窗口布局的一些菜单,如全屏显示和隐藏边栏等。 帮助菜单。包含Qt帮助、Qt Creator版本信息、报告bug和插件管理等菜单。