问题遇到的现象和发生背景
项目首先用pyqt5制作了一个交互界面,并且赋予了pushbutton用于激活程序,数个lineEdit来获取需要写入Excel的数据。
需要写入的数据由用户决定从上到下输入几行,数据以字符串+数字组成,使用while循环希望实现数字的部分可被迭代,但始终只能输出最初用户键入的值。
问题相关代码,请勿粘贴截图
def writing():
first_title = ui.lineEdit_1.text()
prefix = ui.lineEdit_2.text()
iterative_number = ui.lineEdit_3.text()
executions_number = ui.lineEdit_4.text()
password = ui.lineEdit_5.text()
traversal = 0
traversal_column = sheet1.max_column
while traversal < int(executions_number) + 1:
iteration = int(iterative_number)
iterative_number_change = 0 + iteration
typing_value = str(prefix) + str(iterative_number_change)
traversal += 1
iterative_number_change += 1
account_writing = sheet1.cell(traversal, int(traversal_column))
account_writing.value = typing_value
print(iterative_number_change)
account_writing = sheet1.cell(1, int(traversal_column + 2))
first_title_2 = str(first_title)
account_writing.value = first_title_2
wb.save('test.xlsx')
if name == 'main':
import sys
app = RPSM.QApplication(sys.argv)
app.setStyle('Fusion')
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
ui.pushButton.clicked.connect(lambda: writing())
MainWindow.show()
sys.exit(app.exec_())
运行结果及报错内容
希望实现的换行和行输入都没有问题,但iterative_number_change并没有在预期中被迭代,始终保持最初键入的数值。
我的解答思路和尝试过的方法
我的基础十分的不扎实,最初甚至尝试了使用for循环,后来在意识到for循环存在的迭代器问题之后转用了while循环,暂时有想是否while嵌套能解决问题,不过感觉会变得更加复杂和代码量增加,所以还没有尝试,由于日常需求所以想要完成这个项目。
我想要达到的结果
解决代码typing_value的值iterative_number_change的数字无法迭代的问题,并大致能在用户点击pushbutton后如下向excel内录入数据。
prefix321
prefix322
prefix323
prefix324