1. 程式人生 > >QT5.7在VS2015中的使用(3)

QT5.7在VS2015中的使用(3)

搭建好了介面部件,只是程式設計的開始,如何在應用程式中操控這些部件才是更重要。這篇博文將講解如何去操作介面上的widgets部件。

首先,我們要知道窗體的使用有兩種方式,編譯時和執行時,這裡我主要說明在編譯時的使用。

一、編譯時使用者介面處理

我們使用QT設計師編輯好介面後,回到VS介面進行編譯,就會生成對應介面的“ui_***.h”檔案,它包含了窗體的使用者介面物件和一些函式,以下是類內容的分析。

然後我們在QT設計師中新增兩個按鈕和一個選單項,然後編譯觀察更改後的ui_****.h檔案內容的變化

編譯後的ui_***.h檔案,可以發現我們新增的部件的內容。


二、使用介面類(QT5Demo)

編譯好ui檔案後,就可以在應用程式中使用ui部件(widget)了,ui部件的使用主要由三種方法:

1.直接應用

2.單一繼承

3.多繼承

1.直接應用法

建立一個widget或者mainwindow作為ui部件的載體,然後將使用者介面安裝在其上。


直接使用方法的缺點是無法使用自定義槽函式,這就造成ui各部件之間的互動困難。為了避免這種情況,我們需要使用單一繼承法。

2.單一繼承法

QT自動生成的程式碼就是單一繼承法,把ui作為類的私有資料成員,然後在類中使用ui.×××來呼叫ui中的部件,程式碼就不貼了。

ui還可以宣告為指標資料成員,相對與直接宣告為資料成員有一定的優點,詳細參考幫助手冊。

3.多繼承法

多繼承法就是使某一類直接繼承UI類和QWidget/QMainWindow類,使ui的部件在類的作用域中可以直接使用,不用再使用ui字首。

感覺這種方法與C#中用partial class 來組合MainForm.Designer.cs與MainForm.cs有點類似,Qt用訊號與槽代替了C#中的回撥,將兩者比較一下還是有點收穫的。


三、訊號與槽的使用

1.使用connect()函式,連線訊號與槽,這個介紹已經很多了,這裡就不介紹了。

2.自動連線。

採用以下語法自動連線,適用於部件的所有訊號:


例如,槽宣告



“退出”按鈕——用Qt設計師拖拽的方式連線訊號和槽:


執行效果:

關於Qt在VS2015中的使用,先解決這兒多吧。