自从我开始在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,它仍然可以工作(因为它保留了样式表中的最小大小......所以这让我猜测样式表大小是优先级值...)
但为什么不告诉样式表里面的大小。为什么要添加其他东西?
有人能解释一下这会发生什么吗?为什么样式表上的最小宽度使它工作?为什么不给它提供有关背景的信息,让它像旧式按钮一样工作?
答案 0 :(得分:1)
样式表将更改窗口小部件属性,因此不需要在代码和样式表中更改相同的内容。如果您想使用CSS制作小部件固定大小,则需要设置最小和最大大小。否则可以调整小部件的大小。尽量将所有样式内容保存在一个地方以保持一切清晰,因为有时属性会与代码和CSS中的属性混淆。
请记住,属性将按照应用顺序进行更改。因此,如果您首先在应用程序上应用CSS,然后在代码中更改属性,则属性将保留代码的值。如果您在代码中更改属性然后应用CSS,则将保留CSS值