📅  最后修改于: 2023-12-03 14:45:45.528000             🧑  作者: Mango
在使用 PyQt5 实现一个不可编辑的组合框时,发现 lineedit 部分的边框颜色与组合框自身的边框颜色不同。
当使用系统默认样式时, lineedit 部分的边框颜色与组合框自身的边框颜色相同。但当我们设置了组合框的样式时,会覆盖掉 lineedit 部分的样式,导致不一致的边框颜色。
我们可以设置 lineedit 的样式,使其与组合框自身的边框颜色相同。
# 设置 lineedit 样式
combo.lineEdit().setStyleSheet("""
QFrame{
border: 1px solid gray;
border-radius: 3px;
background-color: #FFFFFF;
}
""")
我们也可以修改组合框自身的样式,使其与 lineedit 部分的边框颜色相同。在这里,我们只需要设置组合框的边框颜色为白色即可。
# 修改组合框样式
combo.setStyleSheet("""
QComboBox{
border: 1px solid gray;
border-radius: 3px;
background-color: #FFFFFF;
}
""")
from PyQt5.QtWidgets import QApplication, QComboBox
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建一个不可编辑的组合框
combo = QComboBox()
combo.setEditable(False)
# 添加选项
combo.addItems(['Option 1', 'Option 2', 'Option 3'])
# 设置组合框样式
combo.setStyleSheet("""
QComboBox{
border: 1px solid gray;
border-radius: 3px;
background-color: #FFFFFF;
}
""")
# 设置 lineedit 样式
combo.lineEdit().setStyleSheet("""
QFrame{
border: 1px solid gray;
border-radius: 3px;
background-color: #FFFFFF;
}
""")
combo.show()
sys.exit(app.exec_())
以上是解决不可编辑组合框的 lineedit 部分的边框颜色不同的方法。希望对大家有所帮助。