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轴顺序排列.一个窗口部件 ...
随机推荐
- v0lt CTF安全工具包
0×00 v0lt v0lt是一个我尝试重组每一个我使用过的/现在在使用的/将来要用的用python开发的安全领域CTF工具.实践任务可能会采用bash脚本来解决,但我认为Python更具有灵活性,这 ...
- EMC Documentum DQL整理(四)
1.List files and folder in specified folder pathSELECT DISTINCT s.object_name, fr.r_folder_path FROM ...
- OSGI入门笔记
OSGI框架为Java定义了一个动态模块化系统,它使你可以更好地控制代码结构,动态管理代码的生命周期,并且提供了代码写作的松耦合方式:更值得称道的是,它的规范文档描述详尽.--<OSGI实战&g ...
- 【Windows 10 IoT - 1】Window 10系统安装(树莓派 Pi2)
一.硬件准备 (1).树莓派Pi2 (2).8G 10速Micro SD卡 (3).LCD显示器(如果是VGA接口,需要加一个HDMI转VGA模块) (4).鼠标 (5).安装Windows 10的P ...
- MySQL数据库出现The server quit without updating PID file.
一.服务器环境 操作系统:CentOS-6.4 服务器环境:集成环境LNMP1.0 二.步骤重现 1.安装LNMP1.0,具体操作方法见这里,安装成功: 2.因个人需求,现将MySQL数据库存放在/d ...
- Python时间处理之time模块
1.time模块简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一 ...
- my_log
//功能:定时向文件中写入时间,如果进程终止,下次打开同一个文件会继续之前的编号书写 #include<stdio.h> #include<time.h> int main(i ...
- 用VC6开发嵌入式LINUX程序
黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/ 首先说明一下,VC6自然不能直接开发LINUX程序,主要使用的是它的编辑环境而已,但是作为一 ...
- android Timer使用方法
Timer属性:http://www.apihome.cn/api/java/Timer.html 声明创建: private Timer mTimer; protected void onCreat ...
- <代码整洁之道>、<java与模式>、<head first设计模式>读书笔记集合
一.前言 几个月前的看书笔记 ...