2013-03-16 186 views
0
primaryColumnCombo->setMinimumSize(
     secondaryColumnCombo->sizeHint()); 

上面的代碼可以正常運行。但是從Qt的幫助中,有3種類型的setMinimumSize()。爲什麼函數setMinimumSize()接受一個QSize作爲它的參數?

QSize minimumSize() const 
void setMinimumSize (const QSize &) 
void setMinimumSize (int minw, int minh) 

在這裏,我認爲第二種類型是執行。但它需要一個QSize &作爲它的參數,爲什麼在代碼中,它可以接受QSize

回答

0

實際上只有兩種類型的setMinimumSize。 QSize minimumSize() const是返回當前最小大小的訪問器。它不允許你設置最小尺寸。

第一個,void setMinimumSize(const QSize&),採用QSize,它基本上只是一個寬度和高度打包在一起。它通過const引用接受QSize,因爲這是Qt函數接受對象的標準方式。有關他們爲什麼會遵循這種做法的詳細信息請參見this answer

第二個,void setMinimumSize(int minw, int minh)將寬度和高度作爲一對參數。

這兩者之間沒有區別。他們只是提供了兩個函數作爲方便,以防你已經有一個QSize傳遞給它,或者你已經有一對整數。你的例子是前者的例子,它應該像你期望的那樣工作。

2

我不知道我很理解你的問題,如果你要求的是隻是SOMETYPE &而不只是SOMETYPE將參數傳遞給一個函數作爲常量之間的差異,有大量的文檔關於這個,但這裏是時使用的一個簡短的概要...

myFunction(const SomeType &) 

傳遞一個參數爲,所以當複製是一項昂貴的操作(和昂貴的我的意思是...複製佔用大量的CPU資源和處理能力)。

myFunction(type) 

當複印不是一個昂貴的操作時使用。通常,這通常用於原始類型和寫入時複製對象。

相關問題