• 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();
    }

3.QT计算机实战的更多相关文章

  1. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  2. QT开发实战精解

    无法打开包括文件<QApplication> No such file or directory  这一问题 解决办法,使用QApplication时必须在项目pro文件中添加一句 QT ...

  3. PyQT5速成教程-4 Qt Designer实战[上]

    本文由 沈庆阳 所有,转载请与作者取得联系! 前言 在前面几节的学习中,我们对PyQt的基本使用.Qt Designer与Python编码的工作流程有了基本的学习.同时也掌握了Qt Designer中 ...

  4. PyQt(Python+Qt)实战:使用QCamera、QtMultimedia等实现摄像头拍照

    一.概述 在PyQt中,可以使用QCamera.QCameraViewfinder.QCameraViewfinderSettings等一系列多媒体操作相关类实现摄像头操作.用这些类不足50行代码+U ...

  5. Qt 新手实战项目之手把手打造一个串口助手

    一前景 很多时候我们在学习一门新的语言,一直在学习各种语法和记住各种关键字,很容易产生枯燥的情绪,感觉学习这些玩意儿不知道用在什么地方,心里很是苦恼,这不,我在这记录下我学习Qt的第一个的小项目-串口 ...

  6. C++ Qt 项目实战(一)之文本编辑器

    文本编辑器例图 项目开发环境 系统版本:windows10 QT 版本: 5.9.9 开发语言:C++ 已实现功能 文件操作:新建,打开,保存,另存为,打印,退出 编辑操作:复制,粘贴,剪切,查找,替 ...

  7. 第15.40节、PyQt(Python+Qt)实战:moviepy实现MP4视频转gif动图的工具

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在写<第15.39节.splitDockWidget和 ...

  8. 项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)

    前言   本项目的出现理由只是笔者的一个念头,于是利用专业Qt和Opencv相关的知识开发一个辅助工具,本文章仅用于Qt和Opencv结合的学习.   Demo演示效果          运行包下载地 ...

  9. 【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...

随机推荐

  1. bzj1106: [POI2007]立方体大作战tet

    比较玄幻的题目. 考虑两个不同的元素 假设位置是 a...a...b...b... 那么不需要通过交换ab来消除ab,各自弄就行 若是 a...b...b...a... 那也没必要交换,先把b消掉就好 ...

  2. centos6配置固定ip地址(选择桥接模式)

    1.配置ifcfg-eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 首先把BOOTPROTO="dhcp"改成BOOTPROT ...

  3. php面向对象之get和set方法

    php面向对象之get和set方法 简介 1.自己写get或者set 2.用系统的魔术方法__get和__set 代码 <?php class Person{ private $userName ...

  4. Binary Indexed Tree 总结

    特点 1. 针对 数组连续子序列累加和 问题(需要进行频繁的 update.sum 操作): 2. 并非是树型结构,只是逻辑上层次分明: 3. 可以通过 填坑法 来理解: 4. 中心思想:每一个整数都 ...

  5. centos7安装mysql(转载)

    Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息.然而,网上关于Linux安装 ...

  6. ubuntu安装之后root用户配置

    安装ubuntu之后发现不切换到root显示:su: Authentication failure   需要进行一下操作   表示成功切换到root用户

  7. js获取浏览器中相关容器的高度

    网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offset ...

  8. Java NIO(四)文件通道

    文件通道 通道是访问I/O服务的导管,I/O可以分为广义的两大类:File I/O和Stream I/O.那么相应的,通道也有两种类型,它们是文件(File)通道和套接字(Socket)通道.文件通道 ...

  9. iOS开发者账号证书配置及相关工作

    申请到开发者账号,肯定要先配置一下才可以使用,这主要是iOS证书及配置文件: 以下这篇文章写得比较全面,故不再累赘,需要的同学可以看一下: iOS开发证书与配置文件的使用

  10. JAVA在线观看视频教程完整版

    今天给大家介绍一下JAVA在线观看视频教程完整版,我们知道Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语 ...