我有一个程序将我的数据库数据存储在QtableWidget中。 我想添加EventListener,以便每当用户编辑一行中的任何列时, 它将立即更新服务器中的数据。
我试图想办法这样做。 我们的想法是向服务器数据库发送UPDATE查询。但我坚持找到一种让它看到变化并立即更新的方法。
或者在编辑多行后单击按钮时更新。但是它必须存储所有更改,所以我认为第一个选项更好。
任何建议都会很棒!
提前致谢!
答案 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。