最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QT計算器的功能實現(xiàn)步驟記錄

 更新時間:2025年11月11日 08:24:37   作者:_Aaa小貓香菜批發(fā)  
使用Qt制作一個簡單的計算器應用是一個很好的項目,可以幫助你熟悉Qt框架的圖形用戶界面(GUI)設計以及基本的事件處理機制,這篇文章主要介紹了QT計算器功能實現(xiàn)的相關資料,需要的朋友可以參考下

1. 成果UI界面預覽

2. 功能簡介

(1)數(shù)字的加減乘除模運算;

(2)對已輸入的數(shù)字按位刪除功能,一鍵清除功能;

(3)語音播報:實時播報輸入的按鍵。

3. 實現(xiàn)步驟

1. 創(chuàng)建一個帶ui文件的Widget項目

2. 自由設計ui界面

需用到若干按鈕(pushButton)和兩個行編輯器(lineEdit)

按鈕的樣式表

設置樣式表:選中按鈕 -> 右鍵 -> 改變樣式表 -> 輸入代碼(提供按鈕樣式表代碼如下以供參考)

QPushButton
{
	background-color: rgb(255, 170, 0);
	color: rgb(255, 255, 255);
     border-radius:10px;       /*邊框角弧度:0~最小邊/2  px;*/
}
/*鼠標懸停樣式:偽狀態(tài)選擇*/
QPushButton:hover
{
	font: 700 9pt "Microsoft YaHei UI";
	background-color: rgb(46, 46, 46);
	color: rgb(255, 255, 255);
    border-radius:10px;       /*邊框角弧度:0~最小邊/2  px;*/
}

3. 完成各個按鍵的槽函數(shù)

生成槽函數(shù)步驟:選中按鈕 -> 右鍵 -> 轉到槽

(1)語音播報功能的實現(xiàn)

添加頭文件 #include <QtTextToSpeech>  ->  定義私有成員變量 QTextToSpeech speaker; -> 在按鈕槽函數(shù)中使用(在下方的槽函數(shù)中實現(xiàn))

(2)0-9數(shù)字按鈕

以數(shù)字按鈕1、2為例,槽函數(shù)以及代碼實現(xiàn)如下(其他數(shù)字按鈕槽函數(shù)實現(xiàn)方式相同,只需更換按鈕名字)

void Widget::on_btnNum_1_clicked()
{
    speaker.say("1");                            //語言播報
    if(ui->lineEdit_show->text() == "0")         //避免出現(xiàn)0開頭的數(shù)字
        ui->lineEdit_show->setText(ui->btnNum_1->text());
    else
        ui->lineEdit_show->setText(ui->lineEdit_show->text() + ui->btnNum_1->text());
}

void Widget::on_btnNum_2_clicked()
{
    speaker.say("2");                           //語言播報
    if(ui->lineEdit_show->text() == "0")        //避免出現(xiàn)0開頭的數(shù)字
        ui->lineEdit_show->setText(ui->btnNum_2->text());
    else
        ui->lineEdit_show->setText(ui->lineEdit_show->text() + ui->btnNum_2->text());
}

(3)運算符按鈕

以數(shù)字按鈕 “ 點 ”、“ 加 ”運算符為例,槽函數(shù)以及代碼實現(xiàn)如下(其他運算符按鈕槽函數(shù)實現(xiàn)方式相同,只需更換按鈕名字)

void Widget::on_btnOpe_point_clicked()
{
    speaker.say("點");
    if (ui->lineEdit_show->text().isEmpty())
    { return; }
    ui->lineEdit_show->setText(ui->lineEdit_show->text() + ui->btnOpe_point->text());
}

void Widget::on_btnOpe_add_clicked()
{
    speaker.say("加");
    if (ui->lineEdit_show->text().isEmpty())
    { return; }
    ui->lineEdit_show->setText(ui->lineEdit_show->text() + ui->btnOpe_add->text());
}

(4)等于按鈕

void Widget::on_btnOpe_equal_clicked()
{
    speaker.say("等于");
    QString data = ui->lineEdit_show->text();    //獲取用戶輸入的運算表達式
    ui->lineEdit_result->setText(data);          //將表達式備份到另一個行編輯器
    float res = 0, a, b;
    if(data.contains("%"))
    {
        QStringList lst = data.split("%");
        a = lst[0].toFloat();
        b = lst[1].toFloat();
        res = int(a) % int (b);
    }
    if(data.contains("+"))
    {
        a = data.split("+")[0].toFloat();
        b = data.split("+")[1].toFloat();
        res = a + b;
    }
    if(data.contains("-"))
    {
        a = data.split("-")[0].toFloat();
        b = data.split("-")[1].toFloat();
        res = a - b;
    }
    if(data.contains("×"))
    {
        a = data.split("×")[0].toFloat();
        b = data.split("×")[1].toFloat();
        res = a * b;
    }
    if(data.contains("÷"))
    {
        a = data.split("÷")[0].toFloat();
        b = data.split("÷")[1].toFloat();
        res = a / b;
    }

    ui->lineEdit_show->setText(QString("%1").arg(res));        //%1為占位符
}

(5)按位刪除、清空按鈕

void Widget::on_btnOpe_del_clicked()
{
    speaker.say("刪除");
    // 獲取當前文本框內(nèi)容
    QString currentText = ui->lineEdit_show->text();
    if (!currentText.isEmpty())
    {
        // 刪除最后一個字符
        currentText.chop(1);
        // 更新文本框內(nèi)容
        ui->lineEdit_show->setText(currentText);
    }
}

void Widget::on_btnClear_clicked()
{
    speaker.say("清空");
    ui->lineEdit_show->clear();
}

4. 總結

1. 計算器是很適合QT入門的練手小項目,用到的部件只有按鈕和行編輯器,組成較為簡單,適合入門理解、熟悉QT的編程框架。

2. 想了解更多QT項目的同學歡迎瀏覽主頁相關文章!

到此這篇關于QT計算器功能實現(xiàn)步驟的文章就介紹到這了,更多相關QT計算器功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C/C++深入講解內(nèi)存管理

    C/C++深入講解內(nèi)存管理

    本章主要介紹C語言與C++的內(nèi)存管理,以C++的內(nèi)存分布作為引入,介紹C++不同于C語言的內(nèi)存管理方式(new?delete對比?malloc?free),感興趣的朋友來看看吧
    2022-05-05
  • opencv實現(xiàn)定時錄像功能

    opencv實現(xiàn)定時錄像功能

    這篇文章主要為大家詳細介紹了opencv實現(xiàn)定時錄像功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C++中純虛函數(shù)的實例詳解

    C++中純虛函數(shù)的實例詳解

    純虛函數(shù)就是一個在基類中的虛函數(shù),差別只是在一般的虛函數(shù)聲明的后面加了“=0”,下面這篇文章主要給大家介紹了關于C++中純虛函數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • EasyC++單獨編譯

    EasyC++單獨編譯

    這篇文章主要介紹了EasyC++單獨編譯,在上一篇當中,我們編寫好了頭文件coordin.h,現(xiàn)在我們要完成它的實現(xiàn)。需要的小伙伴可以先學習上一篇內(nèi)容然后一起與小編一起進入本篇內(nèi)容一起學習吧
    2021-12-12
  • c++ typeid關鍵字的使用

    c++ typeid關鍵字的使用

    這篇文章主要介紹了c++ typeid關鍵字的使用,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-11-11
  • C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    這篇文章主要給大家介紹了關于C語言中楊氏矩陣與楊輝三角的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • 老程序員教你一天時間完成C++俄羅斯方塊游戲

    老程序員教你一天時間完成C++俄羅斯方塊游戲

    俄羅斯方塊游戲大家應該非常熟悉,非常經(jīng)典的一款游戲,本文來詳細講解下俄羅斯方塊游戲的制作過程,趕緊來看下吧!希望能給你帶來幫助
    2021-08-08
  • C++ Primer Plus詳解

    C++ Primer Plus詳解

    這篇文章主要為大家詳細介紹了C++ Primer Plus,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言實現(xiàn)冒泡排序的思路以及過程

    C語言實現(xiàn)冒泡排序的思路以及過程

    冒泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學者一定要掌握。本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值
    2021-09-09
  • C語言中關于樹和二叉樹的相關概念

    C語言中關于樹和二叉樹的相關概念

    這篇文章主要介紹了Java?數(shù)據(jù)結構之樹和二叉樹相關資料,文中通過示例代碼和一些相關題目來做介紹,非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02

最新評論

岳阳县| 勐海县| 柳河县| 呈贡县| 托克托县| 礼泉县| 兴国县| 思南县| 红桥区| 临城县| 五寨县| 五指山市| 定远县| 石楼县| 新化县| 宜城市| 八宿县| 安仁县| 三河市| 峡江县| 永济市| 黄冈市| 宜兴市| 庆元县| 舒城县| 潼南县| 宜春市| 全南县| 会泽县| 黄大仙区| 洞口县| 宾阳县| 祥云县| 太白县| 洪湖市| 遂平县| 棋牌| 桐庐县| 青州市| 汉川市| 马鞍山市|