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

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

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

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

4

2 回答 2

2

我不确定我是否完全理解您的问题,如果您所要求的只是将参数作为const SomeType &传递给函数与只是SomeType之间的区别,那么有很多关于此的文档,但这里有一个简短的概要什么时候用哪个...

myFunction(const SomeType &)

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

myFunction(type)

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

于 2013-03-16T07:04:39.643 回答
0

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

第一个void setMinimumSize(const QSize&)是 QSize,它本质上只是一个宽度和一个高度封装在一起的值。它通过 const 引用接受 QSize,因为这是 Qt 函数接受对象的标准方式。有关他们为什么会遵循这种做法的详细信息,请参阅此答案

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

两者没有区别。它们只是为了方便起见提供了两个函数,以防您已经有一个 QSize 可以传递给它,或者您已经有一对整数。您的示例是前者的情况,它应该完全按照您的预期工作。

于 2013-03-16T05:07:18.347 回答