#python #pyqt5
#python #pyqt5
Вопрос:
Люди. Я здесь снова пытаюсь решить проблему здесь . Весь мой код можно увидеть здесь:
https://gitlab.com/zoiobnu/comissiosystem
У меня есть Main.py с помощью MainWindow, в котором есть меню, панель инструментов. Затем панель инструментов вызывает виджет с формой. В этой форме есть кнопка поиска (Pesquisar), которая открывает диалоговое окно и закрывает виджет.
ItemForm.py
def search(self):
item_search = ItemSearch(self)
item_search.show()
self.close()
Чем это новое диалоговое окно поиска, я могу выполнить поиск в базе данных и получить идентификатор.
ItemSearch.py
@pyqtSlot()
def on_click(self):
item_form = ItemForm(codigo=self.grdPesquisaCliente.item(self.grdPesquisaCliente.currentRow(), 0).text())
item_form.show()
ItemSearch.close()
Теперь я могу дважды щелкнуть по строке и получить идентификатор ячейки, но я хочу вернуться к первой форме с этим идентификатором ячейки и заполнить поля данными БД.
Но я не знаю, как заставить это работать.
Комментарии:
1. Если я правильно понимаю проблему, вы должны быть в состоянии создать сигнал в ItemSearch, который выдает текст строки в виде кортежа при двойном щелчке по нему. Вам просто нужно было бы подключить сигнал к методу ` set_item(item)` в предыдущей форме и вызвать
setText(item[...])
строку, указанную в itemForm.
Ответ №1:
Чтобы решить эту проблему, я сделал это! Создал новый метод в родительском классе для заполнения формы, затем вызвал с помощью self.parent()
ItemSearch.py
@pyqtSlot()
def on_click(self):
self.parent().fill_data(codigo=self.grdPesquisaCliente.item(self.grdPesquisaCliente.currentRow(), 0).text())
self.close()
Затем в ItemForm я просто исправил метод, чтобы не закрывать форму после открытого диалога.
itemform.py
def search(self):
item_search = ItemSearch(self)
item_search.show()