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