QTableWidget + QPushButton问题

时间:2017-02-24 05:28:33

标签: python python-3.x pyqt pyqt5 qtablewidget

我正在使用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的下一行。

我希望这能更好地解释我想要实现的目标。

1 个答案:

答案 0 :(得分:1)

每次调用btn_clk功能时,您都会将值重置为row = 0col = 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