QT中使用自己新建的 ui檔案的方法

2021-08-19 19:39:29 字數 1454 閱讀 2778

我今天在新建新的qdialog類檔案的時候很奇怪額發現了生成的東西裡面居然沒有了自動生成的***.h和***.cpp這兩個「**檔案」

emmmmm這個時候我就覺得很納悶那我怎麼樣使用這個檔案呢?開始上網搜有關的內容:

其中有一種方法說的就是用uic編譯ui檔案,uic ***.ui -o ui_***.h

那也就是說沒有uic?

所以我就想了別的方法。

看看別人的說發:

單繼承方式是相對於後面要講的多繼承方式,單繼承方式也稱組合(即委託或**)方式。單繼承方式簡單來說就是在**中首先要自定義乙個子類(例如下文中的gotocelldialog類),該類要從form對應的窗體類(或其相容的子類)派生;並用ui生成的類定義乙個類裡的成員變數,該成員變數可以是值也可以是指標,根據使用成員變數的形式不同,又分為成員變數和指標成員變數兩種形式。這樣在gotocelldialog的建構函式中可以直接呼叫ui和ui中的變數和函式,使用起來很方便。

1、使用成員變數

即將 ui::gotocelldialog ui; 作為類gotocelldialog(只繼承自qdialog,單一繼承)的成員變數。這裡有一點值得注意的地方,就是ui檔案提供的類被包含在了名為ui的name space裡,這樣做的目的是將ui檔案的命名空間與使用者的**分離,避免兩者出現命名衝突的情況。

2、使用指標成員變數

與成員變數形式相似,唯一不同的是,將ui::gotocelldialog宣告為指標成員,即 ui::gotocelldialog *ui;

因此,相應的標頭檔案中只要前置宣告即可:

namespace ui   

// 前置宣告即可,只在實現檔案中包含相應的標頭檔案

class gotocelldialog: public qdialog

;

實現檔案:

#include "ui_gotocelldialog.h"  

gotocelldialog::gotocelldialog(qdialog *parent) :

qdialog(parent), ui(new ui::gotocelldialog)

calculatorform::~calculatorform()

還有一種就是多繼承方式,就是使用c++的多繼承

但是我在這裡是這麼實現的(怎麼有種撞大運的感覺tt)

1:新建a.ui

2:新建同名a.h/a.cpp

3:建立的ui是什麼型別的就是要繼承什麼型別的

然後把需要的東西都寫好(就是在.h裡面繼承的,建構函式,q_object這類的東西)

最後在a.cpp上面寫#include "ui_a.h"

執行,發現沒有報錯,並且視窗可以顯示!應該是qt裡面的機制在編譯時候發現在同名的ui上面,自動生成ui_***.h,所以才會比較奇怪沒有這個檔案卻能;夠執行。我覺得就是qt的執行機制的作用

Qt中ui檔案的使用

用designer設計的 ui檔案可以通過uic工具轉換為 h檔案 在編譯時也會自動生成這樣乙個ui h檔案 有了這個.h檔案就可以直接按照純c 的方式對其中的類進行呼叫。ui檔案的使用就是利用預設工具uic自動產生乙個類,然後用該類的setui函式載入介面到相應的物件上。ui檔案的使用有三種形式 ...

Qt4 ui檔案的使用

由時候我們會因為ui檔案的存在而感覺用qt編寫介面檔案是一件非常簡單的事情,但是在處理介面檔案與原始檔時對我這種新手來說又是一件比較頭疼的事情,在嘗試了很多方法之後,在此做一下總結,希望能由所幫助。1.在原始檔中對ui檔案的呼叫,因為當你建立ui檔案時,qt自動給你加在了標頭檔案中,所以無需在標頭檔...

Qt中使用 的方式

先看乙個普通的 類的定義 include using std string class myclass 上述類的定義體現了qt的一些風格 l類名的第乙個字母為大寫,類名包含的單詞使用 駝峰 風格分開,也即每個單詞的第乙個字母為大寫。這是qt類命名的通用方式。l所在方法名的第乙個字母為小寫。單詞之間也...