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

运行效果:

  

 

 

  

posted @ 2020-02-01 18:43  Dipsyhu  阅读(1888)  评论(0编辑  收藏  举报