I want to use two columns in my database table as search parameters namely First Name and Last Name.So when the user press a letter in a search field(lineEdit) the search will return all the words having the letter pressed by the to be displayed in a QTableView or a QTableWidget.I could only do this search using just a column. Please I need help on how to implement this or is there a better way of doing this using just sql statement, below is what I have done. Thank you in advance.
search_method = ''' SELECT id_no,firstname,surname FROM name_list'''
sql_search_method = cur.execute(search_method).fetchall()
model = QStandardItemModel(len(sql_search_method), 3)
model.setHorizontalHeaderLabels(['Id_no','First Name','Surname'])
for row, company in enumerate(sql_search_method):
for com_name in company:
item = QStandardItem(com_name)
model.setItem(row, 1, item)
filter_proxy_model = QSortFilterProxyModel()
filter_proxy_model.setSourceModel(model)
filter_proxy_model.setFilterCaseSensitivity(Qt.CaseInsensitive)
filter_proxy_model.setFilterKeyColumn(1)
self.ui.lineEdit.textChanged.connect(filter_proxy_model.setFilterRegExp)
self.ui.tableView.setStyleSheet('font-size: 12px;')
self.ui.tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.ui.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.ui.tableView.setModel(filter_proxy_model)