色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

Hi,歡迎來(lái)到嵌入式培訓(xùn)高端品牌 - 華清遠(yuǎn)見教育科技集團(tuán)<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當(dāng)前位置: > 華清遠(yuǎn)見教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > 用兩種方法教你從零創(chuàng)建Qt對(duì)話框程序
用兩種方法教你從零創(chuàng)建Qt對(duì)話框程序
時(shí)間:2017-01-04作者:華清遠(yuǎn)見

本文用兩種方法從零教您實(shí)現(xiàn)〈C++ GUI Qt4 編程(第二版)〉上的一個(gè)經(jīng)典案例。

第一種方法是使用Qt Creator來(lái)設(shè)計(jì)對(duì)話框的外觀,然后手工寫代碼,實(shí)現(xiàn)功能。此方法,對(duì)于初學(xué)者來(lái)說(shuō),能夠很好的理解Qt程序的基本原理,為深入學(xué)習(xí)Qt打下一個(gè)很好的基礎(chǔ)。

第二種方法是完全借助于Qt Creator完成程序。此方法,對(duì)于初學(xué)者來(lái)說(shuō),能夠快速的完成一個(gè)對(duì)話框程序,從而激發(fā)出學(xué)者才興趣。

一、 Qt Creator僅用來(lái)設(shè)計(jì)Form外觀

1) 創(chuàng)建窗體

FileànewàQt Designer FormàWidget 
        選擇路徑 
        命名為gotocelldialog.ui

2) 創(chuàng)建子窗口部件

文本標(biāo)簽:objectName的屬性是”label”,text的屬性是”&Cell Location”
        行編輯器:objectName—lineEdit 
        按鈕: objectName—okButton, enabled—false, text—OK, default—true
        按鈕: objectName—cancelButton, text—Cancel, 
        選中窗體: objectName—GoToCellDialog, windowTitle—Go to Cell
        插入分隔符 
        EditàEdit Buddies,單擊標(biāo)簽并把紅色箭頭拖到行編輯器中

3) 擺放窗體部件

選擇label和lineEdit ,單擊FormàLay Out Horizontally
        選擇分隔符、OK按鈕和Cancel按鈕,單擊FormàLay Out Out Horizontally
        單擊窗體中空白處,取消對(duì)所有已選中項(xiàng)的選擇,單擊FormàLay Out Vertically
        單擊FormàAdjust Size, 重新把窗體的大小定義為佳形式

4) 設(shè)置Tab鍵順序

可以按照你所希望的接受焦點(diǎn)的順序,單擊每一個(gè)窗口部件,然后點(diǎn)擊Edt-->Edit Widgets,離開Tab鍵順序設(shè)置模式。

5) 在同一目錄下創(chuàng)建main.cpp,內(nèi)容如下:

QApplication app(argc, argv);
        Ui::GoToCellDialog ui;
        QDialog *dialog = new QDialog;
        ui.setupUi(dialog);
        dialog->show();
        return app.exec();

6) 用命令行的方式,執(zhí)行qmake命令,將生成pro文件和Makefile文件

qmake -project -o gotocelldialog.pro

7) 為對(duì)話框添加功能

創(chuàng)建一個(gè)新類,使其同時(shí)從Qdialog和Ui::GoToCellDialog中繼承,命名慣例是:將該類與uic所生成的類具有相同的名字,只是沒有Ui::前綴而已。

創(chuàng)建gotocelldialog.h文件
        #ifndef GOTOCELLDIALOG_H
        #define GOTOCELLDIALOG_H 
        #include <QDialog>
        #include "ui_gotocelldialog.h"
        class GoToCellDialog : public QDialog, public Ui::GoToCellDialog 
        {
                Q_OBJECT
        public:
                GoToCellDialog(QWidget *parent = 0);
        private slots:
                void on_lineEdit_textChanged();
        };
        #endif

創(chuàng)建gotocelldialog.cpp文件 
        include <QtGui>
        #include "gotocelldialog.h”
        GoToCellDialog::GoToCellDialog(QWidget *parent) : QDialog(parent)
        {
                setupUi(this);
                QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
                lineEdit->setValidator(new QRegExpValidator(regExp, this));
                connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
                connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
        }
        void GoToCellDialog::on_lineEdit_textChanged()
        {
                okButton->setEnabled(lineEdit->hasAcceptableInput());
        }

8) 重寫main.cpp

QApplication app(argc, argv);
        GoToCellDialog *dialog = new GoToCellDialog;
        dialog->show();
        return app.exec();

9) 運(yùn)行程序 
        ctrl+r
        或者 
        qmake –project –o gotocelldialog.pro
        qmake 
        ./gotocelldialog

二、直接用Qt Creator 創(chuàng)建Gui工程

1) 建立GUI工程

●    File-->new-->Qt4 Gui Application
        ●   選擇路徑 
        ●   命名為gotocelldialog.pro
        ●    選擇基類Qdialog, 類名GoToCellDialog,

2)3)4)步驟同前

5) 修改gotocelldialog.cpp中的構(gòu)造函數(shù)GoToCellDialog

ui->lineEdit->setValidator(new QRegExpValidator(regExp, this));
        connect(ui->okButton, SIGNAL(clicked()), this, SLOT(accept()));
        connect(ui->cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
        備注:此時(shí)訪問部件,需要通過指針ui。

6) 修改gotocelldialog.h,在類中加入自定義的槽函數(shù)原型

private slots:
        void on_lineEdit_textChanged()

7) 在gotocelldialog.cpp中加入實(shí)現(xiàn)

void GoToCellDialog::on_lineEdit_textChanged()
        { 
                ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());
        }

備注:本文的部分內(nèi)容參考了〈C++ GUI Qt4 編程(第二版)〉,特此聲明,并表示感謝。

發(fā)表評(píng)論
評(píng)論列表(網(wǎng)友評(píng)論僅供網(wǎng)友表達(dá)個(gè)人看法,并不表明本站同意其觀點(diǎn)或證實(shí)其描述)
主站蜘蛛池模板: 男女性高爱潮免费网站 | 亚洲色成人WWW永久网站 | 一本大道东京热无码一区 | 亚洲中文字幕精品久久久久久动漫 | 性生大片免费观看高清视频 | 精品国产青草久久久久福利 | 波多野AV一区二区无码 | 中文字幕热久久久久久久 | 无套内谢少妇毛片A片 | 另类zoofilia杂交videos | 最近免费中文字幕MV在线视频1 | 久久久亚洲欧洲日产国码是AV | 欧美性x x x 国产一区二区四区在线观看 | 三年片免费观看影视大全视频 | 免费无码又黄又爽又刺激 | 456亚洲 | 三级女的在洗澡三级 | 天天躁日日躁狠狠躁超碰97 | 无码国产一区二区三区四区 | 亚洲爆乳精品无码一区二区三区 | 欧美日韩国产一区二区三区在线观看 | 八戒理论片午影院无码爱恋 | 亚洲精品久久久久久蜜臀 | 手机看片久久久 | 小Sao货撅起屁股扒开c打视频 | 精品欧美一区二区精品久久小说 | 真实国产乱子伦精品一区二区三区 | 四虎国产精品免费久久久 | 日产国产精品亚洲系列 | 国产精品欧美亚洲777777 | 成年人在线免费看的惊悚动作片 | 97色伦午夜国产亚洲精品 | 手机在线看黄色 | 人人妻人人澡人人爽欧美精品 | 精品久久久久久无码不卡 | 国产精品女人呻吟在线观看 | 少妇高潮灌满白浆毛片免费看 | 亚洲AV成人一区二区三区观看在线 | 中文字幕亚洲综合小综合 | 少妇精油按摩AV无码中字 | 粉嫩无套白浆第一次 |