Qt安裝與入門


一、Qt SDK1.2安裝

准備QtSdk-offline-win-x86-v1_2_1.exe離線安裝包。

安裝QtSDK時注意不要有中文路徑,空格以及特殊字符。可以自定義選擇組件安裝,也可以默認安裝(默認安裝可能只會安裝VS2010編譯環境下的qtcreator),若想安裝mingw編譯環境(qt自帶mingw4.4版本)下的qtcreator,則需要通過自定義選擇組安裝。

二、Qt入門實例

Qt是諾基亞公司的一款開源GUI軟件框架,本身是基於C++的。運行效率非常的高,不僅可以用於手機應用程序開發,同時可以用來開放桌面應用程序。集成了眾多GUI類如QMainWindow,QWidget, QDialog等,同時也重新定義了多個STL類,如QList,QVector, QHash, QMap等。使用起來非常的方便,直接在Qt框架下幾乎不許要其他的外用庫。首先安裝Qt集成開發環境,可以直接上官網上下載。內部集成IDE: Qt Creator和Qt的庫文件以及幫助文檔。

新建一個工程test。選擇Qt Gui application。新建的工程下一般包含test.pro,mainwindow.h, mainwindow.cpp,mainwindow.ui, main.cpp。

test.pro:

QT       += core gui

TARGET = test

TEMPLATE = app

SOURCES += main.cpp\

        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

      QT += core gui 表明使用的是使用Qt的Core和gui模塊。QT將自己的庫函數分為多個模塊,最常用的是QtCore, QtGui。如果使用其他的模塊的話可以添加其他模塊。常用的有QtNetwork,QtOpenGl, QtSql, QtXml. QtWebkit等等,如果應用程序使用到該模塊,需要添加相應的模塊。

     TARGET當然是生成的應用程序或者鏈接庫的名字。

     TEMPLATE是工程的類型,一般有app和lib,app就是直接的應用程序,lib就是動態鏈接庫,一般用於插件開發

     SOURCES就是*.cpp文件列表,多行顯示的時候用\

     HEADERS是*.h文件列表

     FORMS是UI文件的列表,UI文件是Qt特有的界面設計文件(后面介紹)。

     如果不想用IDE直接生成工程,完全可以自己寫一個*.pro。

mainwindow.h:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {

    class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

private:

    Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

     該文件是類的聲明文件。符合主流的OOP的面向接口編程的思想。一般將類的定義都在此文件中。一般不再該文件中定義函數操作。注意繼承自Qt的內部文件,一定在類中加上Q_OBJECT的宏定義,Qt會使用MOC將改文件重新編譯成moc_mainwindow.cpp文件,這個才是原始的C++類的文件。所以Qt內置的類文件都不是原生態的C++類,需要Qt編譯器再處理,所以繼承子Qt的類一定要添加該宏定義,否則編譯一定通過。

     Ui::MainWindow* ui變量聲明是mainwindow.ui生成的布局類Ui::MainWindow(繼承於Ui_MainWindow類)。

mainwindow.cpp:

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

MainWindow::~MainWindow()

{

    delete ui; 

}

     是類的函數定義文件。注意#include “ui_mainwindow.h".工程中的mainwindow.ui文件會被UIC編譯生成ui_mainwindow.h文件中的類就是Ui::MainWindow(繼承於Ui_MainWindow類)。MainWindow中的ui就是用布局類初始化。之后在構造函數需要使用ui->setupUi(this);就可以將Ui::MainWindow中的布局應用到本地的MainWindow。

mainwindow.ui:

<?xml version="1.0" encoding="UTF-8"?>

<ui version="4.0">

 <class>MainWindow</class>

 <widget class="QMainWindow" name="MainWindow">

  <property name="geometry">

   <rect>

    <x>0</x>

    <y>0</y>

    <width>400</width>

    <height>300</height>

   </rect>

  </property>

  <property name="windowTitle">

   <string>MainWindow</string>

  </property>

  <widget class="QWidget" name="centralWidget"/>

  <widget class="QMenuBar" name="menuBar">

   <property name="geometry">

    <rect>

     <x>0</x>

     <y>0</y>

     <width>400</width>

     <height>27</height>

    </rect>

   </property>

  </widget>

  <widget class="QToolBar" name="mainToolBar">

   <attribute name="toolBarArea">

    <enum>TopToolBarArea</enum>

   </attribute>

   <attribute name="toolBarBreak">

    <bool>false</bool>

   </attribute>

  </widget>

  <widget class="QStatusBar" name="statusBar"/>

 </widget>

 <layoutdefault spacing="6" margin="11"/>

 <resources/>

 <connections/>

</ui>

      發現其中的內容是xml格式的標記文件,這點和主流的UI設計相符,現在主流的UI設計如Andriod和WP都是使用XML文件做UI設計,可以使用Qt SDK自帶的Qt Designer進行可視化設計,設計好的*.ui文件可以直接在工程文件中使用。主要在.pro中FORMS中添加對應的文件名,*.cpp文件中加入#include "ui_*.h"文件名。初始化之后就可以將布局建立在自己的類中。

 

 


免責聲明!

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



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