QT開發(三) 專案實戰 計算器,打包發布軟體

2021-08-18 12:52:07 字數 3880 閱讀 8889

這次我們來做乙個小案例,這個案例算是比較有特色的就是計算器了,我們採用mvc的方式來實現

效果還是比較滿意的

實際上算了一下 大小然後再ui中可以設定指定的大小,就不會變形了,因為我們這個也不是主window,而是乙個dialog

我們先來說下我們使用的mvc架構,實際上,我們預設的ui檔案,他就是view,也就是我們所說的介面,那麼預設建立的ui原始檔,就是c了也就是控制類,而m呢,就需要我們自己去實現以下了,也就是model類,實現一些基本的計算方法

我們這裡首先考慮的是控制項,因為我們只是乙個小視窗,所以這裡我選擇了qdialog

然後我們建立乙個calculatormodel的c++類來處理邏輯

#ifndef calculatormodel_h

#define calculatormodel_h

#include

//公開的運算的方法: num1 + num2

class

calculatormodel

;#endif // calculatormodel_h

你可以看到,這個類實際上並沒有做什麼過多的操作,只是定義了三個變數分別是num1和num2的數字以及qstring的結果並且宣告了4個公開的方法,而在我們對應的源**中

#include

"calculatormodel.h"

calculatormodel::calculatormodel()

//設定屬性引數

void calculatormodel::setnum1(int num)

void calculatormodel::setnum2(int num)

void calculatormodel::setflag(qstring flag)

qstring calculatormodel::docalculator()

else

if(this->flag ==

"-")

else

if(this->flag ==

"*")

else

if(this->flag ==

"/")

result = this->num1 / this->num2;

}else

return qstring::number(result);

}

這裡建構函式中先初始化了num1和2,然後對應的set方法中賦值即可,主要還是docalculator這個計算的方法,在這裡我們定義了乙個中間變數relust並且判斷了運算方法來獲取結果,這裡考慮了幾個邏輯

這裡用到了int轉string,使用的是qstring的靜態函式number

好,這是model類,回過頭來看我們的控制類,首先來看下我們的view是什麼樣的

好的,那麼我們的控制類應該怎麼去寫呢?

先看下我們的標頭檔案:

#ifndef calculatorview_h

#define calculatorview_h

#include

#include "calculatormodel.h"

#include

namespace ui

class calculatorview : public qdialog

;#endif // calculatorview_h

標頭檔案一般沒有多少**,我們在這裡做了幾件事情

所以,重點放在了原始檔

#include "calculatorview.h"

#include "ui_calculatorview.h"

/* 專案:計算器

寬:380 高:680

按鈕: 80x100

間隙: 20

*/calculatorview::calculatorview(qwidget *parent) : qdialog(parent),ui(new ui::calculatorview)

calculatorview::~calculatorview()

//0void calculatorview::on_btn_num_0_clicked()

}//1

void calculatorview::on_btn_num_1_clicked()

//2void calculatorview::on_btn_num_2_clicked()

//3void calculatorview::on_btn_num_3_clicked()

//4void calculatorview::on_btn_num_4_clicked()

//5void calculatorview::on_btn_num_5_clicked()

//6void calculatorview::on_btn_num_6_clicked()

//7void calculatorview::on_btn_num_7_clicked()

//8void calculatorview::on_btn_num_8_clicked()

//9void calculatorview::on_btn_num_9_clicked()

//=void calculatorview::on_btn_num_eq_clicked()

//cvoid calculatorview::on_btn_num_c_clicked()

//+void calculatorview::on_btn_num_add_clicked()

else

this-> temp = "";

}//-

void calculatorview::on_btn_num_sub_clicked()

else

this-> temp = "";

}//*

void calculatorview::on_btn_num_take_clicked()

else

this-> temp = "";

}// /

void calculatorview::on_btn_num_div_clicked()

else

this-> temp = "";

}

可以看到這裡的**就有點多了,我們就需要一點點的來分析

d.使用完temp後重置作為num2使用

e.這裡使用了string轉int使用的是toint函式

-6.等於會獲取當前的數字作為num2並且計算後顯示出來,重置中間變數

好了,來感受一下執行的效果吧:

好的,如果你心情美美的寫了乙個計算器,想給朋友看一下,那麼你會怎麼做?

qt的安裝目錄下各個bin目錄放入系統path變數路徑下就好了,那麼我們開始打包了

如果你沒有配置環境變數,那麼只能在qt 5.6 for desktop (mingw 4.9.2 32 bit)這個gui裡操作了,如果你配置了,那就可以在終端操作了

直接進入上面的build目錄下執行命令:windeployqt xx.exe

然後….

這樣,這個release資料夾,你就可以發給你的朋友了,裡面就包含了執行所需要的dll檔案。

Cocos2d x實戰專案開發 加法計算器

其實完成加法計算器很簡單,大概分成三個步驟 1.設計介面 2.使用者互動 3.計算結果 helloworld.h ifndef helloworld scene h define helloworld scene h include cocos2d.h class helloworld public...

第8周專案定期存款利息計算器

檔名稱 project5 完成日期 2014年10月20鈤 版本號 v1.0 問題描述 輸入存款金額,計算並求出利息 不計利息稅 和本息合計。輸入描述 輸入乙個數,代表存款金額,再次輸入乙個數,代表年份的 程式輸出 輸出利息並輸出本息合計 include using namespace std in...

第八周專案五 定期存款利息計算器

問題及 檔名稱 test.cpp 完成日期 2014年10月16日 版本號 v1.0 問題描述 輸入存款金額並選擇存款種類,計算出利息和本息合計。輸入描述 存款金額 程式輸出 利息和本息合計 include using namespace std int main m m x cout 執行結果 知...