欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 成果UI界面預(yù)覽

2. 功能簡介

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

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

(3)語音播報(bào):實(shí)時(shí)播報(bào)輸入的按鍵。

3. 實(shí)現(xiàn)步驟

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

2. 自由設(shè)計(jì)ui界面

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

按鈕的樣式表

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

QPushButton
{
	background-color: rgb(255, 170, 0);
	color: rgb(255, 255, 255);
     border-radius:10px;       /*邊框角弧度:0~最小邊/2  px;*/
}
/*鼠標(biāo)懸停樣式:偽狀態(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. 完成各個(gè)按鍵的槽函數(shù)

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

(1)語音播報(bào)功能的實(shí)現(xiàn)

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

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

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

void Widget::on_btnNum_1_clicked()
{
    speaker.say("1");                            //語言播報(bào)
    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");                           //語言播報(bào)
    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)運(yùn)算符按鈕

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

void Widget::on_btnOpe_point_clicked()
{
    speaker.say("點(diǎn)");
    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();    //獲取用戶輸入的運(yùn)算表達(dá)式
    ui->lineEdit_result->setText(data);          //將表達(dá)式備份到另一個(gè)行編輯器
    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("刪除");
    // 獲取當(dāng)前文本框內(nèi)容
    QString currentText = ui->lineEdit_show->text();
    if (!currentText.isEmpty())
    {
        // 刪除最后一個(gè)字符
        currentText.chop(1);
        // 更新文本框內(nèi)容
        ui->lineEdit_show->setText(currentText);
    }
}

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

4. 總結(jié)

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

2. 想了解更多QT項(xiàng)目的同學(xué)歡迎瀏覽主頁相關(guān)文章!

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

相關(guān)文章

  • 一文搞懂Codec2解碼組件

    一文搞懂Codec2解碼組件

    這篇文章主要介紹了Codec2解碼組件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • C語言聯(lián)合體的實(shí)現(xiàn)示例

    C語言聯(lián)合體的實(shí)現(xiàn)示例

    C語言聯(lián)合體是一種特殊的數(shù)據(jù)結(jié)構(gòu),它允許在相同的內(nèi)存位置存儲(chǔ)不同的數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 淺談C++內(nèi)存管理基礎(chǔ)知識(shí)

    淺談C++內(nèi)存管理基礎(chǔ)知識(shí)

    這篇文章主要為大家介紹了C++的內(nèi)存管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 數(shù)據(jù)結(jié)構(gòu)順序表操作示例

    數(shù)據(jù)結(jié)構(gòu)順序表操作示例

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)順序表操作示例,其中有在第I個(gè)元素前插入數(shù)據(jù)x,元素從0開始計(jì)數(shù)、刪除第i個(gè)元素,元素從0開始計(jì)數(shù)的方法,需要的朋友可以參考下
    2014-03-03
  • Qt5.9程序打包發(fā)布的實(shí)現(xiàn)

    Qt5.9程序打包發(fā)布的實(shí)現(xiàn)

    本文主要介紹了Qt5.9程序打包發(fā)布的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Linux下用Valgrind做檢查(防止內(nèi)存泄露)

    Linux下用Valgrind做檢查(防止內(nèi)存泄露)

    Valgrind是一款基于模擬linux下的程序調(diào)試器和剖析器的軟件套件,可以運(yùn)行于x86, amd64和ppc32架構(gòu)上。valgrind包含一個(gè)核心,它提供一個(gè)虛擬的CPU運(yùn)行程序,還有一系列的工具,它們完成調(diào)試,剖析和一些類似的任務(wù)
    2014-01-01
  • C++類成員函數(shù)后面加const問題

    C++類成員函數(shù)后面加const問題

    這篇文章主要介紹了C++類成員函數(shù)后面加const問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言動(dòng)態(tài)內(nèi)存分配的詳解

    C語言動(dòng)態(tài)內(nèi)存分配的詳解

    這篇文章主要介紹了C語言動(dòng)態(tài)內(nèi)存分配的詳解的相關(guān)資料,這里提供了實(shí)現(xiàn)方法整理和出現(xiàn)錯(cuò)誤的解決辦法,需要的朋友可以參考下
    2017-07-07
  • Qt下調(diào)用vlc庫實(shí)現(xiàn)RTSP拉流播放和截圖過程詳解

    Qt下調(diào)用vlc庫實(shí)現(xiàn)RTSP拉流播放和截圖過程詳解

    這篇文章主要為大家介紹了Qt下調(diào)用vlc庫實(shí)現(xiàn)RTSP拉流播放和截圖過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C語言數(shù)據(jù)結(jié)構(gòu)中定位函數(shù)Index的使用方法

    C語言數(shù)據(jù)結(jié)構(gòu)中定位函數(shù)Index的使用方法

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)中定位函數(shù)Index的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10

最新評(píng)論