使用pyqt和qtablewidget更新mysql数据库

时间:2016-11-02 13:52:04

标签: python mysql python-2.7 pyqt4

我有一个程序将我的数据库数据存储在QtableWidget中。 我想添加EventListener,以便每当用户编辑一行中的任何列时, 它将立即更新服务器中的数据。

我试图想办法这样做。 我们的想法是向服务器数据库发送UPDATE查询。但我坚持找到一种让它看到变化并立即更新的方法。

或者在编辑多行后单击按钮时更新。但是它必须存储所有更改,所以我认为第一个选项更好。

任何建议都会很棒!

提前致谢!

1 个答案:

答案 0 :(得分:0)

我同意你的意见;我认为第一种选择是更好的选择。这是一种可以实现的方法:您可以等待用户进行更改(默认情况下表格应该是可编辑的),当用户按Enter键时,处理该事件。为此,请查看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。