欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:開發(fā)語言 Qt制作簡易計算器

柚子快報激活碼778899分享:開發(fā)語言 Qt制作簡易計算器

http://yzkb.51969.com/

此文章旨在記錄自己學習內(nèi)容,內(nèi)容十分基礎(chǔ),還有許多不完善的地方。本人純小白。大家就當隨便看看。這也是我第一次發(fā)表文章,內(nèi)容冗長,說明不準確也請大家包含 :)

本人用的是Qt Creater 12.0.1(community),安裝過程我就省略了,如果真的想學我丑陋的安裝手法,之后我再出一篇。

因為技術(shù)不成熟,所以該計算器只能計算五位數(shù)整數(shù),且不會顯示小數(shù)。

一、創(chuàng)建項目

1.首先,創(chuàng)建一個項目,然后選擇Qt Widgets Application即可。后續(xù)安裝時,設置名稱(名稱默認為untitled),路徑。

2.在構(gòu)建系統(tǒng)時請選擇CMake。

3.Details處,請在Base class處選擇QWidget

4.在構(gòu)建套件(Kit)中選擇在前兩項即可。

其他的默認設置保持不變

二、設計UI

確認后,創(chuàng)建一個untitled的項目,并打開文件夾,找到widget.ui,開始設計簡易計算器的ui。

我們在左側(cè)的工具欄取用LCD Number作為計算器的顯示器,取用Push Button作為按鈕,取用Line Edit作為文本框,記錄計算時的數(shù)據(jù)。

設計方面我就不多敘述,因為本人設計拿不上臺面...大致情況可如下圖所示:

設計時可用柵格布局,以及全部選中并將水平和垂直策略更改為Expanding。

三、代碼編寫

為了實現(xiàn)計算器,首先需要定義兩個字符串變量a、b。

首先,在頭文件widget.h中找到private處,在內(nèi)部加入聲明。如下所示:

private:

Ui::Widget *ui;

QString a;

QStringList b;

};

#endif // WIDGET_H

之后,開始編寫各個按鍵的代碼,首先編寫數(shù)字鍵。在ui界面右鍵數(shù)字按鍵,并點擊轉(zhuǎn)到槽,選擇clicked(),之后會自動轉(zhuǎn)入到widget.cpp文件處編寫代碼。

1.數(shù)字按鍵設計

此處以數(shù)字0的按鍵進行簡要說明:

void Widget::on_pushButton_14_clicked()?這是Widget類中的一個成員函數(shù),名為on_pushButton_14_clicked。這個函數(shù)是當名為pushButton_14的按鈕被點擊時自動調(diào)用的。 a += "0";??這行代碼將字符串"0"加到變量a的末尾。如果a原先的值是"1",執(zhí)行這行代碼后,a的值將變?yōu)?10"。設計什么數(shù)字按鍵,就更改'" "中的數(shù)字即可。例如:設計數(shù)字7的按鍵,就將"0"改為"7"。 this->ui->lcdNumber->display(a);??這行代碼做了以下幾件事? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)this->ui:? 訪問當前對象的UI屬性。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)lcdNumber: 從UI中獲取一個名為lcdNumber的LCD數(shù)字顯示組件。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)->display(a): 將lcdNumber顯示的內(nèi)容設置為變量a的值。因此,如果之前a的值? 是"1230",那么LCD數(shù)字顯示組件將顯示這個值。

void Widget::on_pushButton_14_clicked()

{

a += "0"; //此處更改數(shù)字

this->ui->lcdNumber->display(a);

}

2.算術(shù)運算符按鍵設計

此處以加號進行簡要說明:

void Widget::on_pushButton_8_clicked()?這是Widget類中的一個成員函數(shù),名為on_pushButton_8_clicked。這個函數(shù)是當名為pushButton_8的按鈕被點擊時自動調(diào)用的。b.insert(0,a);??在字符串b的開頭插入字符串a(chǎn)的內(nèi)容。例如,如果a是"10",那么執(zhí)行這行代碼后,b將變?yōu)?10[原始b的內(nèi)容]"。a.clear();??清空字符串a(chǎn)的內(nèi)容,將其變?yōu)榭兆址?。b.insert(1,"+");?在字符串b的第二個位置(索引為1)插入字符"+"。例如,如果b是"123abc",那么執(zhí)行這行代碼后,b將變?yōu)?1+23abc"。設計什么按鍵,就更改'" "中的符號即可。例如:設計除號的按鍵,就將"+"改為"/"。this->ui->lcdNumber->display(a);??這行代碼更新LCD數(shù)字顯示器的顯示內(nèi)容為字符串a(chǎn)的值。但因為在第4行,我們已經(jīng)清空了a的內(nèi)容,所以這里顯示的內(nèi)容應該是空字符串。

void Widget::on_pushButton_8_clicked()

{

b.insert(0,a); // 將字符串a(chǎn)插入到字符串b的首位

a.clear(); // 清空字符串a(chǎn)

b.insert(1,"+"); // 在字符串b的第1個位置插入"+"符號

this->ui->lcdNumber->display(a);

}

3.C鍵清除按鍵設計

void Widget::on_pushButton_7_clicked()?這是Widget類中的一個成員函數(shù),名為on_pushButton_7_clicked。這個函數(shù)是當名為pushButton_7的按鈕被點擊時自動調(diào)用的。b.clear();?清空字符串b的內(nèi)容。? ? ? ? ???a.clear();?清空字符串a(chǎn)的內(nèi)容。this->ui->lcdNumber->display("0");??在一個LCD數(shù)字顯示器上顯示數(shù)字0。ui->lineEdit->setText(" ");??將一個名為lineEdit的文本框的內(nèi)容設置為一個空格。后續(xù)代碼更改lineEdit_2和lineEdit_3文本框內(nèi)容。

void Widget::on_pushButton_7_clicked()

{

b.clear();

a.clear();

this->ui->lcdNumber->display("0");

ui->lineEdit->setText(" "); // 將字符串 'a' 的內(nèi)容設置為文本框的文本

ui->lineEdit_2->setText(" ");

ui->lineEdit_3->setText(" ");

}

4.等于號按建設計

void Widget::on_pushButton_13_clicked()?這是Widget類中的一個成員函數(shù),名為on_pushButton_13_clicked。這個函數(shù)是當名為pushButton_13的按鈕被點擊時自動調(diào)用的。 if (!a.isEmpty() && !b.isEmpty())?檢查字符串變量a和b是否都不為空。 接下來的幾行代碼檢查字符串b的第1個字符是否為加減乘除,并執(zhí)行相應的數(shù)學運算: (1)如果第1個字符是"+",則將第0個和第2個字符轉(zhuǎn)換為整數(shù)并相加。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)如果第1個字符是"-",則將第0個和第2個字符轉(zhuǎn)換為整數(shù)并相減。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)如果第1個字符是"*",則將第0個和第2個字符轉(zhuǎn)換為整數(shù)并相乘。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)如果第1個字符是"/",則將第0個和第2個字符轉(zhuǎn)換為整數(shù)并相除。 this->ui->lcdNumber->display(v3);?在LCD數(shù)字顯示器上顯示計算結(jié)果。 接下來的幾行代碼設置三個文本框的內(nèi)容:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)ui->lineEdit->setText(b.at(2));: 設置文本框的內(nèi)容為字符串b的第2個字符。? ? ? ? ? ? ? ?(2)ui->lineEdit_2->setText(b.at(1));: 設置文本框的內(nèi)容為字符串b的第1個字符。? ? ? ? ? ?(3)ui->lineEdit_3->setText(b.at(0));: 設置文本框的內(nèi)容為字符串b的第0個字符。

void Widget::on_pushButton_13_clicked()

{

if (!a.isEmpty() && !b.isEmpty())

{

b.insert(2, a); // 在字符串b的第2個位置插入字符串a(chǎn)

int v3;

if (b.at(1) == "+") // 判斷字符串b的第1個元素是否為"+"

{

v3 = QString(b.at(0)).toInt() + QString(b.at(2)).toInt(); // 將字符串b的第0個和第2個元素轉(zhuǎn)換為整數(shù),并進行加法運算

this->ui->lcdNumber->display(v3);

ui->lineEdit->setText(b.at(2)); // 將字符串 'a' 的內(nèi)容設置為文本框的文本

ui->lineEdit_2->setText(b.at(1));

ui->lineEdit_3->setText(b.at(0));

}

else if (b.at(1) == "-") // 判斷字符串b的第1個元素是否為"-"

{

v3 = QString(b.at(0)).toInt() - QString(b.at(2)).toInt(); // 將字符串b的第0個和第2個元素轉(zhuǎn)換為整數(shù),并進行減法運算

this->ui->lcdNumber->display(v3);

ui->lineEdit->setText(b.at(2));

ui->lineEdit_2->setText(b.at(1));

ui->lineEdit_3->setText(b.at(0));

}

else if (b.at(1) == "*")// 判斷字符串b的第1個元素是否為"*"

{

v3 = QString(b.at(0)).toInt() * QString(b.at(2)).toInt(); // 將字符串b的第0個和第2個元素轉(zhuǎn)換為整數(shù),并進行乘法運算

this->ui->lcdNumber->display(v3);

ui->lineEdit->setText(b.at(2));

ui->lineEdit_2->setText(b.at(1));

ui->lineEdit_3->setText(b.at(0));

}

else if (b.at(1) == "/") // 判斷字符串b的第1個元素是否為"/"

{

v3 = QString(b.at(0)).toInt() / QString(b.at(2)).toInt(); // 將字符串b的第0個和第2個元素轉(zhuǎn)換為整數(shù),并進行除法運算

this->ui->lcdNumber->display(v3);

ui->lineEdit->setText(b.at(2));

ui->lineEdit_2->setText(b.at(1));

ui->lineEdit_3->setText(b.at(0));

}

// 清空a和b,同時將結(jié)果保存到a,以便后續(xù)計算

a = QString::number(v3);

b.clear();

}

else {

b.insert(0, a); // 將字符串a(chǎn)插入到字符串b的首位

a.clear(); // 清空字符串a(chǎn)

}

}

四、運行結(jié)果

完成后點擊右下角的運行,運行結(jié)果如下圖所示:

這篇拙劣的文章就到此結(jié)束了,感謝閱讀qwq

柚子快報激活碼778899分享:開發(fā)語言 Qt制作簡易計算器

http://yzkb.51969.com/

相關(guān)鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19018392.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄