zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt新手入门级 计算器加、减、乘、除、应用

Qt应用 计算器 新手入门
2023-09-27 14:19:51 时间

前言

优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持。


一、Qt Creator

Qt创建工程

二、源码

1.拷贝到widget.h

代码如下(示例):

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QLabel>
#include <QString>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();




private:
QPushButton *button,*button1;
QLineEdit  *edit1,*edit2,*edit3,*edit4;
QGridLayout *layout;


private slots:
void on_clicked();
void on_clicked1();
public:
void myLayout();


private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

2.拷贝到widget.cpp

代码如下(示例):

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

}


Widget::~Widget()
{
    delete ui;
}


void Widget::myLayout()
{
    button = new QPushButton;
    button1 = new QPushButton;

    layout = new QGridLayout(this);

    edit1  = new QLineEdit;
    edit2  = new QLineEdit;
    edit3  = new QLineEdit;
    edit4  = new QLineEdit;

    button1->setText("清除");
    button->setText("结果");

    connect(button,SIGNAL(clicked(bool)),this,SLOT(on_clicked()));   //连接按钮
    connect(button1,SIGNAL(clicked(bool)),this,SLOT(on_clicked1()));

    layout->addWidget(button,1,0,Qt::Alignment());       //初始化画图

    layout->addWidget(edit1,0,0,Qt::Alignment());
    layout->addWidget(edit2,0,1,Qt::Alignment());
    layout->addWidget(edit3,0,2,Qt::Alignment());
    layout->addWidget(edit4,1,1,Qt::Alignment());
    layout->addWidget(button1,1,2,Qt::Alignment());

}

void Widget::on_clicked()     //计算大小
{

   int a = edit1->text().toInt();
   int b = edit3->text().toInt();
   QString c = edit2->text();

   if(c=="+")
   {
       edit4->setText(QString::number(a+b));
   }
   if(c=="-")
   {
       edit4->setText(QString::number(a-b));
   }
   if(c=="*")
   {
       edit4->setText(QString::number(a*b));
   }
   if(c=="/")
   {
       edit4->setText(QString::number(a/b));
   }



}

void Widget::on_clicked1()   //清除
{

    edit1->clear();
    edit2->clear();
    edit3->clear();
    edit4->clear();
}

拷贝到 main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    w.myLayout();
    return a.exec();
}


拷贝方法如图所示,点击下方链接

拷贝工程图解过程

效果图

在这里插入图片描述