📅  最后修改于: 2023-12-03 14:45:45.633000             🧑  作者: Mango
组合框是常用的用户界面控件之一,它可以让用户从预定义的选项中进行选择。在 PyQt5 中,我们可以通过设置样式表来为组合框添加边框。
以下是一个简单的 PyQt5 程序,它创建了一个包含组合框的窗口,并为组合框添加了边框。
from PyQt5.QtWidgets import QApplication, QWidget, QComboBox
from PyQt5.QtGui import QPalette, QColor
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建组合框
combo = QComboBox(self)
combo.addItem('Option 1')
combo.addItem('Option 2')
combo.addItem('Option 3')
combo.move(50, 50)
# 设置组合框的样式表
combo.setStyleSheet('QComboBox { border: 2px solid gray; border-radius: 8px; padding: 1px 18px 1px 3px; min-width: 6em; }'
'QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 1px; border-left-color: darkgray; border-left-style: solid; border-top-right-radius: 3px; border-bottom-right-radius: 3px; }'
'QComboBox::down-arrow { image: url(./icons/arrow_down.png); }')
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('PyQt5 - Add border to combo box')
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
在上面的代码中,我们通过以下样式表为组合框添加边框:
combo.setStyleSheet('QComboBox { border: 2px solid gray; border-radius: 8px; padding: 1px 18px 1px 3px; min-width: 6em; }'
'QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 1px; border-left-color: darkgray; border-left-style: solid; border-top-right-radius: 3px; border-bottom-right-radius: 3px; }'
'QComboBox::down-arrow { image: url(./icons/arrow_down.png); }')
该样式表包含三个部分:
QComboBox
:设置组合框边框的样式,包括边框宽度、颜色和圆角半径等。QComboBox::drop-down
:设置下拉箭头的样式和位置,包括宽度、颜色、样式和圆角半径等。QComboBox::down-arrow
:设置下拉箭头图标。我们可以根据需要调整上述代码中的样式表,以适应不同的应用场景。