首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QTableWidget + QPushButton问题

QTableWidget + QPushButton问题
EN

Stack Overflow用户
提问于 2017-02-24 05:28:32
回答 1查看 407关注 0票数 1

我正在使用PyQt5,我试图通过按一个按钮来改变活动单元格。所以我有一个QLineEdit,人们可以输入一个项目,此时按钮接受这个值,并将它放在0,0的位置,就像它应该的那样。我试图让clicked.connect也更改保存行号的变量,但它似乎不起作用。下面是我的btn_clk代码:

代码语言:javascript
运行
复制
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,0coord,我得到了QLineEdit框中的值,设置了当前单元格,然后设置了项。这就是我不知道出什么问题的地方。我有行变量+= 1将其移动到我设置为34行的QTableWidget中的一行。

我知道我目前没有办法阻止它,但我更担心的是,它不会改变我的手机位置。任何帮助都将不胜感激。

更新:

来阐述我想要的:

示例

通过提供的示例图片,当有人在QLineEdit框中输入某些内容并按Submit按钮时,def btn_clk将文本从QLineEdit放到单元格0,0中。然后,当用户在QLineEdit中输入一个新项并再次按Submit按钮时,它会将来自QLineEdit的文本放在单元格1,0的下一行中。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 15:28:58

每次调用btn_clk函数时,都会将值重置为row = 0col = 0

您应该做的是在__init__中初始化变量

代码语言:javascript
运行
复制
def __init__(self, other parameters):
    # some code
    self.row = 0
    self.col = 0

然后在插槽里:

代码语言:javascript
运行
复制
def btn_clk(self):
    entry = QTableWidgetItem({your text})
    self.form_widget.setItem(self.row, self.col, entry)
    self.row += 1
    # another some code
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42431416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档