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轴顺序排列.一个窗口部件 ...
随机推荐
- 源码编译安装screen
OS:Amazon Linux AMI 2015.09.2 (HVM) #sudo su #wget http://ftp.gnu.org/gnu/screen/screen-4.3.1.tar.gz ...
- 华为S5700S-52P-LI-AC千兆网管交换机web登录界面配置
研究一下午,包装附的说明书根本就是错误的,通过技术售后和官方的文档结合,总算可以登录交换机的web管理界面. 首先需要使用通讯控制线缆(包装中附)连接电脑和交换机,一头接交换机的Console口,一头 ...
- 基于分布式、服务化的maven项目文件规划
引言 此文不是纯粹介绍maven概念,而是介绍一个具体的maven项目文件规划 这个规划可能适合于研发比较复杂的业务,这些业务有分布式和服务化的需要. 这个规划能够解决因为分布式和服务化要求而引起的项 ...
- javascript-抽象工厂模式
抽象工厂模式笔记 1.抽象工厂模式创建多个抽象类,创建出的结果是一个类簇(这里是抽象类的集合) 2.抽象工厂中传入的父类是否是抽象工厂方法创建的抽象类进行判断,不是则抛出错误 3.子类通过 ...
- mod_PHP&fastcgi
从宏观上来看,PHP内核的实现与世界上绝大多数的程序一样,接收输入数据, 做相应处理然后输出(返回)结果. 我们编写的代码就是PHP接收的输入数据,PHP内核对我们编写的代码进行解释和运算, 最后返回 ...
- SharePoint2010新特性:InfoPath定义创建列表的界面
在SharePoint2007的时候,自定义的列表可以使用CAML修改其展示页面,但是对于创建列表的页面,不容易自定义.现在在SharePoint2010中,增强了InfoPath Form Serv ...
- 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
- Linux JDK 安装
1,下载JDK(Linux版) 官网下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2, 建立java目录 ...
- eclipse 启动报错\workspace\.metadata\.log
eclipse启动报错,让查看.metadata\.log日志 eclipse启动不了,让查看.metadata\.log日志,上面为日志中的错误提示. 解决办法:删除 .metadata\.plug ...
- jQuery中大于gt和小于lt
gt,lt计数都是下标从0开始,而且不论大小于,都不包括它自己本身. <!DOCTYPE html> <html> <head> <meta charset= ...