primaryColumnCombo->setMinimumSize(
secondaryColumnCombo->sizeHint());
以上代码可以正常运行。但是从Qt的帮助中,有3种类型的setMinimumSize()。
QSize minimumSize () const
void setMinimumSize ( const QSize & )
void setMinimumSize ( int minw, int minh )
在这里我认为第二种类型已经执行。但是它需要QSize &
作为参数,为什么在代码中它可以接受QSize
?
答案 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传递给它,或者你已经有一对整数。你的例子就是前者的例子,它应该与你期望的一样。