2013-03-16 190 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) 

当复印不是一个昂贵的操作时使用。通常,这通常用于原始类型和写入时复制对象。

相关问题