Qt 计算器界面实现

学习目的:

  QWidget  QPushbutton  QLineEdit使用。

  通过Qt 代码实现一个计算器界面。

QWidget窗口组件:

  QWidget类继承自 QObject 类和QPaintDevice类

  QObject 是所有 支持Qt对象模型 的基类

  QPaintDevice Qt中所有 可绘制组件 的基类

   QWidget能够绘制自己 和处理 用户的输入

  QWidget 是Qt所有窗口组件类的父类  

   QWidget 是所有窗口组件的抽象

  Qt中的每个窗口组件都是一个QWidget

  QWidget 类对象常作为 父组件 或 顶级组件 使用

QLineEdit组件:

  QLineEdit 用于接受用户输入

  QLineEdit 能够获取用户输入字符串

  QLineEdit 功能性组件,需要父组件作为容器

  QLineEdit 能够在父组件中进行定位

QPushButton组件:

  QPushButton 用于接受用户点击事件

  QPushButton 能够显示提示性字符串

  QPushButton 功能性组件,需要父组件作为容器

  QPushButton 能够在父组件中进行定位

步骤一:

  使用QWidget 绘制窗口。

  头文件:  

#include <QtGui/QApplication>
#include <QWidget>

    实现代码:  

QWidget* w = new QWidget(NULL,Qt::WindowCloseButtonHint);//构造一个 QWidget 对象 关闭窗体最大化 最小化
  w->show();//显示主窗体
 w->setFixedSize(w->width(),w->height());//固定窗体大小 禁止窗体通过鼠标放大缩小

运行效果:

  

步骤二 增加显示框

  Qwidget + QLlineEdit 组件实现,计算器显示框。

包含头文件

  #include <QLineEdit>

实现代码:

 QWidget* w = new QWidget(NULL,Qt::WindowCloseButtonHint);//构造一个 QWidget 对象 关闭窗体最大化 最小化
    QLineEdit* le = new QLineEdit(w);//QLineEdit 父组件为Qwidget
/*设置 QLineEdit 控件大小位置*/
    le->resize(240,30);//设置 宽 高
    le->move(10,10); // 设置起始坐标
    le->setReadOnly(true);//设置 QLineEdit 属性为只读

    w->show();//显示主窗体
    w->setFixedSize(w->width(),w->height());//固定窗体大小 禁止窗体通过鼠标放大缩小

运行效果:

  

 步骤三 添加计算器按键:

  Qwidget + QLlineEdit +QPushButton组件实现,计算器界面。

 包含头文件:

#include <QtGui/QApplication>
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
代码:
  
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget* w = new QWidget(NULL,Qt::WindowCloseButtonHint);//构造一个 QWidget 对象 关闭窗体最大化 最小化
    QLineEdit* le = new QLineEdit(w);//QLineEdit 父组件为Qwidget
    QPushButton *button[20] = {0};//按钮数组  20 个按钮
    const char* buttonsText[20] =
    {
        "7", "8", "9", "+", "(",
        "4", "5", "6", "-", ")",
        "1", "2", "3", "*", "<-",
        "0", ".", "=", "/", "C",
    };
    int ret = 0;


    /*创建20 个按钮*/
    for(int i = 0; i<4 ;i++)
    {
        for(int j=0 ; j<5 ;j++)
        {
            button[i*5 + j] = new QPushButton(w);//QpushButton 父组件为 QWidget
            button[i*5 + j] ->resize(40,40);//设置buttton 控件大小  40 *40
            button[i*5 + j] ->move(10+(10+40)*j,50+(10+40)*i); //设置button 控件偏移
            button[i*5 + j] ->setText(buttonsText[i*5 + j]);//设置button 控件显示字符
        }
    }
    /*设置 QLineEdit 控件大小位置*/
    le->resize(240,30);//设置 宽 高
    le->move(10,10); // 设置起始坐标
    le->setReadOnly(true);//设置 QLineEdit 属性为只读

    w->show();//显示主窗体
    w->setFixedSize(w->width(),w->height());//固定窗体大小 禁止窗体通过鼠标放大缩小
    ret = a.exec();
    delete w;
    return ret;
}

运行效果:

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DipsyHu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值