【问题标题】:QTableWidget + QPushButton IssueQTableWidget + QPushButton 问题
【发布时间】:2017-07-14 20:37:09
【问题描述】:

我正在使用 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 坐标,我得到 QLineEdit 框中的值,我设置当前单元格,然后设置项目。这是我不知道出了什么问题的地方。我有行变量 += 1 将其在 QTableWidget 中向下移动一行,我将其设置为总共 34 行。

我知道我现在没有办法阻止它,但我更担心它现在不会改变我的单元格位置。任何帮助将不胜感激。

更新:

扩展我想要的内容:

例子

通过提供的示例图片,我想要做的是当有人在 QLineEdit 框中输入内容并按下提交按钮时,方法 def btn_clk 将 QLineEdit 中的文本放入单元格 0,0。然后,当用户在 QLineEdit 中输入一个新项目并再次按下提交按钮时,它会将 QLineEdit 中的文本放入单元格 1,0 的下一行。

我希望这能更好地解释我想要完成的工作。

【问题讨论】:

  • 你可以改进你的解释并举一个你想要的例子。
  • 我尽可能多地提供信息。我真的不知道如何更好地解释这一点。

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


【解决方案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

【讨论】:

  • 做到了!非常感谢。
猜你喜欢
  • 2012-07-28
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 2019-01-12
  • 2020-06-15
  • 2018-03-01
  • 1970-01-01
相关资源
最近更新 更多