📅  最后修改于: 2023-12-03 15:03:58.374000             🧑  作者: Mango
在 PyQt5 中,我们可以使用 QSpinBox 控件来实现数字输入框的功能。但是默认的 QSpinBox 不带有边框,这样会给用户造成困惑。本文将会介绍如何为 QSpinBox 添加边框。
我们可以通过 QSpinBox 的样式表来为其添加边框。首先需要在应用程序中导入样式表模块:
from PyQt5.QtGui import QPalette
from PyQt5.QtCore import Qt
接着,在 QSpinBox 中设置样式表:
spin_box.setStyleSheet("""QSpinBox{
border: 2px solid gray;
border-radius: 5px;
padding: 1px 18px 1px 3px;
min-width: 6em;
}
QSpinBox::up-button{
border-width: 0px;
}
QSpinBox::down-button{
border-width: 0px;
}""")
在样式表中,我们为 QSpinBox 添加了一个灰色的 2px 边框和 5px 的圆角。然后,我们为 QSpinBox 的输入框添加了一些内边距,让其看上去更加美观。最后,我们将上下按钮的边框宽度设置为 0,避免干扰整体的美观度。
from PyQt5.QtWidgets import QApplication, QMainWindow, QSpinBox
from PyQt5.QtGui import QPalette
from PyQt5.QtCore import Qt
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QSpinBox Example")
self.setGeometry(100, 100, 400, 300)
spin_box = QSpinBox(self)
spin_box.setGeometry(100, 100, 120, 30)
spin_box.setStyleSheet("""QSpinBox{
border: 2px solid gray;
border-radius: 5px;
padding: 1px 18px 1px 3px;
min-width: 6em;
}
QSpinBox::up-button{
border-width: 0px;
}
QSpinBox::down-button{
border-width: 0px;
}""")
spin_box.setRange(-50, 50)
spin_box.setValue(0)
if __name__ == '__main__':
app = QApplication([])
window = Window()
window.show()
app.exec_()
在这个例子中,我们为 QSpinBox 添加了边框,让用户更加容易输入数字。同时,我们也可以通过样式表来对 QSpinBox 进行更加多彩的定制化设计。