我正在使用PyQt5,我试图通过按下按钮来更改活动单元格。所以我有一个QLineEdit供人们输入一个项目,然后按钮获取该值并将其置于0,0位置,就像它应该的那样。我试图让clicked.connect也改变保存行号的变量,但它似乎不起作用。这是我的btn_clk的代码:
def btn_clk(self):
row = 0
col = 0
entry = QTableWidgetItem(self.mod_num.text())
self.form_widget.setCurrentCell(row, col)
self.form_widget.setItem(row, col, entry)
row += 1
self.mod_num.clear()
当然对于第一个项目我有0,0 coord,我得到QLineEdit框中的值,我设置当前单元格,然后设置项目。这是我不知道出了什么问题的地方。我有行变量+ = 1将它在QTableWidget中向下移动一行,我将其设置为总共34行。
我知道我现在没办法阻止它,但我更担心的是此刻不会改变我的牢房位置。任何帮助都将非常感激。
更新
扩展我想要的东西:
例如
使用提供的示例图片我想要做的是当有人在QLineEdit框中输入内容并按下Submit按钮时,方法def btn_clk将来自QLineEdit的文本放入单元格0,0。然后,当用户在QLineEdit中输入新项目并再次按下“提交”按钮时,它会将QLineEdit中的文本放入单元格1,0的下一行。
我希望这能更好地解释我想要实现的目标。
答案 0 :(得分:1)
每次调用btn_clk
功能时,您都会将值重置为row = 0
,col = 0
。
您应该做的是在__init__
中初始化变量:
def __init__(self, other parameters):
# some code
self.row = 0
self.col = 0
然后在插槽中:
def btn_clk(self):
entry = QTableWidgetItem({your text})
self.form_widget.setItem(self.row, self.col, entry)
self.row += 1
# another some code