QT QT练习一
界面中通过三个 QLineEdit控件,一个QPushButton实现+ - * /四则运算,点击pushbutton后将运算结果显示在QLabel控件上。
#ifndef WIDGET_H
#define WIDGET_H #include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel> class Widget : public QWidget
{
Q_OBJECT public:
Widget(QWidget *parent = );
~Widget();
private:
QLineEdit * edit1;
QLineEdit * edit2;
QLineEdit * edit3;
QPushButton * btn1;
QLabel *label1;
double GetRes(int num1,char ch,int num2);
private slots:
void add();
}; #endif // WIDGET_H
#include "widget.h"
#include <QGridLayout> Widget::Widget(QWidget *parent)
: QWidget(parent)
{
edit1=new QLineEdit(this);
edit2=new QLineEdit(this);
edit3=new QLineEdit(this);
btn1=new QPushButton(this);
btn1->setText("计算");
label1=new QLabel(this);
label1->setText("result");
QGridLayout * layout1=new QGridLayout(this);
layout1->addWidget(edit1,,);
layout1->addWidget(edit2,,);
layout1->addWidget(edit3,,);
layout1->addWidget(btn1,,);
layout1->addWidget(label1,,);
//注册按钮点击事件
connect(btn1,SIGNAL(clicked()),this,SLOT(add()));
} //按钮点击事件
void Widget::add()
{
//获取第一个数
QString s1=edit1->text();
//获取操作符
QString s2=edit2->text();
//获取第三个数
QString s3=edit3->text();
//显示结果
label1->setText(QString::number(GetRes(s1.toInt(),*(s2.toStdString().data()),s3.toInt())));
} //计算结果
double Widget::GetRes(int num1,char ch,int num2)
{
double res=;
switch(ch)
{
case '+':
res=num1+num2;
break;
case '-':
res=num1-num2;
break;
case '*':
res=num1*num2;
break;
case '/':
res=num1/num2;
break;
default:
break;
}
return res;
} Widget::~Widget()
{ }

实现“幸运大抽奖”luck.exe程序功能。
#ifndef WIDGET_H
#define WIDGET_H #include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QTimer> class Widget : public QWidget
{
Q_OBJECT public:
Widget(QWidget *parent = );
~Widget();
private:
QPushButton * btn1;
QLabel * label1;
QTimer * time1;
char ** arr;
private slots:
void choicename();
void on_time();
}; #endif // WIDGET_H
#include "widget.h"
#include <QGridLayout> Widget::Widget(QWidget *parent)
: QWidget(parent)
{
arr=new char *[];
arr[]="小米0";
arr[]="小红1";
arr[]="流云2";
arr[]="天哥3";
arr[]="小叶4";
arr[]="红玉5";
arr[]="南天6";
arr[]="晓峰7";
arr[]="字有8";
arr[]="小刚9";
time1=new QTimer(this);
btn1=new QPushButton(tr("抽奖"),this);
label1=new QLabel(this);
label1->setText("Name");
QGridLayout *layout1=new QGridLayout(this);
layout1->addWidget(btn1,,);
layout1->addWidget(label1,,);
//注册按钮点击事件
connect(btn1,SIGNAL(clicked()),this,SLOT(choicename()));
//注册定时器事件
connect(time1,SIGNAL(timeout()),this,SLOT(on_time()));
} void Widget::choicename()
{
if(time1->isActive())
{
time1->stop();
}
else
{
time1->start();
}
} void Widget::on_time()
{
static int i=;
if(i>=)
{
i=;
}
label1->setText(arr[i]);
i++;
} Widget::~Widget()
{ }

QT QT练习一的更多相关文章
- Qt... configure: error: Qt (>= Qt 2.2.2) (headers…
转载:http://blog.chinaunix.net/uid-23733724-id-290980.html 昨天开始在自己的fedora12下装qt~ 但是按照教程在/opt/Embed ...
- Qt, QT/E, Qtopia 的区别
转自Qt, QT/E, Qtopia 的区别 Qt泛指Qt的所有桌面版本,比如Qt/X11,Qt Windows,Qt Mac等.由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Q ...
- QT QT creator QTsdk的区别
Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程. QT Creator 跨平台 ...
- QT,QT SDK, QT Creator 区别
Qt是一个跨平台的C++图形用户界面应用程序框架.(不仅仅是C++,还包括QML,Qquick,html5)它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩 ...
- [QT]Qt+VS2012+Win8 64Bit安装
学习Qt鸟,当年没听@Coding_Peon(http://weibo.com/u/1764451551?topnav=1&wvr=5&topsug=1)话好好学习QT和Python之 ...
- QT+QT creator+OpenCV图像灰度化
1).pro文件 #------------------------------------------------- # # Project created by QtCreator 2014-05 ...
- [QT]QT概述
QT概述 基于C++的GUI开发框架,跨平台.Qt 是一个用于桌面系统和嵌入式开发的跨平台应用程序框架. QT是挪威TROLLTECH公司开发的跨平台C++工具,在UNIX下非常出名:他的宗旨是“一次 ...
- QT | QT MSVC 2015 + VS 2015开发环境配置及GIT设置
1.下载: 所有Qt版本的下载地址: http://download.qt.io/archive/qt/ 实际使用了http://download.qt.io/archive/qt/5.7/5.7.1 ...
- Qt.Qt新安装之后出现Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make”
出问题的环境: 操作系统: Ubuntu18.04 安装包: qt-opensource-linux-x64-5.8.0.run 现象: 新建一个Hello World项目, 试着运行, 出现以下提示 ...
- qt——QT中QWidget、QDialog及QMainWindow的区别
QWidget类是所有用户界面对象的基类. 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标.键盘和其它事件,并且在屏幕上绘制自己.每一个窗口部件都是矩形的,并且它们按Z轴顺序排列.一个窗口部件 ...
随机推荐
- 常见HTTP状态码
常见HTTP状态码 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 400 Bad Req ...
- 视频分享:过五关斩六将——我要做IT面霸!
这是我在某网站分享的网络直播课程,现在博客园分享给大家! 本视频适合以下朋友观看: 1)在校计算机及相关专业学生,希望你了解应聘的要求后来改善你的学习: 2)正在求职或打算跳槽的人士: 3)HR或公司 ...
- .net开发过程中遇到的错误,及解决办法记录
一.在证书存储区中找不到清单签名证书. 解决方法:右击项目属性—>签名—>为ClickOnce清单签名,将勾掉的选项去掉. 参考:http://www.cnblogs.com/190196 ...
- Netty 异步的、事件驱动的网络应用程序框架和工具
Netty是由JBOSS提供的一个Java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 项目地址:https://githu ...
- MySQL 中隔离级别 RC 与 RR 的区别
1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败: All or Nothing. 一致性(Consistency): ...
- PostgreSQL-安装9.2
一.环境 VM虚拟机 NAME="Ubuntu" VERSION="12.04.4 LTS, Precise Pangolin" 二.过程 1.安装make ...
- Softmax回归(Softmax Regression)
转载请注明出处:http://www.cnblogs.com/BYRans/ 多分类问题 在一个多分类问题中,因变量y有k个取值,即.例如在邮件分类问题中,我们要把邮件分为垃圾邮件.个人邮件.工作邮件 ...
- Mac SVN 命令行
Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...
- hdu 4966 GGS-DDU (最小树形图)
比较好的讲解:http://blog.csdn.net/wsniyufang/article/details/6747392 view code//首先为除根之外的每个点选定一条入边,这条入边一定要是 ...
- 准备使用 Office 365 中国版--邮箱迁移
微软产品一贯的作风是从来不缺文档和教程,Office 365也不例外.无论是最终用户还是企业IT管理员,都可参照Office 365使用指南顺利的开启Office 365之旅.不过比较奇怪的是,貌似很 ...