欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    背景

    前面一節(jié)介紹了用Qt 設(shè)計計算器的界面,這節(jié)將總結(jié)一下如何讓界面可以運(yùn)行,如何設(shè)計計算器的功能部分。將從以下幾方面講述,計算器的文本編輯控件,可以發(fā)射字符的按鈕,以及負(fù)責(zé)處理計算和創(chuàng)建UI的計算器類。項目基于語言設(shè)計計算器,文件結(jié)構(gòu)如下。這里的結(jié)構(gòu)目錄只是一個虛擬的目錄,實(shí)際每個文件存放的位置需要自己規(guī)劃。

    Ui文件編譯

    .ui是之前設(shè)計的界面,程序運(yùn)行前ui會被編譯為.h。編譯的路徑和編譯后頭文件的名稱可以在項目屬性頁面Qt User 配置,如下。當(dāng)然ui頭文件也可以自己寫,不用Qt ,但這樣有點(diǎn)麻煩。

    計算器文本編輯控件 .h

    上一節(jié)已經(jīng)在界面中引用了類,這個類需要有一些特定的信號與槽函數(shù)。具體功能應(yīng)該有接受并顯示按鈕的字符,后退按鈕,清除按鈕,開始執(zhí)行計算按鈕。還需要發(fā)送用戶輸入到計算器類來完成計算,隨后接受并顯示結(jié)果。完成頭文件時,需要注意文件名,類名,信號槽函數(shù)名稱與界面設(shè)計時的名稱一致。類繼承自,如果對象構(gòu)造函數(shù)接收到了一個父控件,這個對象會自動在適當(dāng)?shù)臅r候被析構(gòu),大家可以去官網(wǎng)學(xué)習(xí)下Qt的自動內(nèi)存管理。這里沒有分配內(nèi)存c語言制作簡單計算器,所以不用寫析構(gòu)函數(shù),使用默認(rèn)析構(gòu)即可。這個聲明是個宏定義,有了這個聲明c語言設(shè)計計算器,這個類就可以使用/slot。

    #

        #define CALCULATORTEXT_H
        
        #include 
        
        class calculatortext : public QTextEdit {
            Q_OBJECT;
        public:
            calculatortext(QWidget* parent);
        public slots:
            void input(char);
            void showresult(QString);
            void back();
            void cleartext();
            void equal();
        signals:
            void sendtext(QString);
        private:
    

    c語言圖書管理系統(tǒng)簡單_c語言簡單小程序_c語言制作簡單計算器

    QString inputtext; QString resulttext; QVector checkstack; }; #endif //CALCULATORTEXT_H

    復(fù)制

    這是cpp文件,函數(shù)寫的有些笨重,大家如果有更好的方法可以替換掉。equal()槽函數(shù)發(fā)射了一個信號,這個信號將送往計算器類來處理。

    # ".h"

        calculatortext::calculatortext(QWidget* parent) :
            QTextEdit(parent) 
        {
            
        }
        void calculatortext::input(char symbol) {
            inputtext += symbol;
            setFontPointSize(22);
            setTextColor(QColor(0, 0, 255));
            setText(inputtext + '\n' + resulttext);
            //setFontPointSize(22);
            //setTextColor(QColor(0,0,255));
        }
        void calculatortext::showresult(QString result) {
    

    c語言簡單小程序_c語言制作簡單計算器_c語言圖書管理系統(tǒng)簡單

    resulttext = result; setText(inputtext + '\n' + resulttext); setFontPointSize(22); setTextColor(QColor(0, 0, 255)); } void calculatortext::back() { inputtext = inputtext.remove(inputtext.size() - 1, 1); setText(inputtext + '\n' + resulttext); setFontPointSize(22); setTextColor(QColor(0, 0, 255)); } void calculatortext::cleartext() { inputtext.clear(); resulttext.clear(); setText(QString("0\n0")); setFontPointSize(22); setTextColor(QColor(0, 0, 255)); } void calculatortext::equal() { emit sendtext(inputtext);

    復(fù)制

    可以發(fā)射字符的計算器按鈕 .h

    c語言簡單小程序_c語言制作簡單計算器_c語言圖書管理系統(tǒng)簡單

    按鈕的功能就很簡單了,只需要按下時發(fā)射一個字符。把的()信號換綁為新的可以發(fā)射字符的信號即可。

    #

        #define CALCULATORBUTTON_H
        #include 
        class calculatorbutton : public QPushButton {
            Q_OBJECT;
        public:
            calculatorbutton(QWidget* parent);
        public slots:
            void sendchar();
        signals:
            void click(char);
        };

    復(fù)制

    cpp文件中需要定義一下構(gòu)造函數(shù)c語言制作簡單計算器,因?yàn)橐獙⒌?)與()綁定。按鈕的中的信號click(char)在界面設(shè)計時,已經(jīng)綁定到了文本框的相應(yīng)槽函數(shù)。

    # ".h"

        calculatorbutton::calculatorbutton(QWidget* parent) :QPushButton(parent) {
            connect(this, SIGNAL(clicked()), this, SLOT(sendchar()));
        }
        void calculatorbutton::sendchar() {
            char res = this->text().at(0).toLatin1();
            emit click(res);

    c語言制作簡單計算器_c語言簡單小程序_c語言圖書管理系統(tǒng)簡單

    復(fù)制

    負(fù)責(zé)運(yùn)算和現(xiàn)實(shí)ui的計算器類 .h

    計算器類繼承自,構(gòu)造函數(shù)將會渲染設(shè)計好的ui。只要定義下計算用戶數(shù)據(jù)的函數(shù),以及發(fā)射結(jié)果的信號即可。

    #

        #define CALCULATOR_H
        #include 
        #include "ui_calculatorui.h"
        class Calculator : public QMainWindow {
            Q_OBJECT;
        public:
            Calculator(QWidget* parent = nullptr);
        public slots:
            void calculate(QString);
        signals:
            void sendresult(QString);
        private:
            QString inputtext;
            QString resulttext;
            QVector checkstack;
            Ui::MainWindow ui;

    復(fù)制

    這里比較關(guān)鍵的點(diǎn)就是程序如何去調(diào)用和渲染UI。頭文件引用了編譯好的ui文件,隨后在私有變量定義了ui類Ui:: ui。在cpp文件中定義構(gòu)造函數(shù)時,只需要執(zhí)行Ui::的setup函數(shù)即可。隨后綁定一下和顯示器的信號和槽函數(shù),方法如下。函數(shù)受限于時間問題,這里沒有寫。

    c語言圖書管理系統(tǒng)簡單_c語言制作簡單計算器_c語言簡單小程序

    # ".h"

        Calculator::Calculator(QWidget* parent) :QMainWindow(parent) {
            ui.setupUi(this);
            calculatortext* textedit = this->findChild("textEdit");
            connect(this, SIGNAL(sendresult(QString)), textedit, SLOT(showresult(QString)));
            connect(textedit, SIGNAL(sendtext(QString)), this, SLOT(calculate(QString)));
        }
        void Calculator::calculate(QString) {
            emit sendresult(QString("success!"));

    復(fù)制

    主程序

    主程序如下,每一個qt程序的主程序應(yīng)該都類似。

    # ".h"

        #include 
        int main(int argc, char* argv[]) {
            QApplication app(argc, argv);
            Calculator w;
            w.show();
            return app.exec();

    復(fù)制

    至此,小程序已經(jīng)可以運(yùn)行。

    編譯前遇到了無法解析的外部引用,后來發(fā)現(xiàn)模塊沒有導(dǎo)入,如下。

    總結(jié)

    本節(jié)介紹了如何去實(shí)現(xiàn)自定義的控件,核心運(yùn)行的計算器類以及不同對象之間利用信號與槽函數(shù)進(jìn)行通訊,體會了如何組織和構(gòu)建一個qt程序。其中我們不關(guān)注算法如何實(shí)現(xiàn),只關(guān)注如何使這些代碼組織起來,協(xié)調(diào)運(yùn)行。至于如何處理用戶的輸入,隨后有時間更新。

    本文共 931 個字?jǐn)?shù),平均閱讀時長 ≈ 3分鐘

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有