日韩性视频-久久久蜜桃-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实现一个简单的计算器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 特级黄色录像 | 成人久色| 2021天天操| 国产的av | 男女免费看 | 成人亚洲玉足脚交系列 | 久久精品一区二区三区黑人印度 | 欧美成人精品一区二区三区在线看 | 亚洲精品成人无码熟妇在线 | 欧美 日韩 国产 激情 | 国产91丝袜在线播放 | 欧美性猛交xx | 国产3p精品一区 | 亚洲av无码一区二区三区人 | 亚洲午夜无码久久久久 | 国产视频福利 | 天天人人 | 青青视频二区 | 久久精品人妻av一区二区三区 | 丰满饥渴老女人hd | 日韩av福利| 91美女精品网站 | 日日撸夜夜操 | 91麻豆精品国产91久久久久久 | 成人a毛片 | 免费的黄色片 | 五月天男人天堂 | 69亚洲精品久久久蜜桃小说 | 久久这里只有精品99 | 国产一区二区自拍 | 国产馆视频 | 男女视频在线观看 | 91影音 | 天天射夜夜撸 | 精品熟妇一区二区三区 | 香蕉国产在线 | 欧美一区二区三区网站 | 精品人妻大屁股白浆无码 | 激情一区 | 奇米色777 | 天天干天天搞天天射 | 超碰视屏 | 欧美一级激情 | 黄色在线免费观看 | 日韩成人黄色片 | av综合久久 | 在线观看亚洲大片短视频 | 爱情岛黄色 | 综合五月天 | 亚洲视频一区二区三区 | 狠狠人妻久久久久久综合麻豆 | 免费欧美一区 | 综合久久久久久久久久久 | 亚洲精品无码久久久久久久 | 91福利社在线观看 | 青青青手机视频在线观看 | 国产精品视频999 | 国产美女精品视频国产 | 黄色片在线免费 | 一级黄色大片视频 | 男女无套免费视频网站动漫 | 69av视频 | 爱露出| 麻豆久久久久 | 美女18网站 | 亚洲一在线| 樱花影院最新免费观看攻略 | 黄视频网站在线看 | 亚洲精品成人电影 | 亚欧洲精品视频 | av永久免费在线观看 | 91麻豆蜜桃一区二区三区 | 久久7777| 欧美日本在线视频 | 日韩一级免费观看 | 国产一区二区三区视频 | 久久精品2019中文字幕 | 羞羞漫画在线播放 | 极品丰满少妇 | 亚洲精品国产精品乱码不99按摩 | 青春草视频在线免费观看 | 91成品人影院 | 亚洲综合套图 | 女性喷水视频 | 五月情婷婷 | xxxx69视频 | 国产精品无码av无码 | 亚洲av无码国产精品永久一区 | 国产热热 | 精品久久久久久久久久久久 | 欧美精品一区二区三区久久 | www.久久国产 | 超碰c| 国产成人中文字幕 | 日韩一级二级视频 | 一区视频在线播放 | 办公室摸腿吻胸激情视频 | 肉色欧美久久久久久久免费看 | 久久久久久久久久久久久久久久久久久 |