zoukankan      html  css  js  c++  java
  • 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;
    }

    运行效果:

      

      

  • 相关阅读:
    zookeeper集群搭建
    mysql当前库的查询
    逻辑卷管理
    python小技巧,各种进制的转换
    修剪我的身心
    点击右键很慢,禁用网卡就好了问题解决了(转载)
    实际应用中的C#加密
    ckeditor+ckfinder配置
    ASP.NET MVC学习总结(二)
    MVC3关于用户名的验证
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/12249510.html
Copyright © 2011-2022 走看看