课程设计(论文)基于QT的万历设计与实现.doc

上传人:laozhun 文档编号:2393068 上传时间:2023-02-17 格式:DOC 页数:17 大小:296.50KB
返回 下载 相关 举报
课程设计(论文)基于QT的万历设计与实现.doc_第1页
第1页 / 共17页
课程设计(论文)基于QT的万历设计与实现.doc_第2页
第2页 / 共17页
课程设计(论文)基于QT的万历设计与实现.doc_第3页
第3页 / 共17页
课程设计(论文)基于QT的万历设计与实现.doc_第4页
第4页 / 共17页
课程设计(论文)基于QT的万历设计与实现.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《课程设计(论文)基于QT的万历设计与实现.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于QT的万历设计与实现.doc(17页珍藏版)》请在三一办公上搜索。

1、目 录第1章 前言1第2章 需求分析2第3章 软件设计43.1总体设计43.2 详细设计4第4章 系统移植10第5章 效果图12第6章 总结15参考文献16第1章 前言QT 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司于1995年底出品。Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 QT了,QT 的第一个商业版本于 1995 年推出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括QT在内的技术都归入Nokia旗下。并且Nokia针对自己的移

2、动设备平台规划的需要,将QT按不同的版本发行,QT商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。QT开源版:仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。2009年3月发布的QT 4.5 起,诺基亚为QT增添开源LGPL授权选择。2009年5月11日起,诺基亚QT Software 宣布QT源代码库面向公众开放,QT开发人员可通过为QT以及与QT相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造QT未来的发展。为了便于这些内容的管理,QT Software 启用了基于 Git 和

3、 Gitorious 开源项目的Web 源代码管理系统 。万年历(gregorian solar calendar and chinese lunar calendar)我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系第2章 需求分析对于万年历系统,其主要功能是:查看当日日期(年、月、日)、查看当时时间、查看其他年月的月历、对选中的日期进行标识。主要使用流程是:查看万年历系统,查看其他月份或年份日历,选中其

4、他日期查看,查看当日日期。主要功能的用例描述如下:1)查看万年历1、进入万年历系统;2、系统获取当日日期并设置日历为当月,黄框选中当日日期;2)查询当月其他年份改变年份有两张方法,一种是选择年份,一种是摁按键选择上一年或下一年。下拉菜单选择年份:1、点击选择年份的下拉菜单,选择年份;2、系统获取已选择的年份;3、系统设置为已选年份当月的月历并显示在界面显示。摁按键选择上一年(或下一年):1、点击选择“年”(或“年+”)的按键;2、系统获取选择框内的年份;3、将系统获取年份的数字减去1(或加上1);4、将选择框内的年份设为已更改的年份;5、系统设置为已更改年份当月的月历并显示在界面显示。(3)查

5、询当年的其他月份改变月份有两张方法,一种是选择月份,一种是摁按键选择上一月或下一月。下拉菜单选择月份:1、点击选择月份的下拉菜单,选择年份;2、系统获取已选择的月份;3、系统设置已选月份为当年的月历并在界面显示。摁按键选择上一月(或下一月):1、点击选择“月”(或“月+”)的按键,;2、系统获取选择框内的月份;3、将系统获取月份的数字减去1(或加上1);4、将选择框内的月份设为已更改的月份;5、系统设置为已更改月份当年的月历并在界面显示。(4)选择其他日期查看1、点击其他日期;2、系统对所有日期的label 进行监听,判断点击的那个label;3、返回被点击的label 的数组下标;4、对该下

6、标的label 设置蓝色边框,表示选中。(5)查看当日日期1、点击“今日”按键;2、系统获取今日日期;3、设置年份和月份选择框为当日年月;4、系统设置为当日年月的月历并在界面显示;5、判断当日日期在哪个label 上;6、返回被点击的label 的数组下标;7、对该下标的label 设置蓝色边框,表示选中。第3章 软件设计3.1总体设计本系统有三个文件构成,分别为:main.cpp,mainwondow.cpp,mainwindow.h,其中,第一个文件是主文件,作用是构建一个主窗体,设置主窗体的宽度和高度并且显示主窗体,第二个文件的作用是实现主窗体,第三个文件的作用是定义主窗体,构建窗体的主

7、要部件。3.2 详细设计 对于本系统,我负责的是源程序的头文件和系统整体的移植部分。头文件(mainwindow.h的源代码如下所示: #ifndef MAINWINDOW_H #define MAINWINDOW_H 如果头文件没有被定义,则定义头文件 #include #include class QTextBrowser; class MainWindow : public QMainWindow Q_OBJECT 对于每一个用到信号与插槽机制的类,都必须有此声明 public: MainWindow(); public slots: void setFontSize(int size)

8、; 设置窗体大小 void setMonth(int month); 显示月份 void setYear(QDate date); 显示日期 private: void insertCalendar(); int fontSize; QDate selectedDate; QTextBrowser *editor; ;#endif 结束头文件的定义在得到了三个文件之后,分三步得到可执行文件,分别为:1) qmake project本步的主要作用是将源生成目标文件2) qmake本步的主要作用是生成可执行问价所需要的Makefile配置文件3) make本步的主要作用是生成可执行文件,之后用ls

9、命令查看,确实生成了可执行文件。本部分生成的Makefile是一个比较重要的文件,其部分源代码及解释如下:# Makefile for building: Calendar# Generated by qmake (2.01a) (Qt 4.7.0) on: ? 12? 26 20:47:58 2011# Project: Calendar.pro# Template: app# Command: /opt/qtsdk-2010.05/qt/bin/qmake -o Makefile Calendar.pro# Compiler, tools and options本部分主要介绍的是生成的可执

10、行文件,所选用的工具,所需要的中间文件CC = gcc 宏替换,用CC代替gccCXX = g+ 宏替换,用CXX代替g+DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHAREDCFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)INCPATH = -I/opt/qtsdk-2010.05/qt/mkspecs/linux-g+ -I. -I/opt/qtsdk-2010.

11、05/qt/include/QtCore -I/opt/qtsdk-2010.05/qt/include/QtGui -I/opt/qtsdk-2010.05/qt/include -I. -I.LINK = g+LFLAGS = -Wl,-O1 -Wl,-rpath,/opt/qtsdk-2010.05/qt/libLIBS = $(SUBLIBS) -L/opt/qtsdk-2010.05/qt/lib -lQtGui -L/opt/qtsdk-2010.05/qt/lib -L/usr/X11R6/lib -lQtCore -lpthread AR = ar cqsRANLIB = QM

12、AKE = /opt/qtsdk-2010.05/qt/bin/qmakeTAR = tar -cfCOMPRESS = gzip -9fCOPY = cp -fSED = sedCOPY_FILE = $(COPY)COPY_DIR = $(COPY) -rSTRIP = stripINSTALL_FILE = install -m 644 -pINSTALL_DIR = $(COPY_DIR)INSTALL_PROGRAM = install -m 755 -pDEL_FILE = rm -fSYMLINK = ln -f -sDEL_DIR = rmdirMOVE = mv -fCHK_

13、DIR_EXISTS= test -dMKDIR = mkdir -p# Output directoryOBJECTS_DIR = ./# Files本部分主要是宏替换部分,使用一些人们更熟悉的描述符来代替一些不太熟悉的描述符,增加本文件的可读性。SOURCES = main.cpp mainwindow.cpp moc_mainwindow.cppOBJECTS = main.o mainwindow.o moc_mainwindow.oDIST = /opt/qtsdk-2010.05/qt/mkspecs/common/g+.conf /opt/qtsdk-2010.05/qt/mks

14、pecs/common/unix.conf /opt/qtsdk-2010.05/qt/mkspecs/common/linux.conf /opt/qtsdk-2010.05/qt/mkspecs/qconfig.pri /opt/qtsdk-2010.05/qt/mkspecs/modules/qt_webkit_version.pri /opt/qtsdk-2010.05/qt/mkspecs/features/qt_functions.prf /opt/qtsdk-2010.05/qt/mkspecs/features/qt_config.prf /opt/qtsdk-2010.05/

15、qt/mkspecs/features/exclusive_builds.prf /opt/qtsdk-2010.05/qt/mkspecs/features/default_pre.prf /opt/qtsdk-2010.05/qt/mkspecs/features/release.prf /opt/qtsdk-2010.05/qt/mkspecs/features/default_post.prf /opt/qtsdk-2010.05/qt/mkspecs/features/warn_on.prf /opt/qtsdk-2010.05/qt/mkspecs/features/qt.prf

16、/opt/qtsdk-2010.05/qt/mkspecs/features/unix/thread.prf /opt/qtsdk-2010.05/qt/mkspecs/features/moc.prf /opt/qtsdk-2010.05/qt/mkspecs/features/resources.prf /opt/qtsdk-2010.05/qt/mkspecs/features/uic.prf /opt/qtsdk-2010.05/qt/mkspecs/features/yacc.prf /opt/qtsdk-2010.05/qt/mkspecs/features/lex.prf /op

17、t/qtsdk-2010.05/qt/mkspecs/features/include_source_dir.prf Calendar.pro本部分主要是用三个源文件生成一.o为结尾的目标文件。main.o: main.cpp mainwindow.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cppmainwindow.o: mainwindow.cpp mainwindow.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cppmoc_mainwindow.o:

18、 moc_mainwindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp本部分是我们比较常见的,也是经常自编Makefile会遇到的部分,就是具体生成目标文件锁需要的元文件,及其规则。# Installinstall: FORCE安装文件命令uninstall: FORCE卸载文件命令FORCE第4章 系统移植本系统的重点是在系统移植部分,本部分需要将虚拟机中的可执行文件和QT库文件移植到ARM开发板上面,在开发板上面执行,因此,移植部分分为两大部分,第一部分是开发环境的配置和可执行程

19、序的移植,第二部分为库文件的编译和移植。第一部分的过程及解释如下:网络配置包括配置IP地址,NFS服务,防火墙。网络配置主要是要安装好以太网卡,对于一般常见的PTL8139网卡,REDHAT9.0可以自动识别并自动安装好,完全不需要用户参与,因此建议使用该网卡。然后配置宿主机IP为192.168.0.120。过程为开始-系统配置-网络配置,单击etho的蓝色区域,进入配置界面,配置网IP后,配置路由,此时要添加两个IP,作为允许访问本机的IP,对于REDHAT9.0,它默认的是打开防火墙,对于外来的IP访问,他都会拒绝。因此应该关闭防火墙。在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将

20、IPTABLES服务去掉,并确保NFS选中。之后还要配置共享文件夹,这样可以将此文件夹挂接到ARM开发板上面。最重要的一步是配置MINICOM,在终端中直接输入命令,配置好之后退出,即可进入ARM开发板文件夹下面。用命令将所需要的文件挂载到ARM的某个文件夹下面。本部分就结束了。第二部分的过程及解释如下:1:编译QT/E环境1) 拷贝并解压QT/E库及触摸屏库到实验目录2) 编译tslib-1.4触摸屏库在本步中有一步为执行脚本代码,由于系统存在某些问题,因此需要分布执行,并且在执行的时候需要修改某些配置文件3) 编译QT/E库本过程中有一步的命令的配置选项特别长,使用是需要特别小心,而且需要

21、注意的是最后指定的目录必须要与实际NFS目录对应4) 测试触摸屏及QT/E程序5) 执行QT/E待触摸屏的例子程序2:编译QT/E程序到ARM设备上面运行1) 编译QT/E程序2) 编写自定义的信号与槽3) 执行本系统的程序calandar 由于QT/E库的移植部分没有成功,因此本实验只是在虚拟机下面运行成功。第5章 效果图 IP设置 minicom配置 文件挂载 当天信息显示 查询日期显示第6章 总结经过一周的不懈努力,很高兴能完成一个QT编程,紧张的心终于可以平静了。从中体会到以及学习到很多关于QT的很大方面的知识,是我更加了解了QT,并更加熟练了QT。在此次设计中我也遇到了很多的问题,都

22、是经过查看老师所给的关于课程设计书和图书馆借的书才明白所用函数的用法,更重要的是上课时老师的细心教学,使我们学会了许多关于QT的基础知识,为本次的课程设计打好了很好的基础。从而使我能够顺利完成这次课程设计。在本次做课程设计过程中,要感谢老师的悉心关照,一直陪伴我们,并为大家讲解不懂的地方,很是辛苦,也很是忙碌。还要感谢学院为我们此次课程设计提供机房,让我们有了良好的学习环境可以利用所学做课程设计,从很大的程度上增强了我们对于QT学习的兴趣。和同学一块讨论,多听听别人的想法,想办法改进自己,这是我受益匪浅。只有比较才知道自己的不足。我们一定要好好的改正自己的不足之处,完善自己。不做最好,只做更好!努力在老师规定的时间内完成老师所规定的任务。参考文献1 Daniel sion,24小时学会QT编程,北京:人民邮电出版社,2000年1月2 Alan Exust ,C+设计模式:基于Qt4开源跨平台开发框架,北京:清华大学出版社,2007-083 萨默菲尔德,Qt高级编程,北京:电子工业出版社,2011-044 蔡志明,精通Qt4编程(第2版),北京:电子工业出版社,2011-025 郑阿奇,Qt 4开发实践,北京:电子工业出版社2011-016 李普曼,C+Primer中文版(第4版),北京:人民邮电出版社,2008-07

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号