PyQt5 QSpinBox – 如何获得左边距

  • Post category:Python

使用 PyQt5 的 QSpinBox 组件可以让用户方便地通过鼠标或键盘输入来选择一个整数。有时候需要获取 QSpinBox 组件的左边距,下面是具体步骤:

步骤

  1. 初始化 QSpinBox 组件并设置它的大小和位置
spinbox = QSpinBox()
spinbox.setGeometry(50, 50, 100, 30)
  1. 获取 QSpinBox 组件的左边距
left_margin = spinbox.geometry().left()
  1. 在需要的地方使用左边距的值
print(f"Spinbox left margin = {left_margin}")

示例

以下是两个完整的示例,展示如何获取 QSpinBox 组件的左边距:

示例1

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QLabel, QVBoxLayout

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        spinbox = QSpinBox()
        spinbox.setGeometry(50, 50, 100, 30)

        left_margin = spinbox.geometry().left()

        label = QLabel(f"Spinbox left margin = {left_margin}")

        vbox = QVBoxLayout()
        vbox.addWidget(label)
        self.setLayout(vbox)

        self.setGeometry(300, 300, 200, 100)
        self.setWindowTitle('QSpinBox Example')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

运行以上代码,将会在GUI中展示 “Spinbox left margin = 50″。

示例2

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QPushButton, QLabel, QVBoxLayout, QHBoxLayout

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        spinbox = QSpinBox()
        spinbox.setGeometry(50, 50, 100, 30)

        left_margin = spinbox.geometry().left()

        label = QLabel(f"Spinbox left margin = {left_margin}")

        button = QPushButton('Print Left Margin')
        button.clicked.connect(lambda: print(f"Spinbox left margin = {left_margin}"))

        hbox = QHBoxLayout()
        hbox.addWidget(button)
        hbox.addWidget(label)

        vbox = QVBoxLayout()
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        self.setGeometry(300, 300, 200, 100)
        self.setWindowTitle('QSpinBox Example')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

运行以上代码,将会在GUI中展示一个 “Print Left Margin” 按钮和一个 “Spinbox left margin = 50” 的标签。点击按钮将会在控制台打印 “Spinbox left margin = 50″。