Да. Вот пример:т.е. нужно что бы значение спинбокса при загрузке программы сразу передовались в метод и в переменную...?
self.sp = QtWidgets.QSpinBox(value=10)
Код вставляйте с помощьюХорошо а если несколько spinBox с разными value:
...
-> код -> Python.self.sp = QtWidgets.QSpinBox(value=10)
self.sp2 = QtWidgets.QSpinBox(value=20)
self.sp3 = QtWidgets.QSpinBox(value=30)
тепрь в __init__:
#self.ui.spinBox = QtWidgets.QSpinBox() # было для всех спинов
теперь для каждого:
self.ui.spinBox_44 = QtWidgets.QSpinBox(value=2)
self.ui.spinBox_45 = QtWidgets.QSpinBox(value=2)
self.ui.spinBox_44.valueChanged.connect(self.spin_44)
self.ui.spinBox_45.valueChanged.connect(self.spin_45)
def spin_44(self):
self.shag = self.ui.spinBox_44.value()
def spin_45(self):
self.shag = self.ui.spinBox_45.value()
при запуске программы значение спина не меняется и = 1?, если спин не активировать мышкой выдает ошибку?
line 339, in start_16
g = self.shag
AttributeError: 'GUI' object has no attribute 'shag'
def __init__(self, parent=None):
self.ui.spinBox_44 = QtWidgets.QSpinBox(value=2)
self.ui.spinBox_45 = QtWidgets.QSpinBox(value=2)
self.ui.spinBox_44.valueChanged.connect(self.spin_44)
self.ui.spinBox_45.valueChanged.connect(self.spin_45)
self.ui.pushButton_16.clicked.connect(self.start_16) # определяем значение спин_44 в переменную self.shag
self.ui.pushButton_19.clicked.connect(self.start_19) # определяем значение спин_45 в переменную self.shag_2
def spin_44(self):
self.shag = self.ui.spinBox_44.value()
def spin_45(self):
self.shag_2 = self.ui.spinBox_45.value()
def start_16(self):
g = self.shag
def start_19(self):
g = self.shag_2
Без полного кода ваш вопрос не понятен.т.е. при нажатии на соответствующий пушбаттон значение спина не передается (если его до этого не активировать мышкой не изменив вверх или вниз значение - тогда все ок!) ???
from PyQt5 import Qt
class Main(Qt.QWidget):
def __init__(self):
super().__init__()
self.spinBox = Qt.QSpinBox(value=10)
self.spinBox.setRange(0, 50)
self.spinBox2 = Qt.QSpinBox(value=20)
self.spinBox2.setRange(0, 50)
self.spinBox3 = Qt.QSpinBox(value=30)
self.spinBox3.setRange(0, 50)
self.button = Qt.QPushButton("Получить значение 1го спинбокса")
self.button.clicked.connect(self.getValue)
self.getValueLabel = Qt.QLabel("Значение появится здесь")
self.Layout = Qt.QVBoxLayout()
self.Layout.addWidget(self.spinBox)
self.Layout.addWidget(self.spinBox2)
self.Layout.addWidget(self.spinBox3)
self.Layout.addWidget(self.getValueLabel)
self.Layout.addWidget(self.button)
self.setLayout(self.Layout)
def getValue(self):
# получаем значение первого спинбокса
self.value = self.spinBox.value()
# выводим его в лейбл
self.getValueLabel.setText('Значение : {0}'.format(self.value))
if __name__ == '__main__':
app = Qt.QApplication([])
main = Main()
main.show()
app.exec_()