基于qt的图像格式转换器设计与实现毕业论文内容摘要:
球 等 一些大家熟悉的软件, Qt 发展前景很好,也非常容易入手,做出自己喜欢的软件。 在 开发上 可以降低成本,有很广的 市场 发展前景。 ( 1)跨平台特性,避免重复造车轮 写一次源代码,能在不同的系统平台下编译,这个功能很强大,目前,还没有什么软件与它相比。 有人说 flex build 可以跨平台,那么,二者效率不可同日而语, Qt 的效率还是不错的。 北京邮电大学毕业设计 6 使用 Qt 这么长时间,如果项目中使用的类不是第三方的,所开发的程序能完美在不同系统,不同体系的平台上运行。 如一个监控项目,所开发的程序,除了 引用第三方的串口类以外,其它源码不用改动,就可以在不同的平台下编译。 即便是第三方的串口类,只是修改了一个条件编译参数,仅此而已。 ( 2) QT 本身优良的机制,使用面向组件编程。 面向组件的编程,是相对于面向过程和对象编程来说的,面向组件编程更具有优势,什么是面向组件编程呢。 打个比方,如果你要建设一个房子,有很多方式,假如建筑材料是砖,水泥,沙子,大梁,楼板等。 建造房子时,我们在地基上,必须先拌水泥和沙子,然后把砖一块块地垒成墙,再上大梁,然后铺上楼板,这就是一个面向过程的编程。 面积组件的编程就是,建筑材料是 做好的一面面墙,屋顶,建成房屋时只需把墙和屋顶组合起来就行了。 面向组件的编程是用别人做好的代码块,拿过来直接用,所以编程优势比较明显。 QT 的类库十分丰富,有几千个不同的 API,也就是方法,只要你熟悉这些 API 的参数用法,就可以直接拿过来用,像连接数据库, QT 已经写好常见的数据库操作方法,使用时,不需要再编写,只需要拿过来,直接用就好了。 ( 3)把精力放在核心功能的实现上,而不是源码本身。 QT 使用了面向组件的编程机制,所利用 Qt 编程时,能解放出程序员的编码工作量,所以,程序员把精力放在业务的实现就可以了。 利用前人的源码,直接实现自己要做的业务。 使用 QT 编程确实大大提高工作效率,并且代码质量也很高,因为调用的方法大都很成熟,这就是编程的微妙之处。 ( 4)能构造出艺术级的界面,设计界面方便。 QT 设计界面非常精巧,能用源码直接描述,效率很高。 在设计界面时,因为有了布局这个概念,设计界面时,大大提高了设计效率。 不像 VS,写个界面很死板。 也许有人说,我可以用界面设计师呀。 但不要忽略效率。 北京邮电大学毕业设计 7 2 QT开发 软件 的 架构和简介 QT 的特点与组成 Qt 是由 一个强大的跨平台开发架构组成的, 它 提供了大量的 容器类 ,实现了平台无关 性的一大特点。 Qt中有一个核心类库,它 是 QT的核心, Qt 中 所有的应用程序中用到的类都是由此继承而来 , 这个核心类 QtCore。 Qt 常用的 一些 类和 方法( 本次 设计用到) QChar 表示的 是 一个字符的类 ,在核心 QtCore 之中。 它中 有很多常用到的方法,比如, QChar()。 // 构造一个空字符,即 39。 \039。 QChar(char ch)。 // 由字符数据 ch 构造 QChar(uchar ch)。 // 由无符号字符数据 ch 构造 QChar(ushort code)。 // 由无符号短整形数据 code 构造, code 是 Unicode 编码 QChar(short code)。 //由 短整形数据 code 构造, code 是 Unicode 编码 QChar(uint code)。 // 由无符号整型数据 code 构造, code 是 Unicode 编码 QChar(int code)。 // 由整型数据 code 构造, code 是 Unicode 编码 实际使用时很少直接构造 QChar 类的对象,而是把这些构造函数当做类型转换来用,让编译器自动构造所需的 QChar 类对象。 也就是说,在所有需要 QChar 类作为参数的地方都可以安全地使用各种整数类型。 QChar 类提供了很多成员函数,可以对字符的类型进行判断,如: bool isDigit() const。 // 判断是否是十进制数字( 39。 039。 39。 939。 ) bool isLetter() const。 // 判断是否是字母 bool isNumber() const。 // 判断是否是数字,包括正负号、小数点等 bool isLetterOrNumber()。 // 判断是否是字母或数字 bool isLower() const。 // 判断是否是小写字母 bool isUpper() const。 // 判断是否是大写字母 QString 类提供了很多函数用于将字符串转换为数值 QString amp。 setNum(int n, int base = 10)。 // 整型数 QString amp。 setNum(uint n, int base = 10)。 // 无符号整型数 QString amp。 setNum(long n, int base = 10)。 // 长整型 QString amp。 setNum(ulong n, int base = 10)。 // 无符号长整型数 QString amp。 setNum(short n, int base = 10)。 // 短整型数 QString amp。 setNum(ushort n, int base = 10)。 // 无符号短整型数 QString amp。 setNum(double n, char format = 39。 g39。 , int precision = 6)。 // 高精度浮点数 QString amp。 setNum(float n, char format = 39。 g39。 , int precision = 6)。 // 浮点数 将浮点数转换为字符串时, format 参数指定转化格式, precision 参数指定转换结果的精度,既有效数组的个数。 注意这些函数会改变 QString 对象本身的值,而以下的函数则采用了不同的做法,它们返回一个新的临时对象以供使用 QPorint 代表一个坐标点 ,从属于 QtCore库 ,可以认为是一个整型的横坐标和一个整型的纵坐标的组合, 常用的 方法包括, 构造宽度为 width,高度为 height的 QSize对象。 QPoint 类支持以下两种构造方式: 北京邮电大学毕业设计 8 QPoint()。 // 构造横纵坐标均为 0 的 QPoint 对象 QPoint(int x, int y)。 // 构造横纵坐标分别为 x 和 y 的 QPont 对象 QPoint()。 // 构造横纵坐标均为 0 的 QPoint 对象 QPoint(int x, int y)。 // 构造横纵坐标分别为 x 和 y 的 QPont 对象 通过以下成员函数可 得到 QPoint 对象中的横纵坐标的引用: int amp。 rx()。 // 得到横坐标的引用 int amp。 ry()。 // 到到纵坐标的引用 int amp。 rx()。 // 得到横坐标的引用 int amp。 ry()。 // 到到纵坐标的引用 注意这些引用都不是只读的,也就是说可以通过它们直接修改 QPoint。 QSize(int width, int height)。 QFont 代表字体 ,在 QtGui库中实现, 可以利用其 中 方法 设置 字体 属性。 QPixmap 代表图像 , 也是 在 QtGui库中实现。 可以设置图像参数, 加载和保存图像。 QPixmap: 代表图像 ,实现在 QtGui 库中构造 : QPixmap()。 //构造大小为 0 的空图像 QPixmap(const QSize amp。 size)。 //构造大小为 size 的图像 ,图像数据未初始化 QPixmap(int width, int height)。 //等价于 QPixmap(QSize(width, height))。 QPixmap(const QString amp。 fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor)。 //从指定的文件中加载图像并生成 QPixmap 对象 //fileName:文件名 .. format:字符串 ,表示图像文件的格式 ,如果为 0,将进行自动识别 ..flags:表示颜色的转换模式 图像参数 : int depth() const。 //颜色深度 ,即每像素所占的 byte(比特 )数 int width() const。 //图像宽度 ,单位是像素 int height() const。 //图像高度 ,单机是像素 QSize size() const。 //图像的大小 ,即 QSize(width(), height())。 QRect rect() const。 //图像的矩形区域 ,即 QRect(QPoint(0,0), size())。 加载和保存图像 : bool load(const QString amp。 fileName, const char *format = 0, QT:ImageConversionFlags flags = Qt::AutoColor)。 //从文件中加载图像 ,返回 true 表示加载成功 ,false 则表示 加载失败 bool save(const QString amp。 fileName, const char *format = 0, int quality = 1) const。 //将图像保存到文件 , fileName:文件名 . format:字符串 ,表示图像文件的格式 ,如果为 0,自动确定 . quality:表示图像保存的质量 ,质量越低压缩率越大 ,越不清晰 ,取值范围为 0~100,1 表示采用默认值 . QIcon 代表图标 , 在实现 QtGui库中 ,是一系列图像的组合 ,每个图像代表窗口在某种状态下应该显示的 图标。 可以 构造和添加图像 构造 : QIcon()。 //构造一个空图像构成的图标 QIcon(const QPixmap amp。 pixmap)。 //从 QPixmap对象构造图标 ,此时系统会自动产生窗口不同状态下对应的图像 ,比如窗口在禁用状态下其图标为灰色 QIcon(const QString amp。 fileName)。 //从图像文件构造图标 ,此时 ,文件并不是立刻加载 ,而是当图标要显示时才加载 北京邮电大学毕业设计 9 添加图像 : void addFile(const amp。 fileName, const QSize amp。 size = QSize(), Mode mode = Normal, State state = Off)。 //fileName:文件名 size:指定大小 mode:指定使用模式,即窗口在何种状态下使用这个图像 state:指定使用状态 //Mode为 QIcon类的成员类型 ,有以下取值 . QIcon::Normal:窗口为使能状态 ,但未激活 QIcon::Disabled:窗口为禁用状态 QIcon::Active:窗口为激活状态 QIcon::Selected:窗口被选中 //QIcon::Off:窗口在关状态 QIcon::On:窗口在开状态 QWidget 代表一般的窗口 ,也是在实现 QtGui库中实现 的 , 包含 各种各样 的窗口 ,可以设置 其 隐蔽性 , 可见性, 窗口 特征等待。 QDialog 对话框 设置, QDialog:代表对话框 ,用来实现那些只是暂时存在的用户界面 ,是独立的窗口 ,但通常也有父窗口 对话框有模态和非模态两种 ,非模态对话框的行为和使用方法都类似于普通的窗口 ,模态对话框则有所不同 ,当模态对话框显示时 ,其他窗口将全部进入非激活状态 ,不能接受键盘和鼠标事件 ,模态的方式又可分为两种 ,一种是对整个应用程序模态 ,这时它的出现将导致 程序中的所有窗口失去响应。 另一种是对窗口模态 ,这时仅仅会导致它所在的整个窗口树失去响应 它 只是 表示 暂时存在的 用户界面 , 包含 模态与非模态两种。 另外 还有 QLabel、 QAbstractButton: QPushButton, QCheckBox: QRadioButton:等 一些界面显示类,这里不做赘述。 QT 开发机制简介 信号与槽机制是 QT开发 时用到的 的核心机制。 信号和插槽是一种高级接口,应用于对象与 对象 之间的接口通信,它是 QT 最常用到的功能,也是 QT开发软件区别于其他开发 工具的关键。 信号和插槽技术是 QT 自行定 义的一种通信机制,它独立于标准的C/C++语言,要想正确地处理信号和插槽,必须借助一个称为 MOC( Metia Object Compiler)的 QT 工具,该工具可以对 C++程序进行预处理 ,同时为高层次的事件处理自动。基于qt的图像格式转换器设计与实现毕业论文
相关推荐
交流 PC 端环境的搭建 主机环境 :CentOS 交叉编译工具: 主机编译工具: 本小结主要是介绍如何在 CentOS 环境中搭建 Qt开发环境, 将 Qt_S 软件包拷贝到 CentOS 双击即可开始安装。 点击 next,选择 custom 安装如图 6所示,选择所需的开发工具,如图 7 所示,接着点击下一步即可, 直到 安装完成。 12 图 6选择 自定义 安装方 式 图 7
大。 Arm2440 开发板的价格也是可以接受的,且有用户指导手册,便宜开发,易于使用。 本 应用 使用 Qt 开发, Qt 具有良好的可靠性、可用性、可编程性与易用性。 它 有优良的跨平台特性 , Qt支持 Microsoft Windows 95/9 Microsoft Windows NT、 Linux、 Solaris、 SunOS、 HPUX、 Digital UNIX 、 Irix、
1) 显示所有记事本文件列表: 当文件数量多于一屏的时候,出现纵向滚动条。 可以按方向键,向下或向上选择文件。 选择的文件是列表中的第一个文件时,按方向键的向上键时,显示列表的最后一个文件。 选择的文件是列表中的最后一个文件时,按方向键的向下键时,显示列表的第一个文件。 即列表条目可循环显示。 ( 2) 记事本文件的保 存格式为 txt文件,即后缀名为 .txt 或 .TXT.
绘图工具 matplot 只能将原始无压缩音乐的波形画出来。 会议主持人: 记 录 人: 年 月 日 N 答 辩 小 组 意 见 评语: 评定等级: 负责人(签名): 年 月 日 系 学 位 委 员 会 意 见 评语: 论文(设计)最终评定等级: 负责人(签名): 系部(公章) 年 月 日 校 学 位 委 员 会 意 见 评语: 评定等级: 负责人(签名): 年 月 日 I 目 录 绪论 ...
出非告警的器件。 ( 5) 64 位激光 ROM 每一 DS18B20 包括一个唯一的 64 位长的 ROM 编码。 开始的 8 位是单线产品系列编码( DS18B20编码是 10h)。 接着的 48位是唯一的系列号。 最后的 8位是开始 56位 CRC (见图 28)。 64 位 ROM 和 ROM 操作控制部分允许 DS18B20 作为一个单线器件工作并且
向 I/O 口; ? 256x8bit 内部 RAM; ? 3 个 16位可编程定时 /计数器中断; ? 时钟频率 024MHz; ? 2 个串行中断,可编程 UART 串行通道; ? 2 个外部中断源,共 8 个中 断源; ? 2 个读写中断口线, 3 级加密位; ? 低功耗空闲和掉电模式, 软件 设置睡眠和唤醒功能; ? 有 PDIP、 PQFP、 TQFP 及 PLCC等几种封装形式