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;
    }

    运行效果:

      

      

  • 相关阅读:
    html5 保存图片到服务器本地
    html5 canvas分层
    webstorm配置scss自动编译路径
    微信开发测试号配置
    html5手机网站需要加的那些meta/link标签,html5 meta全解
    css去掉iPhone、iPad默认按钮样式
    如何激活webstorm 11
    min-height在安卓下不起作用
    基于字符串模式的路由路径的一些示例。
    nodeJS搭建本地服务器
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/12249510.html
Copyright © 2011-2022 走看看