0

This is something i´ve been struggling with since i started using stylesheets on QT.

I have this style:

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

This is the code I had to set to make it work.

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

Does it make sense?. Telling the size twice?. This buttons are always the same size. If i set the fixed size less than 20, it works anyway (because it keeps the minimum size from the stylesheet... so that makes me guess that stylesheet sizes are prioritary...)

But why not just tell the size inside the stylesheet. Why add those other lines?

Could somebody explain me what happens with this?. Why min-width on the styletheet to make it work?. Why not just give it the info about the background and make it work like the old style buttons?

4

1 に答える 1

1

スタイルシートはウィジェットのプロパティを変更するため、コードとスタイルシートで同じことを変更する必要はありません。CSS でウィジェットを固定サイズにしたい場合は、最小サイズと最大サイズの両方を設定する必要があります。そうしないと、ウィジェットのサイズが変更される可能性があります。プロパティがコードや CSS のプロパティと混同されることがあるため、すべてのスタイル設定を 1 か所にまとめて、すべてを明確に保つようにしてください。

プロパティは適用順に変更されることに注意してください。したがって、最初にアプリケーションに CSS を適用してから、コードでプロパティを変更すると、プロパティはコードからの値を保持します。コードでプロパティを変更してから CSS を適用すると、CSS の値が保持されます

于 2013-01-10T10:20:38.643 に答える