QT5學習記錄(一)

學習環境:Windows10 + QT5.13 + QT Creater4.9.1(2019-08-10 22:02:30設計模式

1.基本工程建立操做ide

  常規操做建立畫面,可選擇QDialog、MainWindow、QWidget三種類型。可選擇直接建立相應的 ui 文件,控件的添加能夠在編輯模式下使用代碼建立,也能夠在設計模式下經過拖動添加;控件的屬性能夠在編輯模式下用代碼修改,也能夠在設計模式下經過屬性欄修改;每個控件經過其惟一的 objectName 尋找,因此要細心設置控件的objectName。函數

2.經常使用且重要的操做學習

  QT 特有的信號(signal)和槽(slot):signal 關聯發出者,slot 關聯接收者,二者各有一個對應的函數操做;QT中已經自帶了一些 signal 和 slot 函數,用戶能夠直接使用;若是用戶自定義的signal信號,使用 emit 關鍵字發出信號;signal 和 slot 須要綁定起來才能實現正常的發送與接收,這種鏈接可使用代碼 connect 函數執行,也能夠在設計模式下的 Edit signal/slot 功能中經過連線方式綁定,最終實現 signal 和 slot 的代碼(若是是 QT 自帶的 signal 和 slot 也能夠視狀況省略該操做)。ui

3.實際操做練習this

  新建兩個窗口(此處選擇了 MainWindow 和 Dialog),新建時選擇建立 ui 文件。在每一個畫面添加兩個 QPushButton 控件,主界面的按鈕實現跳轉至從界面和關閉,從界面按鈕實現一個彈出框和返回至主界面。在 mainwindow.h 中聲明一個 Dialog 類的實例:spa

1 private:
2     Ui::MainWindow *ui;
3     Dialog *sub;

  在 mainwindow.cpp 中,從主界面的構造函數中建立子界面的實例,而且鏈接兩個畫面( signal 和 slot 的綁定),必定要先建立實例再綁定:設計

1 MainWindow::MainWindow(QWidget *parent) :
2     QMainWindow(parent),
3     ui(new Ui::MainWindow)
4 {
5     ui->setupUi(this);
6     sub = new Dialog(this);
7     connect(sub,SIGNAL(mysignal()),this,SLOT(re_show()));
8 }

  在子界面 dialog.h 中聲明一個 signal :code

1 public:
2     explicit Dialog(QWidget *parent = nullptr);
3     ~Dialog();
4 
5 signals:
6     void mysignal();

  在子界面的 cpp文件,dialog.cpp 實現 signal 的發送,發送使用 emit 關鍵字:blog

1 void Dialog::on_back_clicked()
2 {
3     this->hide();
4     emit mysignal();
5 }

 4.總結

  從本次記錄主要了解 QT 的 signal 和 slot 形式與基本使用,學習兩個界面若是經過 signal 和 slot 聯繫在一塊兒。

 

  每使用一種控件,須要把對應的類包含進去!!! eg. #include <QPushButton>//包含按鈕的類

/***************************************未完待續******************************************/

相關文章
相關標籤/搜索