【问题标题】:Updating mysql database with pyqt and qtablewidget使用 pyqt 和 qtablewidget 更新 mysql 数据库
【发布时间】:2017-03-15 20:47:28
【问题描述】:
我有一个程序将我的数据库数据存储在 QtableWidget 中。
我想添加 EventListener 所以每当用户编辑一行中的任何列时,
它会立即更新服务器中的数据。
我正在想办法做到这一点。
这个想法是将 UPDATE 查询发送到服务器数据库。但我坚持想办法让它看到变化并立即更新。
或在编辑多行后单击按钮时更新。但是它必须存储所有更改,所以我认为第一个选项更好。
任何建议都会很棒!
先谢谢了!
【问题讨论】:
标签:
python
mysql
python-2.7
pyqt4
【解决方案1】:
我同意你的看法;我认为第一种选择更好。这是您可以实现的一种方法:您可以等待用户进行更改(默认情况下,表格应该是可编辑的),当用户按下回车键时,处理事件。为此,请查看 BeetDemGuise 的 answer。
按下回车键后,将发出一个信号,您可以将其连接到一个槽函数,该函数将查看当前单元格数据并在数据库中更新它。例如signal.connect(handle_signal)。在您的handle_signal() 中,您可以获得当前文本(mytable.currentItem().text()),然后在数据库中进行更改。如果您使用的是 SqlAlchemy,它将看起来像:
table = self.values.update()
self.engine.execute(table.values(value="[the current text]".
where(table.id == id))
当然,这取决于您使用的 ORM。