• mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H #include <QMainWindow> namespace Ui {
    class MainWindow;
    } class MainWindow : public QMainWindow
    {
    Q_OBJECT public:
    explicit MainWindow(QWidget *parent = );
    void run();
    ~MainWindow(); private slots:
    void on_pushButton_clicked(); void on_num1_textChanged(const QString &arg1); private:
    Ui::MainWindow *ui;
    }; #endif // MAINWINDOW_H
  • mainwindow.cpp
     #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "op.h"
    #include <QDebug> MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    } MainWindow::~MainWindow()
    {
    delete ui;
    } const QString op1("+");
    const QString op2("-");
    const QString op3("*");
    const QString op4("/"); void MainWindow::on_pushButton_clicked()
    {
    qDebug()<<"hello"<<endl;
    op ops;
    bool isok;
    QString str1 = ui->num1->text();
    QString str2 = ui->op->text();
    QString str3 = ui->num2->text();
    //保存结果
    QString str4;
    int a = str1.toInt(&isok,);
    int b = str3.toInt(&isok,); ops.seta(a);
    ops.setb(b); if(str2 == op1)
    {
    str4.sprintf("%d",ops.add());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op2)
    {
    str4.sprintf("%d",ops.sub());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op3)
    {
    str4.sprintf("%d",ops.mul());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op4)
    {
    str4.sprintf("%d",ops.divv());
    qDebug()<<str4<<endl;
    }
    ui->textEdit->setText(str4);
    } void MainWindow::run()
    {
    qDebug()<<"hello"<<endl;
    op ops;
    bool isok;
    QString str1 = ui->num1->text();
    QString str2 = ui->op->text();
    QString str3 = ui->num2->text();
    //保存结果
    QString str4;
    int a = str1.toInt(&isok,);
    int b = str3.toInt(&isok,); ops.seta(a);
    ops.setb(b); if(str2 == op1)
    {
    str4.sprintf("%d",ops.add());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op2)
    {
    str4.sprintf("%d",ops.sub());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op3)
    {
    str4.sprintf("%d",ops.mul());
    qDebug()<<str4<<endl;
    }
    else if(str2 == op4)
    {
    str4.sprintf("%d",ops.divv());
    qDebug()<<str4<<endl;
    }
    ui->textEdit->setText(str4);
    } void MainWindow::on_num1_textChanged(const QString &arg1)
    {
    qDebug()<<"hello"<<endl;
    op ops;
    //父类存储子类对象的地址
    QObject *pobj = &ops; bool isok;
    QString str1 = ui->num1->text();
    int a = str1.toInt(&isok,);
    if(!isok)
    {
    ui->num1->clear();
    }
    }
  • op.h
     #ifndef OP_H
    #define OP_H #include <QObject> class op : public QObject
    {
    Q_OBJECT
    public:
    explicit op(QObject *parent = nullptr);
    int add();
    int sub();
    int mul();
    int divv(); public:
    void seta(int data);
    void setb(int data);
    int geta();
    int getb(); private:
    int a;
    int b; signals: public slots:
    }; #endif // OP_H
  • op.cpp
     #include "op.h"
    
     op::op(QObject *parent) : QObject(parent)
    {
    a = b = ;
    } int op::add()
    {
    return a+b;
    } int op::sub()
    {
    return a-b;
    } int op::mul()
    {
    return a*b;
    } int op::divv()
    {
    return a/b;
    } void op::seta(int data)
    {
    a = data;
    } void op::setb(int data)
    {
    b = data;
    } int op::geta()
    {
    return a;
    } int op::getb()
    {
    return b;
    }
  • main.cpp
     #include "mainwindow.h"
    #include <QApplication> int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    w.show(); return a.exec();
    }

最新文章

  1. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用
  2. Java Timer定时器时,每次重复执行了两次任务的解决方案
  3. salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable
  4. SortedMap接口
  5. 解决cxf+spring发布的webservice,types,portType和message以import方式导入
  6. microsoft .netframework Available Source Code Components
  7. android 使用Activity做窗口弹出(模拟Dialog)
  8. Android adt v22.6.2-1085508 自己主动创建 appcompat_v7 解决方法,最低版本号2.2也不会出现
  9. OC - 正则表达式 - RegexKitLite
  10. Best Time to Buy and Sell Stock II ——LeetCode
  11. json格式字符串与java.util.Map的互转(借助于jackson.jar)
  12. Luogu P1541 乌龟棋(NOIP2010TG)
  13. Linux IO时事检测工具iostat
  14. QTP自动化测试流程
  15. P2709 小B的询问(莫队)
  16. LG4213 【【模板】杜教筛(Sum)】
  17. js中的eval函数另一种实现
  18. Leetcode题库——49.字母异位词分组【##】
  19. 【莫队算法】【权值分块】bzoj3920 Yuuna的礼物
  20. Summary: Prime

热门文章

  1. kentico在使用局域网ip访问的时候提示Missing license或者Invalid website
  2. USACO 1.5 Superprime Rib
  3. BZOJ 3052 树上带修莫队
  4. JQuery (总结)
  5. js 手机号码简单正则校验
  6. DB2load遇到SQL3508N错误
  7. X位的有/无符号整数
  8. baidu练习/html/css
  9. CentOS 7编译安装Python3.7.X
  10. windows下Word使用-快捷键