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; }
运行效果: