为什么函数setMinimumSize()接受QSize作为参数?

时间:2013-03-16 04:44:08

标签: qt

primaryColumnCombo->setMinimumSize(
        secondaryColumnCombo->sizeHint());

以上代码可以正常运行。但是从Qt的帮助中,有3种类型的setMinimumSize()。

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

在这里我认为第二种类型已经执行。但是它需要QSize &作为参数,为什么在代码中它可以接受QSize

2 个答案:

答案 0 :(得分:2)

我不确定我是否理解你的问题,如果你要求的只是将参数作为 const SomeType& SomeType传递给函数之间的区别,有很多关于此的文档,但这里是一个简短的概要,说明何时使用...

myFunction(const SomeType &)

复制是一项昂贵的操作时,传递一个参数(而且我的意思是昂贵......复制会消耗大量的CPU资源和处理能力)。

myFunction(type)

复制不是一项昂贵的操作时使用。通常,这通常用于基本类型和写时复制对象。

答案 1 :(得分:0)

实际上只有两种类型的setMinimumSize。 QSize minimumSize() const是一个返回当前最小大小的访问器。它不允许您设置最小尺寸。

第一个void setMinimumSize(const QSize&)采用QSize,它基本上只是一个宽度和高度打包在一起。它通过const引用接受QSize,因为这是Qt函数接受对象的标准方法。有关他们为什么遵循这种做法的详细信息,请参阅this answer

第二个,void setMinimumSize(int minw, int minh)将宽度和高度作为一对参数。

两者之间没有区别。它们只提供两个函数作为方便,如果你已经有QSize传递给它,或者你已经有一对整数。你的例子就是前者的例子,它应该与你期望的一样。