毕业设计-基于qt的科学计算器系统设计内容摘要:

名: helpmessage。 本表用来实现帮助功能,存储帮助功能中按键的信息,可以查看所有的按键功能,也可以看单个按键信息,还可以对案件信息进行增加和删除。 按键表如表。 表 按键表 字段名称 数据类型 长度 备注 编号 自动编号 长整型 为主码、唯一( id) 按键名 Vchar 1 按键名( helpname) 功能 Vchar 1 按键功能( explain) 东南大学成贤学院毕业设计报告 8 第四章 简单的计算器 项目目的 ( 1)熟悉 QtCreator 的简单操作。 ( 2)了解 Qt 程序编写框架。 ( 3)了解信号和槽机制,熟练掌握 信号与槽在应用程序中的使用。 项目内容 ( 1)查看 API 手册,学习简单的 Qt 类的使用,如 QLineEdit、 QPushButton 等。 ( 2)用 QtCreator 创建工程,用 Qt 编写计算器程序。 ( 3)对计算器程序进行移植。 项目步骤 创建工程 1)打开 QtCreator,如图 F1 所示。 图 F1 2)选择 FileNew File or Project,然后在弹出的对话框中选择 Other ProjectEmpty Qt project(如图 F2 所示),然后进入下一步。 东南大学成贤学院毕业设计报告 9 图 2 3)定义新工程的工程名并选择保存路径(如图 F3 所示),然后进入下一步。 图 3 4)选择 Qt 版本,这里选择使用 ,取消对 Qt in PATH 的选择(如图 4 所示),然后进入下一步,完成新工程的创建(如图 F5 所示)。 东南大学成贤学院毕业设计报告 10 图 F4 图 F5东南大学成贤学院毕业设计报告 11 第五章 计算器程序的实现 主要工作:一是实现计算器的图形界面;二是实现按键事件和该事件对应的功能绑定,即信号和对应处理槽函数的绑定。 图形界面的实现 通过分析可知,需要 16 个按键和一个显示框,同时考虑到整体的排布,还需要水平布局器和垂直布局器。 通过组织 这些类我们可以实现一个简单的带有数字 0~9,可以进行简单四则运算且具有清屏功能的计算器。 对于这些类的具体操作会在后面的代码中详细说明。 信号和对应槽函数的绑定 分析计算器的按键我们可以把按键事件分为以下三类,一是简单的数字按键, 主要进行数字的录入,这类按键包括按键 0~9;二是运算操作键,用于输入数学运算符号,进行数学运算和结果的显示,这类按键包括“ +”,“ ”,“ *”,“ /”,“ =”;三是清屏操作键,用于显示框显示信息的清除。 进入刚才创建的空工程,双击左侧的 ,在主 编辑框中目前显示 容为空,如图 F6 所示。 这是因为目前什么文件都没有添加的缘故。 图 6 添加文件 在工程 Calculator 上面点击右键,然后点击 Add New,选择添加 C++ Header File(如图 F7 所示),进入下一步后输入文件名 (如图 F8 所示),然后完成文件的添加。 东南大学成贤学院毕业设计报告 12 图 7 图 F8 添加文件 和 与添加文件 的过程类似,只是在选 择文件类型时选择为 C++ Source File。 完成后可以查看 文件的内容,整个工程的文件结构如图 F9 所示。 东南大学成贤学院毕业设计报告 13 图 F9东南大学成贤学院毕业设计报告 14 第六章 源代码的分析说明 对 源代码的简要说明 ifndef CALCULATOR_H define CALCULATOR_H //对 头文件的声明 includeQWidget//包含主窗体类 includeQPushButton//包含按键类 includeQVBoxLayout//包含垂直布局器类 includeQHBoxLayout//包含水平布局器类 includeQLineEdit//包含显示框类 class Calculator : publicQWidget//计算器继承自主窗体类 { Q_OBJECT //必须加上这句,如果要调用信号,槽函数的操作的话 public: Calculator()。 //计算器类的构造函数 ~Calculator()。 //计算器类的析构函数 public slots: //定义各个按键 按下后对应操作处理的槽函数 voidzeroButtonPress()。 voidoneButtonPress()。 voidtwoButtonPress()。 voidthreeButtonPress()。 voidfourButtonPress()。 voidfiveButtonPress()。 voidsixButtonPress()。 voidsevenButtonPress()。 voideightButtonPress()。 voidnineButtonPress()。 voidaddButtonPress()。 voidsubButtonPress()。 voidmulButtonPress()。 voiddivButtonPress()。 voidclearButtonPress()。 voidequButtonPress()。 private: QLineEdit *operateEdit。 //声明显示框 QPushButton *zeroButton。 //声明数字按键 185。 QPushButton *oneButton。 QPushButton *twoButton。 QPushButton *threeButton。 QPushButton *fourButton。 东南大学成贤学院毕业设计报告 15 QPushButton *fiveButton。 QPushButton *sixButton。 QPushButton *sevenButton。 QPushButton *eightButton。 QPushButton *nineButton。 QPushButton *clearButton。 //声明运算符按键 QPushButton *addButton。 QPushButton *subButton。 QPushButton *divButton。 QPushButton *mulButton。 QPushButton *equButton。 QHBoxLayout *firstLayout。 //声明水平布局器,该布局器主要对 16 个按键进行布局 QHBoxLayout *secondLayout。 QHBoxLayout *thirdLayout。 QHBoxLayout *fourthLayout。 QVBoxLayout *mainLayout。 //声明垂直布局器,该布局器主要对主窗体上面的空间进行排布 QString input1。 //计算器第一个运算操作数 QString input2。 //计算器第二个运算操作数 char operate。 //运算符 }。 endif// CALCULATOR_H 对 源代码的简要说明 首先是构造函数的实现: Calculator::Calculator() { operateEdit = newQLineEdit(this)。 //初始化显示框 operateEditsetReadOnly(true)。 //设置显示框为只读 operateEditsetText(tr(0))。 //初始化显示框显示数据为 0 zeroButton = newQPushButton。 //初始化按键 zeroButtonsetText(tr(0))。 //设置按键上显示的标签,以下对按键相关的操作类似 oneButton = newQPushButton。 oneButtonsetText(tr(1))。 twoButton = newQPushButton。 twoButtonsetText(tr(2))。 threeButton = newQPushButton。 threeButtonsetText(tr(3))。 fourButton = newQPushButton。 fourButtonsetText(tr(4))。 东南大学成贤学院毕业设计报告 16 fiveButton = newQPushButton。 fiveButtonsetText(tr(5))。 sixButton = newQPushButton。 sixButtonsetText(tr(6))。 sevenButton = newQPushButton。 sevenButtonsetText(tr(7))。 eightButton = newQPushButton。 eightButtonsetText(tr(8))。 nineButton = newQPushButton。 nineButtonsetText(tr(9))。 clearButton = newQPushButton。 clearButtonsetText(tr(Clear))。 addButton = newQPushButton。 addButtonsetText(tr(+))。 subButton = newQPushButton。 subButtonsetText(tr())。 mulButton = newQPushButton。 mulButtonsetText(tr(*))。 divButton = newQPushButton。 divButtonsetText(tr(/))。 equButton = newQPushButton。 equButtonsetText(tr(=))。 firstLayout = newQHBoxLayout。 //初始化水平布局器 firstLayout firstLayoutaddWidget(zeroButton)。 //把按键 zeroButton 添加到 firstLayout firstLayoutaddWidget(oneButton)。 //把按键 oneButton 添加到 firstLayout firstLayoutaddWidget(twoButton)。 //把按键 twoButton 添加到 firstLayout firstLayoutaddWidget(addButton)。 //把按键 threeButton 添加到 firstLayout,以下对水平布局器的操作类似 secondLayout = newQHBoxLayout。 secondLayoutaddWidget(threeButton)。 secondLayoutaddWidget(fourButton)。 secondLayoutaddWidget(fiveButton)。 secondLayoutaddWidget(subButton)。 thirdLayout = newQHBoxLayout。 thirdLayoutaddWidget(sixButton)。 thirdLayoutaddWidget(sevenButton)。 thirdLayoutaddWidget(eightButton)。 thirdLayoutaddWidget(mulButton)。 fourthLayout = newQHBoxLayout。 fourthLayoutaddWidget(nineButton)。 fourthLayoutaddWidget(clearButton)。 fourthLayoutaddWidget(equButton)。 东南大学成贤学院毕业设计报告 17 fourthLayoutaddWidget(divButton)。 mainLayout = newQVBoxLayout(this)。 //初始化垂直布局器 mainLayout mainLayoutaddWidget(operateEdit)。 //把显示数据框 operateEdit 加到 mainLayout mainLayoutaddLayout(firstLayout)。 //把水平布局器 firstLayout 添加到 mainLayout mainLayoutaddLayout(secondLayout)。 //把水平布局器 secondLayout 添加到 mainLayout mainLayoutaddLayout(thirdLayout)。 //把水平布局器 thirdLayout 添加到 mainLayout mainLayoutaddLayout(fourthLayout)。 //把水平布局器 fourthLayout 添加到 mainLayout connect(zeroButton,SIGNAL(clicked()),this,SLOT(zeroButtonPress()。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。