Я пытаюсь сложить значения полей QLineEdit, сгенерированных с помощью цикла for.Однако это только добавление ввода последнего ввода, а остальные пропускаются.
for i in range(self.numInputsToAdd):
self.additionalInputs["addnlInput" + str(i + 1)] = QLineEdit(self)
self.additionalInputs["addnlInput" + str(i + 1)].setAlignment(Qt.AlignRight)
self.additionalInputs["addnlInput" + str(i + 1)].setText("1")
self.additionalInputs["addnlInput" + str(i + 1)].setPlaceholderText("Additional Mod Input #" + str(i + 1))
self.vertCol.addWidget(self.additionalInputs["addnlInput" + str(i + 1)])
Вот как я сейчас генерирую вводимые данные, self.numInputsToAdd
- это значение другого qlineedit из всплывающего окна после нажатия кнопки.Приведенный выше код помещает входные данные в диктовку с именем self.additionalInputs
с именем addnlInput1, addnlInput2..etc
. После нажатия кнопки «Roll Dice» запускается функция, которая захватывает элементы dict AdditionalInputs и пытаетсясложите их вместе, назначьте их другой переменной и добавьте эту переменную к другой, которая является выводом randint(1, n)
self.dieResult = str(randint(1, n))
self.newinputlist = {}
for keys, vals in self.additionalInputs.items():
self.newinputlist[keys] = self.additionalInputs[keys].text()
print(self.newinputlist[keys])
self.modDieResult = str(int(self.dieResult) + int(self.inputs['modInput'].text()) + int(self.newinputlist[keys]))
Выше приведен соответствующий код для «броска кубика»
Вот функциональный рабочий пример. В настоящее время вам нужен ввод в верхнем поле ввода Модификатора.Проблема заключается в полях ввода, которые генерируются с помощью «Больше модификаторов?»кнопка.Вот где он добавляет только нижний ввод модификатора в самый верхний блок ввода модификатора, который появляется при запуске приложения.
Я использую python 3.7.2 и windows 10.