日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux qt小型计算器,Qt实现一个简单的计算器

發布時間:2025/4/5 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux qt小型计算器,Qt实现一个简单的计算器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt實現一個簡單的計算器

作者:hackett

微信公眾號:加班猿

一、UI界面版

運行效果:輸入num1和num2選擇+-*/點擊計算即可

UI界面設計:

3個lineEdit(lineEditNum1,lineEditNum2,lineEditSum)

2個PushButton(buttonClear,ButtonCalc)

1個comboBox

1個label

布局:

3個lineEdit和1個comboBox、1個label水平布局

2個PushButton和一個彈簧水平布局

最后整體布局即可

main.cpp#include?"mainwindow.h"

#include?

int?main(int?argc,?char?*argv[])

{

QApplication?a(argc,?argv);

MainWindow?w;

w.show();

return?a.exec();

}

mainwindow.cpp#include?"mainwindow.h"

#include?"ui_mainwindow.h"

#include?

#include?

MainWindow::MainWindow(QWidget?*parent)?:

QMainWindow(parent),

ui(new?Ui::MainWindow)

{

ui->setupUi(this);

}

MainWindow::~MainWindow()

{

delete?ui;

}

void?MainWindow::on_buttonCalc_clicked()

{

double?num1?=?ui->lineEditNum1->text().toDouble();//獲取num1的值

double?num2?=?ui->lineEditNum2->text().toDouble();//獲取num2的值

uint8_t?index?=?ui->comboBox->currentIndex();???//獲取下拉框的下標0?+,?1?-?,2?*,?3?/

double?result?=?0.0;

switch?(index)?{

case?0:

result?=?num1?+?num2;

break;

case?1:

result?=?num1?-?num2;

break;

case?2:

result?=?num1?*?num2;

break;

case?3:

if(num2?==?0)

{

QMessageBox::about(this,"注意","除數不能為0");

return;

}

result?=?num1?/?num2;

break;

default:

break;

}

ui->lineEditSum->setText(QString::number(result));

}

void?MainWindow::on_buttonClear_clicked()

{

ui->lineEditNum1->clear();

ui->lineEditNum2->clear();

ui->lineEditSum->clear();

}

mainwindow.h#ifndef?MAINWINDOW_H

#define?MAINWINDOW_H

#include?

namespace?Ui?{

class?MainWindow;

}

class?MainWindow?:?public?QMainWindow

{

Q_OBJECT

public:

explicit?MainWindow(QWidget?*parent?=?0);

~MainWindow();

private?slots:

void?on_buttonCalc_clicked();//計算結果槽函數

void?on_buttonClear_clicked();//清除輸入框槽函數

private:

Ui::MainWindow?*ui;

};

#endif?//?MAINWINDOW_H

二、純代碼版

注:只能兩個數單獨加減乘除,不能連續運算,按‘ = ’重新開始兩個數運算

main.cpp#include?"calc.h"

#include?

int?main(int?argc,?char?*argv[])

{

QApplication?a(argc,?argv);

Calc?w;

w.show();

return?a.exec();

}

calc.cpp#include?"calc.h"

#include?

#include?

#include?

#include?

#include?

Calc::Calc(QWidget?*parent)?:

QWidget(parent)

{

//獲取字體QFont

QFont?font?=?this->font();

font.setPixelSize(30);

this->setFont(font);

//保存鍵盤值

QString?keys="789-456*123/0.+=";

QVBoxLayout?*vbox?=?new?QVBoxLayout();

QSizePolicy?qsPolicy(QSizePolicy::Expanding,?QSizePolicy::Expanding);

for(int?i=0;?i<4;?i++)

{

QHBoxLayout?*hbox?=?new?QHBoxLayout();

for(int?j=0;?j<4;?j++)

{

buttons[i*4+j]?=?new?QToolButton(this);

//設置文本

buttons[i*4+j]->setText(keys.mid(i*4+j,?1));

hbox->addWidget(buttons[i*4+j]);

//策略設置

buttons[i*4+j]->setSizePolicy(qsPolicy);

//把按鈕觸發信號關聯槽函數

connect(buttons[i*4+j],?SIGNAL(clicked(bool)),this,?SLOT(buttons_chick()));

}

//把水平布局管理器添加到垂直布局管理器中

vbox->addLayout(hbox);

}

//創建一個輸入框

edit?=?new?QLineEdit(this);

edit->setSizePolicy(qsPolicy);

edit->setMaximumHeight(60);

edit->setAlignment(Qt::AlignRight);

QVBoxLayout?*allVbox?=?new?QVBoxLayout(this);

allVbox->addWidget(edit);

allVbox->addLayout(vbox);

//初始化

firstNumber.clear();

secondNumber.clear();

calcflag?=?0;

}

Calc::~Calc()

{

}

void?Calc::input_data(QString?str)

{

if(calcflag?==?0)

{

firstNumber.append(str);

edit->setText(firstNumber);

}else

{

secondNumber.append(str);

edit->setText(secondNumber);

}

}

void?Calc::buttons_chick()

{

//通過信號發送者獲取按鈕對象

QToolButton?*button?=?(QToolButton*)sender();

//qDebug()

QString?str?=?button->text();

QString?datastr?=?".0123456789";

QStringList?typestr;

typestr<

if(datastr.indexOf(str)?>=?0)//獲取按鍵值

{

input_data(str);????//輸入數據

}else?if(typestr.indexOf(str)>=0)

{

calcflag?=?typestr.indexOf(str)+1;//獲取運算符號type

}else?//=

{

double?result?=?0.0;

switch?(calcflag)?{

case?1:

result?=?firstNumber.toDouble()+secondNumber.toDouble();

break;

case?2:

result?=?firstNumber.toDouble()-secondNumber.toDouble();

break;

case?3:

result?=?firstNumber.toDouble()*secondNumber.toDouble();

break;

case?4:

result?=?firstNumber.toDouble()/secondNumber.toDouble();

break;

default:

break;

}

edit->setText(QString::number(result));

calcflag?=?0;

firstNumber.clear();

secondNumber.clear();

}

}

calc.h#ifndef?CALC_H

#define?CALC_H

#include?

#include?

#include?

class?Calc?:?public?QWidget

{

Q_OBJECT

public:

explicit?Calc(QWidget?*parent?=?0);

~Calc();

void?input_data(QString?str);

protected?slots:

void?buttons_chick();//按鍵槽函數

private:

QToolButton?*buttons[16];???//按鈕數組

QLineEdit?*edit;????????????//輸入框

QString?firstNumber;????????//記錄輸入第一個數值

QString?secondNumber;???????//記錄輸入第一個數值

int?calcflag;???????????????//1-add,?2-sub,?3-mul,?4-div

};

#endif?//?CALC_H

如果你覺得文章還不錯,記得"點贊關注"

關注我的微信公眾號【 加班猿 】可以獲取更多內容

總結

以上是生活随笔為你收集整理的linux qt小型计算器,Qt实现一个简单的计算器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色av综合| 日韩一区二区三区久久 | 成人免费播放视频 | 久久久综合精品 | 精品免费国产一区二区三区四区 | 蜜桃久久精品 | www.成年人 | 久久久久久久久久福利 | 国产一级免费大片 | 久久av秘一区二区三区 | 都市激情亚洲一区 | 爱福利视频网 | 亚洲国产成人91精品 | 国产一区二区精华 | 国产乱码精品一区二三赶尸艳谈 | 午夜色网站 | 69精品视频 | 亚洲综合激情在线 | 国产亚洲精品久久久久四川人 | 国产理论| 高清不卡一区二区三区 | 亚洲精品视频免费观看 | 久久久久久久影院 | 久久婷婷激情 | 人妻av无码一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 亚洲精品国产综合 | 东京热一本视频一区 | 国产精品一区二区三区免费 | 日本不卡一区 | wwwxx在线观看 | 美女被c出水 | 奇米影视999 | 欧美在线播放一区 | 苍井空浴缸大战猛男120分钟 | 亚州精品视频 | 色播导航| 国产情侣在线视频 | 91麻豆一区二区 | 日韩一级片免费观看 | 少妇无内裤下蹲露大唇视频 | 激情五月在线观看 | 在线观看一级片 | 久久天堂av综合合色蜜桃网 | 一级性毛片 | 国产精品无码自拍 | 欧美成人一区二区三区 | 免费av福利 | 欧美草比视频 | 女人下部全棵看视频 | 国产精品久久久一区二区三区 | 俺也去五月婷婷 | 野外(巨肉高h) | 精品乱码一区二区三四区视频 | 国产二区一区 | 亚洲精品国 | 天天网综合| 色伊人久久 | 成人毛片一区二区三区 | 一区二区三区在线免费观看视频 | 日本草逼视频 | 亚洲爱视频 | 国产精品成人69xxx免费视频 | 久久男人av| 成人国产片| 国产成人精品亚洲精品色欲 | 激情免费网站 | 男女啪啪软件 | 色无极亚洲 | 狠狠躁日日躁 | 欧美激情第二页 | 在线免费视频观看 | 免费网站在线高清观看 | www.国产视频 | 中国av在线 | 影音先锋中文字幕在线视频 | 日韩欧美综合久久 | 亚洲国产精品无码观看久久 | 欧美色涩在线第一页 | 91热精品 | 国产视频四区 | 国产v亚洲 | 天天干天天日夜夜操 | 成人a站 | 欧美一区2区三区4区公司 | 美女的奶胸大爽爽大片 | 筱田优全部av免费观看 | 免费三片在线视频 | av免费观看网站 | 黄色视屏网站 | 亚洲精品短视频 | 亚洲av综合av一区二区三区 | 一区二区三区日韩 | 国产视频精品久久 | 日韩一区中文字幕 | 亚洲天堂资源网 | 日韩黄色a级片 | 青娱乐伊人| 欧美精品在线看 |