Для того, чтобы заполнить QTableView()
я использую метод setItem(r, c, item)
model.setItem() испускает сигнал model.itemChanged() вызывает цикл
table = QTableView()
model = QStandardItemModel()
table.setModel(model)
item = QStandardItem("some value")
model.setItem(r, c, item)
Я использую его, чтобы заполнить QTableView()
с данными, полученными из словаря. Также, если я меняю элементы вручную непосредственно в QtableView()
, я использую сигнал itemChanged()
для вызова функции, которая выполняет некоторые действия.
Проблема заключается в том, что метод itemChanged()
вызывается, также когда элемент обновляется из словаря. Поэтому он вызывает программу looped Хотя, если я использую model.appendRow([one , two, three])
, чтобы заполнить таблицу, itemChanged()
не испускает сигнал
Есть ли способ его решить?
'col_c = table.model(). ColumnCount() \t \t row_c = table.model(). ROWCOUNT() \t \t стол. dataChanged (table.model(). index (0, 0), table.model(). index (row_c - 1, col_c - 1)). connect (self.ChangeDnPItem) 'не работает. что я делаю неправильно? –
'model.dataChanged' вызывает цикл, а также –
Итак, что не так ?. Чтобы заполнить View(), я должен использовать setItem(), который вызывает сигнал DataChanged или itemChanged. Итак, цикл продолжается. Есть ли какой-либо сигнал, который ТОЛЬКО соответствует изменениям в графическом интерфейсе? –