四则运算GUI设计2.0
使用QT设计的界面如下:

程序流程是点击开始出题,会在题目后面的框中显示所出的题目,在输入答案以后点击提交答案会判断输入的答案是否正确。
输入后的界面:

部分代码如下:
qtyunsuan.h文件:
class Qtyunsuan : public QMainWindow
{
Q_OBJECT public:
Qtyunsuan(QWidget *parent = 0);
~Qtyunsuan(); private slots:
int OnShowQue();
private slots:
int OnGetAns();
private slots:
int OnReturnPressed(); private:
QString qss; Ui::QtyunsuanClass ui;
};
主要是定义了三个槽,用于与相应的事件连接。OnShowQue()用来显示题目;OnGetAns()用来获取输入的答案并且判断对错;OnReturnPressed()是输入答案后不点击提交答案按钮而是按回车键也可以处理输入的答案;
qtyunsuan.cpp文件:
Qtyunsuan::Qtyunsuan(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this); connect(ui.Btnstart, SIGNAL(clicked()), this, SLOT(OnShowQue()));//开始出题按钮按下,显示一道题目
connect(ui.Btnover, SIGNAL(clicked()), this, SLOT(OnGetAns()));//提交答案按钮按下,获取输入的答案,显示是否正确
connect(ui.Editanswer, SIGNAL(returnPressed()), this, SLOT(OnReturnPressed()));//输入答案后按回车键,显示是否正确 } Qtyunsuan::~Qtyunsuan()
{ } int Qtyunsuan::OnShowQue()
{
qss = abc();
ui.Editquestion->setText(qss);
ui.Editanswer->setText("");
return 0;
} int Qtyunsuan::OnGetAns()
{
QString str1=ui.Editanswer->text();//获取用户输入的答案
string ans;
ans = str1.toStdString();//将用户输入的Qstring类型答案转换成string类型
double answer= stringToNum<double>(ans);//将答案由string类型转换成double double answer1 = Calculate(expression);
if (abs(answer1 - answer) < 0.01)
{
QMessageBox::information(this, "Right", "You are right");
}
else
{
QMessageBox::information(this, "Wrong", "You are wrong");
}
return 0;
}
int Qtyunsuan::OnReturnPressed()
{
OnGetAns();
return 0;
}
上面是三个connect函数,用于连接事件和槽。下面是具体的三个函数。
后续:
现在回过头来看整个程序真是简单的不行,但是其实这么走过来还是有点不容易,因为c++里的东西一点都不会,所以在c程序转换到QT中时就费了很大劲,QT中字符串用的是Qstring,我得把本来程序里的字符数组转换成string,再转换成Qstring···算是体会到一些c语言落伍的感觉,跟这些东西不怎么搭··前期的准备也费了不少时间,主要是看Qt的教学视频,但是收获还是挺大的,后续可以试着添加一些别的功能。
四则运算GUI设计2.0的更多相关文章
- 四则运算GUI设计
使用了QT来设计GUI,目前也还在看视频学习中,目前还不会用这个软件,所以具体功能还未实现,初步绘制的界面如下:
- 团队作业之四则运算GUI展示
一.项目Coding.net原码仓库地址:https://git.coding.net/caoying/Teamwork.git 队员: 卢琪:2016011986 曹滢:2016012102 二.P ...
- tkinter——GUI设计实操
1.创建root: from tkinter import * root = Tk() root.title('GUI设计') # root.attributes("-alpha" ...
- tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面
PyQt实现界面与逻辑分离的设计很是方便,详情可以见我的第一篇博文. 不过本文将使用python的标准库 tkinter,来实现界面与逻辑分离的GUI 设计. 我们来设计一个很简单的程序: 目的:长度 ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- java.awt包提供了基本的java程序的GUI设计工具
java.awt包提供了基本的java程序的GUI设计工具.主要包括下述三个概念: 组件--Component 容器--Container 布局管理器--LayoutManager package T ...
- PROJECT | 四则运算UI设计 - PSP表格&需求分析
PSP表格(TP版) 需求分析 [GUI编程语言选择] 考虑到Java编写GUI效率偏低且界面不算特别美观(即使有Windowbuilder插件帮助),所以我们使用控件更多,开发效率更高,具有集成开发 ...
- Eclipse+Selenium自动化测试脚本设计V1.0
Eclipse+Selenium自动化测试脚本设计V1.0 http://www.docin.com/p-803032251.html
- 双心ping GUI工具1.0
双心ping GUI工具1.0该软件利用WindowsAPI提供了图形界面的ping程序,同时还可以调用DOS下的ping命令.ping成功后自动加入网址列表框及同目录下的列表文件Pinglist.i ...
随机推荐
- Python 基礎 - 文件操作_v2
嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...
- 【科普】为什么WiFi自动信道选到的信道多数在1/6/11
http://bbs.hiwifi.com/thread-4126-1-1.html 论坛上不少朋友很困惑,为什么小极的自动信道选择选到的信道只会在1.6.11这三个信道呢?WiFi不是一共有10几个 ...
- linux标准io的copy
---恢复内容开始--- 1.linux标准io的copy #include<stdio.h> int main(int argc,char **argv) { if(argc<3) ...
- 关于MVC中Start.cs文件的作用
当我们建立默认的 .NET Framework4.5.2框架下的Web MVC 应用程序后,调试过程中我发现在程序启动页面加载完成会执行一段代码,这段代码让人有点摸不着头脑,因为之前完全没见过,调试 ...
- Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...
- 获得Window窗口权限的三种方法
1.第一种方法:利用视图控制器自带的View的window属性: 具体使用 self.view.window.rootViewController = ... 2.第二种方法:通过导入APPDele ...
- js 字符串转换成数字的三种方法
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形 ...
- 3.基础点的移动web
1.移动端的屏幕适配 在Web开发中可以使用px(像素).em.pt(点).in(英寸).cm(厘米)做为长度单位,我们最常用px(像素)做为长度单位. 我们可以将上述的几种长度单位划分成相对长度单位 ...
- linux操作
进入root权限:sudo su 把文件b的拥有者改成a:chown a b 如果保存文件的时候出现"无法创建备份文件",是因为这个文件所在的文件夹不属于当前用户,需要把这个文件所 ...
- compile vim with lua & python support
vim在macosx 10.9默认没有带lua和python支持,因为装的有些插件是lua写的,有些是python写的,运行不起来,于是决定自己编译一个,下载vim源码,执行以下命令就可以编译vim: ...