色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í)其描述)
主站蜘蛛池模板: 久久w5ww成w人免费 | 咪咪久久 | 国产精品亚洲日韩欧美色窝窝色欲 | 天天操夜夜操 | 69精产国品一二三产品价格 | 亚洲国产精品无码7777一线 | 奇米手机在线视频 | 中文字字幕在线一本通 | 综合激情五月丁香久久 | 被老师粗大jib捣出了白浆视频 | 国产一区二区三区四区精华 | 国产重口老太和小伙乱 | 亚洲精品一区av在线播放 | H精品动漫在线无码播放 | 丰满气质白嫩少妇呻吟高潮 | 毛片在线播放网址 | 韩国动漫AV纯肉无码AV在线播放 | 日本午夜免费无码片三汲大片 | 日本高清免费在线观看 | 息与子五十路中文字幕 | 中国美女a级毛片 | AV无码人妻一区二区三区牛牛 | 亚洲av日韩av无码尤物 | 四虎精品国产永久在线观看 | 无码人妻精品中文字幕免费 | 特级做a爰片毛片免费看无码 | 国精产品一区二区三区有限公司 | 久久久久久精品无码人妻 | 国产AV国片偷人妻麻豆郑州公司 | 在教室伦流澡到高潮H强圩动漫 | 青青青欧美视频在线观看 | com久久 | 天堂资源中文最新版在线一区 | 看久久久久久A级毛片 | 亚洲av 无码片一区二区三区 | 日本免费人成视频播放 | 777yyy亚洲精品一区二区 | 久产久人精午夜精国 | 欧美性xxxx狂欢老少配 | 亚洲人成网站在线播放vr | 亚洲精品无码成人a片九色播放 |