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

运行效果:

  

  

原文地址:https://www.cnblogs.com/hjxzjp/p/12249510.html

时间: 2024-10-09 04:03:08

Qt 计算器界面实现的相关文章

Qt计算器开发(三):运行效果及项目总结

运行效果 工程目录 Counter |--- Counter.pro |--- 头文件 |      |--- aboutdialog.h |      `--- mainwindow.h |--- 源文件 |      |--- aboutdialog.cpp |      |--- main.cpp |      `--- mainwindow.cpp `--- UI文件 |--- aboutdialog.ui `--- mainwindow.ui 总结 项目 这个工程的Ui部分我是直接使用

外部进程嵌入到Qt进程界面(使用QWindow::fromWinId)

有时候需要做框架集成的东西,需要把其他客户端像组件一样集成到一个客户端中,类似于一个软件集成的平台客户端,统一用一个中心管理的客户端做类似于控制面板一样的东西去调用不同的软件.此时就必须相应不同的点击图标的事件去嵌入到主界面里面.下面简单的对windows平台上面Qt的界面中嵌入系统自带的计算机程序做简单的说明. 一.首先是获取计算机程序的窗口类名称,只要利用的是VS中的Spy++工具,在vs菜单“工具”中打开之后如图所示.查找计算器的窗口句柄并获取到具体的类名. CTRL+F,搜索句柄,获取到

计算器界面代码重构

计算器界面代码重构什么是软件开发过程中的重构?重构(Refactoring)——以改善代码质量为目的代码重写 使其软件的设计和架构更加合理 提高软件的扩展性和维护性 代码实现与代码重构不同——代码实现 按照设计编程实现,重心在于功能实现——代码重构 以提高代码质量为目的软件架构设计 区别: 代码实现时不考虑架构的好坏,只考虑功能的实现 代码重构时不能影响已实现的功能,只考虑架构的改善 QCalculatorUI.h #ifndef _QCALCULATORUI_H_ #define _QCALC

计算器界面——GridLayout

1 <?xml version="1.0" encoding="utf-8"?> 2 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 and

Android计算器界面

1 <?xml version="1.0" encoding="utf-8"?> 2 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 an

从零开始学android&lt;使用嵌套布局实现计算器界面.十七.&gt;

所谓的嵌套布局就是在一个文件中嵌套多个布局文件 <span style="font-size:18px;"> <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:layou

Qt 中界面间的执行调用QDialog::Accepted

Qt中界面的简单调用model->show();model的界面就会显示出来,早先用QT开发的时候,这个方法用的比较多,随着后来对程序的需求增多,这个方法已经不太合适 了. 比如说,我要调用一个界面,并且把参数传递过去,介于C++的封装和安全性,是不建议直接调用类中的成员变量或过多的调用成员函数,所以,发现了另一种比较灵活的方法: 实例:在A类中调用B类 1.在A类中定义一个B类的对象,直接调用B类中的成员函数 2.在B类的成员函数中,加入语句:this->exec();B界面就出来了. 3.

Qt计算器开发(二):信号槽实现数学表达式合法性检查

表达式的合法性 因为我们的计算器不是单步计算的,所以我们可以一次性输入一个长表达式.然而如果用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比如,在输入了左括号以后那么接下来,不能输入运算符.此时运算符要是不可用的状态.在输入了右括号以后不能直接输入数字,此时数字键应该是不可用状态.等等此类的. 在这里我使用了信号与槽的方式来实现.点击不同的按钮,会发展出不同的信号.在这之后的事,点击按钮本身无需考虑,这也是信号槽的良好的设计理念造成的效果,

Android计算器界面布局

Android计算器界面图: 所定义的XML布局文件,主要用到的是TableLayout: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heigh