Qt Creator 入門

    Qt 的入門我以爲能夠直接從窗口開始,而不是什麼「Hello World!」。由於Qt 是一個基於圖形界面的編程軟件,圖形界面編程是其核心所在。好久之前,那時候仍是Shell編程,操做的只是文本,如今能夠操做圖形界面,那麼第一個「Hello」圖形界面就是可以顯示窗口並經過按鈕將其關閉。編程

    1 建立項目:New Project函數

    2 選擇模板:應用程序>>Qt Widgets Application>>選擇字體

    3 項目位置:設置項目名稱>>選擇項目位置>>下一步ui

    4 構建套件:直接下一步this

    5 詳情:在基類中有三種類型。很顯然MainWindow是最大的一個,那麼無論什麼程序,直接選擇MainWindow就行了,不必在用什麼Widget 或者 Dialog當基類。spa

    6 彙總:單擊完成設計

    這樣就建立了一個名爲 Sample_Hello_World 的項目了。項目建立好了以後,軟件會自動生成必要的一些代碼。3d

    在左側的項目列表中有四個文件:mainwindow.h/main.cpp/mainwindow.cpp/mainwindow.uicode

    mainwindow.h內容以下:對象

 1 #ifndef MAINWINDOW_H
 2 #define MAINWINDOW_H
 3 
 4 #include <QMainWindow>
 5 
 6 namespace Ui {
 7 class MainWindow;
 8 }
 9 
10 class MainWindow : public QMainWindow
11 {
12     Q_OBJECT
13 
14 public:
15     explicit MainWindow(QWidget *parent = 0);
16     ~MainWindow();
17 
18 private:
19     Ui::MainWindow *ui;
20 };
21 
22 #endif // MAINWINDOW_H

    使用時須要在public和private中間添加provate slots類成員函數:

1 private slots:
2     // ...

    main.cpp內容以下:

 1 #include "mainwindow.h"
 2 #include <QApplication>
 3 
 4 int main(int argc, char *argv[])
 5 {
 6     QApplication a(argc, argv);
 7     MainWindow w;
 8     w.show();
 9 
10     return a.exec();
11 }

    第1和第2行是頭文件包含,其中QApplication是包含了類Application定義的頭文件。相應的有QWidget、QDialog等頭文件。

    第6行建立了一個QApplication對象,第7行新建了一個主窗口(MainWindow)部件「w」,第8行調用內建函數顯示窗口部件。而第10行則至關於Windows API中的消息循環,用於處理窗口中的「消息」與「動做」。  

    mainwindow.cpp的內容以下:

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 
 4 MainWindow::MainWindow(QWidget *parent) :
 5     QMainWindow(parent),
 6     ui(new Ui::MainWindow)
 7 {
 8     ui->setupUi(this);
 9 }
10 
11 MainWindow::~MainWindow()
12 {
13     delete ui;
14 }

    Qt中的「信號(SIGNAL)」和「槽(SLOT)」機制主要在這部分實現。槽函數須要在mainwindow.h中的private slots中進行函數原型說明,而信號和槽的鏈接放在第8行的下面。而槽函數的實現即函數體,則是放在第14行後面,即析構函數的後面。

    mainwindow.ui是一個圖形設計界面:

    你能夠從左側拉入一些空間和部件放在窗口中,在右側設置相應的屬性。而後經過將部件與函數鏈接,實現信號與槽的鏈接。    

    能夠直接單擊界面右下角綠色三角形執行按鈕,軟件會編譯運行當前的源程序。

     下面是如何簡單的添加一個退出按鍵,並與相應的函數鏈接。

    首先在UI設計窗口中的左側Buttom>>Push Buttom拉入主窗口,在右側的屬性欄中更改部件名稱爲「PushButtom_Quit」。能夠適當的更改按鍵的大小和標籤字體的樣式與大小。部件的名稱就是調用部件的接口。

    接下來要作的就是將按鍵與函數鏈接起來。

    在mainwindow.cpp中修改以下內容:

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 
 4 MainWindow::MainWindow(QWidget *parent) :
 5     QMainWindow(parent),
 6     ui(new Ui::MainWindow)
 7 {
 8     ui->setupUi(this);
 9 
10     //以下爲鏈接函數
11     connect(ui->PushButtom_Quit, SIGNAL(clicked()), this, SLOT(close()));
12 }
13 
14 MainWindow::~MainWindow()
15 {
16     delete ui;
17 }

    第11行中的close()函數爲SLOT的內建函數,可直接調用。

 (小技巧:當輸入一個函數名後,只打出左括號,會當即彈出參數表,部分函數會彈出可做爲參數的內建函數,對象會彈出對象中的屬性列表。)

   至此,一個添加了按鍵可實現單擊退出功能的窗口就完成了。執行後效果:

 <參考文獻:C++ GUI Programming with Qt4, Second Edition. Jasmin Blanchette, Mark Summerfield>

相關文章
相關標籤/搜索