Добрый день.
Не получается сделать поиск при двойном клике по строке. В Qt Designer нарисовал окно с таблицей tableView_1. В эту таблицу выводятся данные из БД из Таблицы 1.
Таблица 1 (dbtable_1):
name | quantity | id
Картофель | 10 | А1
Огурцы | 5 | A2
Есть еще в БД Таблица 2 (dbtable_2):
producer | city | id
Фермер 1 | Москва | А1
Фермер 2 | Санкт-Петербург | А2
Для tableView_1 задано значение SelectRows для свойства selectionBehavior. При двойном клике по строке происходит следующее:
def result(mod_inx):
#Модальное окно
modal_window = QtWidgets.QWidget(main_window, QtCore.Qt.Window)
modal_window.setWindowTitle("Модальное окно")
modal_window.setMinimumSize(700, 500)
modal_window.setWindowModality(QtCore.Qt.WindowModal)
modal_window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
#Подключение к БД
DB_connect = QtSql.QSqlDatabase.addDatabase("QSQLITE")
DB_connect.setDatabaseName("test.db")
DB_connect.open()
#Запрос к БД: из таблицы dbtable_2 выводим все строки
result_model = QtSql.QSqlQueryModel(parent = None)
result_model.setQuery("SELECT producer, city, id FROM dbtable_2")
#Модель
vbox = QtWidgets.QVBoxLayout()
table_result = QtWidgets.QTableView()
table_result.setModel(result_model)
vbox.addWidget(table_result)
table_result.resizeColumnsToContents()
table_result.horizontalHeader().setStretchLastSection(True)
modal_window.setLayout(vbox)
modal_window.show()
#Значения строки, столбца
row = mod_inx.row()
column = mod_inx.column()
#Значение id из dbtable_2
id_search = main_window.tableView_1.model().index(row, 2).data()
В данном случае, при двойном клике по строке открывается окно с таблицей, в которой выводятся все строки из dbtable_2, а так же получаем значение id этой строки. Я же хочу сделать, чтобы при двойном клике по строке, мы брали значение id этой строки и в окне выводили записи из dbtable_2 только с этим id. Можно ли как-нибудь сделать это через "WHERE id LIKE (?)" или "WHERE id = ..."?