0

自从我开始在 QT 上使用样式表以来,这是我一直在努力解决的问题。

我有这种风格:

QPushButton#btnNewCamera
{
    border-radius: 5px;
    min-width: 20px;
    min-height: 20px;
    background-position: center;
    background-repeat: no-repeat;
}

这是我必须设置才能使其工作的代码。

createNewCameraBtn = new QPushButton();
createNewCameraBtn->setObjectName( tr("btnNewCamera") );      
createNewCameraBtn->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
createNewCameraBtn->setFixedWidth(20);
  

是否有意义?。告诉大小两次?此按钮的大小始终相同。如果我将固定大小设置为小于 20,它无论如何都可以工作(因为它保持样式表的最小大小......所以这让我猜想样式表大小是优先的......)

但是为什么不直接告诉样式表中的大小。为什么要添加其他行?

有人可以解释一下这会发生什么吗?为什么要在 styletheet 上使用 min-width 以使其工作?为什么不给它有关背景的信息,让它像旧式按钮一样工作呢?

4

1 回答 1

1

样式表将更改您的小部件属性,因此无需在代码和样式表中更改相同的内容。如果要使用 CSS 使小部件固定大小,则需要设置最小和最大尺寸。否则小部件可能会调整大小。尝试将所有样式的东西放在一个地方以保持一切清晰,因为有时属性会与代码和 CSS 中的属性混淆。

请记住,属性将按照应用的顺序进行更改。因此,如果您首先在应用程序上应用 CSS,然后更改代码中的属性,则属性将保留代码中的值。如果您在代码中更改属性然后应用 CSS,CSS 值将被保留

于 2013-01-10T10:20:38.643 回答