У меня есть QTableView с кнопкой на нем, чтобы обновить выбранную строку кнопку обновления вызывает форму для обновления записи (QDialog в другом классе)PyQt 5 QTableView выбор бар вопрос
После udpating записи я сф сфокусируйтесь на Qtableview, но я не могу найти его , чтобы дать фокус bakc от панели выбора?
Стол возвращается, но мне всегда нужно щелкнуть в таблице, чтобы вернуть панель выбора?
Кто-нибудь знает, как это сделать?
Я хочу также, что бар выделенного помещаются на записи, что только был обновлен
Я tryied это уже с SETFOCUS/activatewindow ... Но ничто не дает мне желаемый результат:
Вот некоторое пример кода:
class KL_browse(QDialog, ui_kl_browse.Ui_kl_browse):
def __init__(self):
super(KL_browse, self).__init__()
# query = QSqlQuery()
# query.exec_("""SELECT * FROM klanten ORDER BY klantnaam""")
self.setupUi(self)
self.model = QSqlTableModel(self)
self.model.setTable("KLANTEN")
# self.model.setSort(1, Qt.AscendingOrder)
self.model.select()
self.tableView.setModel(self.model)
self.tableView.setSelectionMode(QTableView.SingleSelection)
self.tableView.setSelectionBehavior(QTableView.SelectRows)
# self.view.setColumnHidden(ID, True)
# index = self.tableView.model().index(0, 1)
# self.tableView.selectionModel().setCurrentIndex(index, QItemSelectionModel.NoUpdate)
self.tableView.horizontalHeader().setSectionsMovable(True)
self.tableView.horizontalHeader().setDragEnabled(True)
self.tableView.horizontalHeader().setDragDropMode(QAbstractItemView.InternalMove)
self.tableView.horizontalHeader().setSortIndicator(1,0)
self.tableView.selectRow(0)
self.tableView.selectColumn(1)
index = self.tableView.model().index(0, 1)
self.tableView.selectionModel().setCurrentIndex(index, QItemSelectionModel.NoUpdate)
# Volgende code is om de actie op knoppen en dergelijke op te vangen
self.add_button.clicked.connect(self.test_win_start)
self.Del_button.clicked.connect(self.del_record)
def del_record(self):
index = self.tableView.currentIndex()
self.model.removeRow(index.row())
self.model.submitAll()
self.model.select()
self.tableView.activateWindow()
self.tableView.setFocus()
def test_win_start(self):
self.test_win = Test_win()
self.test_win.exec_()
self.model.select()
self.tableView.activateWindow()
del_record удаляет запись, но и там фокус не засаливание обратно в selectionbar! test_win_start называет обновление формы
ли вы разрешить [это] (http://stackoverflow.com/questions/27668721/pyqt-5-qtableview-specify-standard-search-field)? По-видимому, исправление теперь находится в этом коде, но почему бы не выбрать ответ :) Что еще более важно, ваше форматирование нарушено. Выберите свой код и нажмите ctrl-k, чтобы отформатировать его автоматически. – lpapp