【发布时间】:2021-06-07 22:56:01
【问题描述】:
所以我在 PyQt5 中遇到了样式表问题。我试图为我的 QListWidget 制作一个自定义滚动条,它在 QtEditor 中运行良好,但在运行实际代码或在设计器中预览时不起作用。这是样式表:
QTableWidget{
border-radius: 10px;
background-color: transparent
}
QHeaderView::section{
background-color:transparent;
border-radius:10px;
}
QTableWidget::item{
border-radius: 10px;
background-color: rgb(92, 95, 141);
margin-bottom: 3px;
margin-right: 3px;
}
QTableWidget::item:selected{
color: rgb(255, 255, 255);
background-color: rgb(143, 154, 255);
border: 0px;
}
QScrollBar:vertical {
border: 0px solid #999999;
background-color: rgb(34, 35, 52);
width:14px;
margin: 0px 0px 0px 3px;
}
QScrollBar::handle:vertical {
min-height: 0px;
border: 0px solid red;
border-radius: 5px;
background-color: rgb(92, 95, 141);
}
QScrollBar::add-line:vertical {
height: 0px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
height: 0 px;
subcontrol-position: top;
subcontrol-origin: margin;
}
当我在 Qt 设计器中使用查看时,它工作正常
但是当我在 Designer 中预览滚动条时,它显示为默认滚动条。
我也尝试在 python 中运行代码并得到相同的结果。那么为什么 Designer 显示样式表可以正常工作,但实际上根本不起作用?
编辑: 问题已通过将滚动条样式表应用到滚动条的父元素来解决。
【问题讨论】:
-
复杂小部件的某些样式和样式子类(最常见的是 QAbstractScrollArea 子类的滚动条)存在一些常见问题和不可靠的行为。你能提供 PyQt 和 OS 版本吗?同时,尝试直接在滚动条上设置 QScrollBar 相关的样式表。
-
@musicamante 我在错误的版本上使用了 PyQt5-tools,所以我确保我的 PyQt5 和 PyQt5-tools 版本匹配,然后再试一次。我得到了相同的结果,除了现在滚动条是showing a checkered pattern。我正在使用 PyQt5 5.15.2、PyQt5-tools 5.15.2.3.0.2、Python 3.8、Windows 10 64 位。
-
您是否正在为任何父母设置其他样式表?您能否提供 ui 文件(可能只是一个可重现的最小示例)?
-
@musicamante 当然。 This is a copy of the file 与我使用的所有基本组件,只是剥离到只有桌子。编辑:我忘了提到我使用的样式表与原始帖子中的不同,但仍然遇到同样的问题。
-
请编辑您的帖子并将代码嵌入其中,最好避免使用外部资源,因为它们可能存在或无法访问。
标签: python qt user-interface pyqt pyqt5