2017-07-16 204 views
0

我正在做一个小部件,在那里我想有最小的高度。我可以实现这一点,但是当我更改样式表时,minimumSzeHint变得更低。这是结果:PyQt5改变样式表中垂直滚动条的宽度改变minimumSizeHint,想要避免

enter image description here

最左边的箱子结果如何。中间是它的行为,除了我没有设置样式表。正确的形象是我想要的。我可以通过去除QScrollbar :: vertical的宽度来实现这一点。

QScrollBar:vertical { 
    border: none; 
    background-color: rgba(255,255,255,0); 
    width: 10px; ##<---- Remove this, to "fix"## 
    margin: 0px 0px 0px 0px; 
} 

我该如何保持这种变化或解决它。我需要为其他的东西做这个改变,所以只是删除它并不像从这张图片看起来那么理想。

我使用具有QTreeWidgetItems的自定义QTreeWidget将其添加到QVBoxLayout中,该QVBoxLayout用作QWidget的布局。 4个QTreeWidgets。

然后我setStyleSheet和我调整窗口小部件,以节省空间,具有:

self.resize(self.sizeHint().width(),self.minimumHeight()) 

自我指向这里给QWidget本身。可以发布简化的代码,但在解释这些时并没有做太多的事情。

回答

0

我现在解决了这个问题,至少部分是通过向滚动条添加一些边距。这个原因的确切原因,我不知道。但我认为这与如何计算最小尺寸以及滚动条所占空间有关,以及如何以某种方式影响最小尺寸。所以我想我弥补了宽度的损失(通过增加宽度,我得到了预期的结果。)通过使用宽度的边距。看到这里的变化:

QScrollBar:vertical { 
    border: none; 
    background-color: rgba(255,255,255,0); 
    width: 10px; 
    margin: 0px 0px 0px 5px; 
}