界面編程之QT的基本介紹與使用20180722


/*******************************************************************************************/

一、qt介紹

Qt是一個跨平台的C++圖形用戶界面應用程序框架。它也是目前流行的Linux桌面環境KDE的基礎

Qt5.3正式版,至此Qt實現了對iOS、Android、WP等各平台的全面支持

支持的平台

    Windows – XP、Vista、Win7、Win8、Win2008、Win10

    Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台

    Macintosh – Mac OS X

    Embedded – 有幀緩沖支持的嵌入式Linux平台,Windows CE

 

控件,部件,構件指的都是一個東西,只是叫法不同

信號和槽(信號的處理函數)

/*******************************************************************************************/

二、qt優點

qt最大的優點就是跨平台,(只要裝了qt),無論在win,linux,android,ios都可以運行。

 

qt的學習都是調用一些封裝好的api

查看api可以使用 qt幫助文檔

 

/*******************************************************************************************/

三、qt應用程序框架

1.創建QT項目

qt項目路徑不要有中文,項目名稱也不要有中文

剛開始 創建界面 那個不要勾選,后面需要用到ui界面設計的時候才勾選。

同時,注意:

QMainWindow pc上用的,也就是帶菜單欄的那種界面

QWidget 各種控件的基類,用的最多的

QDialog 對話框

 

編譯並運行的快捷鍵 ctrl+r

 

2.項目創建后,自動生成QApplication應用程序類的說明

//QApplication應用程序類

//Qt頭文件沒有.h

//頭文件和類名一樣,並且基本都是Q開頭,並且跟着的字母大寫

#include <QApplication>

 

int main(int argc, char *argv[])

{

    //有且只有一個應用程序類的對象

    QApplication a(argc, argv);

 

        

         //自己的具體業務代碼 begin

    //MyWidget繼承於QWidget, QWidget是一個窗口(控件)基類

    //所以MyWidget也是窗口類

    //w就是一個窗口(對象)

    MyWidget w;

 

    //窗口創建默認是隱藏,需要人為顯示,沒有show就不會顯示

    w.show();

         //自己的具體業務代碼 end

 

        

    //讓程序一直執行,等待用戶操作

    //等待事件的發生

    a.exec();

    return 0;

}

class MyWidget中:

    //Q_OBJECT //這是一個宏,信號與槽的時候需要,后面還會講,//沒有這種需要的時候可以不要,對於第一個測試程序來說就不需要了

 

/*******************************************************************************************/

四、項目文件(.pro文件)

每個應用程序都會對應一個.pro的項目文件,是自動生成的,.pro文件中:

 

#這個表示模塊,這個是頭文件需要的,也就是添加了頭文件還不夠,還要在這里添加頭文件對應的模塊。即頭文件需要從模塊中查找,因為頭文件按模塊分類了

#頭文件對應模塊的查找辦法:頭文件對應類名上按f1跳到對應的幫助文檔,找到qmake:后面對應的就是需要加的內容

#見圖1,qt具體有哪些模塊見圖2 其中Qt Webkit 是瀏覽器引擎 Qt Mulitmedia * 是多媒體,qt core qt gui是基本模塊寫不寫都一樣:

 

 

QT       += core gui

 

#高於4版本,添加 QT += widgets ,//為了兼容Qt4,如果是qt5直接QT += widgets即可,

#widgets是最核心最基本的,一般即使自己來創建個空項目(全部空的),.pro是空的,全部自己寫也要包含這個

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

        

#應用程序的名字,也是窗口左上角顯示的名字

TARGET = mike

 

#指定makefile的類型, 比如app,表示通過makefile生成一個可執行程序。如果是lib,則生成的是庫

TEMPLATE = app

 

#源文件 .cpp文件

SOURCES += main.cpp\

        mywidget.cpp

 

#頭文件 .h文件

HEADERS  += mywidget.h   

        

/*******************************************************************************************/

五、第一個qt程序

具體見《HelloQt》,這個是創建的空的項目,然后自己一步步添加的項目,具體如何創建空項目見圖3:

 

main.c文件:

 1 #include <QApplication>
 2 #include <QWidget> //窗口控件基類
 3 #include <QPushButton>
 4 
 5 int main(int argc, char **argv)
 6 {
 7     QApplication app(argc, argv);
 8 
 9     QWidget w;
10     w.setWindowTitle(QString("主要看氣質")); //設置標題
11 
12     /*如果不指定父對象,對象和對象(窗口和窗口)沒有關系,獨立
13      * a指定b為它的父對象,a放在b的上面
14      * 指定父對象,有2種方式:
15      *            1)setParent
16      *            2)通過構造函數傳參
17      * 指定父對象,只需要父對象顯示,上面的子對象自動顯示
18      */
19 
20     QPushButton b;
21     b.setText("^_^"); //給按鈕設置內容
22     b.setParent(&w); //指定父對象
23     b.move(100, 100); //移動坐標
24 
25     QPushButton b1(&w); //通過構造函數傳參
26     b1.setText("abc");
27 
28     w.show();
29 
30     app.exec();
31     return 0;
32 }
main.cpp

其中,

QWidget w;

w.setWindowTitle(QString("主要看氣質")); //設置標題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM