3.QT计算机实战
- 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计算机实战的更多相关文章
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
- QT开发实战精解
无法打开包括文件<QApplication> No such file or directory 这一问题 解决办法,使用QApplication时必须在项目pro文件中添加一句 QT ...
- PyQT5速成教程-4 Qt Designer实战[上]
本文由 沈庆阳 所有,转载请与作者取得联系! 前言 在前面几节的学习中,我们对PyQt的基本使用.Qt Designer与Python编码的工作流程有了基本的学习.同时也掌握了Qt Designer中 ...
- PyQt(Python+Qt)实战:使用QCamera、QtMultimedia等实现摄像头拍照
一.概述 在PyQt中,可以使用QCamera.QCameraViewfinder.QCameraViewfinderSettings等一系列多媒体操作相关类实现摄像头操作.用这些类不足50行代码+U ...
- Qt 新手实战项目之手把手打造一个串口助手
一前景 很多时候我们在学习一门新的语言,一直在学习各种语法和记住各种关键字,很容易产生枯燥的情绪,感觉学习这些玩意儿不知道用在什么地方,心里很是苦恼,这不,我在这记录下我学习Qt的第一个的小项目-串口 ...
- C++ Qt 项目实战(一)之文本编辑器
文本编辑器例图 项目开发环境 系统版本:windows10 QT 版本: 5.9.9 开发语言:C++ 已实现功能 文件操作:新建,打开,保存,另存为,打印,退出 编辑操作:复制,粘贴,剪切,查找,替 ...
- 第15.40节、PyQt(Python+Qt)实战:moviepy实现MP4视频转gif动图的工具
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在写<第15.39节.splitDockWidget和 ...
- 项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
前言 本项目的出现理由只是笔者的一个念头,于是利用专业Qt和Opencv相关的知识开发一个辅助工具,本文章仅用于Qt和Opencv结合的学习. Demo演示效果 运行包下载地 ...
- 【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示
去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...
随机推荐
- Common webpart properties in kentico
https://devnet.kentico.com/docs/7_0/devguide/index.html?common_web_part_properties.htm HTML Envelope ...
- 2.linux系统命令详解
1 shell shell:命令解释器,根据输入的命令执行相应命令. 1.1 shell家族 察看当前系统下有哪些shell: cat /etc/shells 察看当前系统正在使用的shell ech ...
- BZOJ 2427 /HAOI 2010 软件安装 tarjan缩点+树形DP
终于是道中文题了.... 当时考试的时候就考的这道题.... 果断GG. 思路: 因为有可能存在依赖环,所以呢 先要tarjan一遍 来缩点. 随后就进行一遍树形DP就好了.. x表示当前的节点.j表 ...
- asp.net 后台给前台控件添加及设置属性
txtTopImgBox.Attributes.Add("title", "12312121"); Text1.Style["background-c ...
- Core篇——初探Core配置管理
文章目录 1.命令行配置 2.Json文件配置 3.配置文件文本至C#对象实例的映射 4.配置文件热更新 5.总结 命令行的配置 我们首先来创建一个.net core 的控制台项目,然后引入.net ...
- sql server 授权相关命令
原文:https://blog.csdn.net/hfdgjhv/article/details/83834076 https://www.cnblogs.com/shi-yongcui/p/7755 ...
- Tomcat配置自签名https
从JDK中找到keytool.exe,随便复制到一个方便的目录,在命令行中进入这个目录. 第一步:为服务器生成证书 tomcat.keystore,命令中如果是IP方式访问用-ext SAN=ip:1 ...
- Android Span的简单使用
Spanable中的常用常量: Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含start和end所在的端点 (a,b) Span ...
- JEE Spring-boot 简单的ioc写法。
什么是ioc,就是你可能会有一些生活必需品,这些东西你必须要用才能存活.但是你不是每天都回去买,去哪一家点去买.而这些用品会一直放在哪里,每一个商店就是一个容器,包裹着这些物品. 创建ioc项目,首先 ...
- ZBrush设计制作小怪兽并用KeyShot渲染
ZBrush为电影制作设计独特的生物概念重点向大家介绍了概念设计师Ian Joyner使用ZBrush®3D图形绘制软件雕刻面对镜头咆哮的生物半身像的具体过程,ZBrush创建好模型之后,要想让角色更 ...