Обновление базы данных mysql с pyqt и qtablewidget

У меня есть программа, которая хранит данные моей базы данных в QtableWidget.
Я хотел бы добавить EventListener так всякий раз, когда пользователь редактирует любой столбец в строке,
Он немедленно обновит данные на сервере.

Я пытаюсь придумать, как это сделать.
Идея заключается в том, чтобы отправить запрос на обновление в базу данных серверов. Но я застрял на поиске способа сделать это, чтобы увидеть изменение и обновление немедленно.

Или обновление при нажатии кнопки после редактирования многих строк. Но тогда он должен хранить все изменения, поэтому я думаю, что первый вариант лучше.

Любой совет будет отличным!

Спасибо заранее!

1 ответ

  1. Я согласен с вами, я думаю, что первый вариант лучше. Вы можете подождать, пока пользователь внесет изменения (таблица по умолчанию должна быть редактируемой), и когда пользователь нажмет enter, обработать событие. Для этого взгляните на ответ BeetDemGuise .

    После нажатия клавиши enter будет выдан сигнал, который можно подключить к функции slot, которая будет просматривать текущие данные ячейки и обновлять их в базе данных. например 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 вы используете.