QT入門

一、QT介紹
QT是基於C++的跨平臺的用戶圖形界面開發框架

二、QT的安裝

1、Linux系統下

Ubuntu下的有線安裝與卸載

ubuntu包管理工具:apt-get install qt-sdk
CentOS包管理工具:yum install XXX
卸載:
apt-get purge qt-sdk
apt-get autoremove qt-sdk
安裝:
apt-get 下載下來的包在什麼地方?
/var/cache/apt/archives
apt-get install 下載源
/etc/apt/sources.list

Ubuntu下的無線安裝與卸載
兩種方式:
1、 獲取源代碼:編譯、安裝
2、 獲取安裝包。
apt-get download qt-sdk,僅僅只能下載這一個安裝包,大多數時候並不能安裝成功,軟件本身要依賴一些其他的軟件,所以我們要下載其他的依賴包。

進入安裝包目錄,安裝:
安裝:dpkg -i *.deb
卸載:
安裝的時候要求的是後綴名.deb的安裝包,卸載的時候不能通過安裝包卸載,要找到那個程序的名字進行卸載。
一般包以下劃線 _ 進行組織包名,一般第一個代表程序名稱。
awk命令介紹:
awk以行方式處理數據,默認以空格對行數據進行分割

ll | awk '{print $8}'

我們可以用-F這個參數來指定以什麼進行分割行數據

單個字符直接跟在F的後面:ll | awk -F: '{print $2}' 
如果是字符串,則要單引號:ll | awk -F'4096' '{print $1}'
ll | awk '{print $NF}';  $NF代表最後一列

卸載:
for i in ls | awk -F_ '{print $1}'; do dpkg -P $i;done

2、windows下安裝

網址:www.qt-project.org

三、QT實例

在沒有IDE的情況下,在Linux下可以使用以下方式創建qt

1、編寫源碼main.cpp

#include <QApplication>
#include <QWidget>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);

    QWidget w;
    w.show();

    return app.exec();
}

2、生成一個工程管理文件:qmake -project
會生成一個XXX.pro文件
1、 生成Makefile文件:qmake
2、 生成可執行文件:make
如果僅僅這樣做,會出錯:怎麼解決???
在工程管理裏面加兩個庫:gui widgets;

##########################################################
# Automatically generated by qmake (3.0) ?? 4? 5 21:42:37 2017
##########################################################
TEMPLATE = app
TARGET = 01
INCLUDEPATH += .

# Input
SOURCES += main.cpp

QT += gui widgets

這句話是什麼意思呢,就是說這個QT程序要額外包含兩個庫,這兩個庫呢,一個叫gui,一個叫widgets。以前4.8的時候生成的工程文件自動將這兩個庫加進去,但是4.8以後爲了讓程序更加輕量級,有些庫就不會自動包含了,要手動包含。
只要更改工程文件Makefile文件會自動跟着變。

3、使用qmake命令生成Makefile
make以下就可以生成一個簡單的窗口。
這裏寫圖片描述

四、在qtcreator編寫QT程序
1、在終端上輸入qtcreator命令打開qtcreator。
2、創建一個空的項目。
這裏寫圖片描述
裏面只有一個工程管理文件
3、添加一個源文件main.cpp
這裏寫圖片描述
工程文件會自動生成相應內容
4、編輯源文件,修改工程文件
這裏寫圖片描述
在工程文件中添加 QT += gui widgets
這裏寫圖片描述
5、編譯運行
這裏寫圖片描述
點擊左下角三角形或者使用 Ctrl+R進行運行程序。

程序分析:

// 應用程序抽象類,抽象的是一個應用程序,表示一個應用程序
#include <QApplication>

// 窗口類,代表窗口
#include <QWidget>

int main(int argc, char **argv)
{
    // 定義了一個應用程序對象 app, app就代表當前應用程序
    QApplication app(argc, argv);

    // 定義了一個窗口對象,代表一個窗口
    QWidget w;

    // 顯示窗口
    w.show();

    // 設置窗口標題
    w.setWindowTitle("ABC");

    // app的exec裏面有一個消息循環,死循環,處理消息(事件)
    return app.exec();
}
發佈了106 篇原創文章 · 獲贊 18 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章