Вы не «добавляете» к textedit, вместо этого вы заменяете его содержимое на каждой итерации цикла - только последний контент вставляет .
Изменение
self.textEdit.setHtml(str(fileName)) # replaces the whole content of the qtestedit
для добавления в текущий контент вместо его замены.
Возможные решения
См. Этот пост SO: Как добавить текст в QPlainTextEdit без добавления новой строки и сохранить прокрутку внизу? , как этого добиться. (возможно, вам следует добавить новую строку между именами файлов - вы можете адаптировать решения).
Может быть, лучший способ сделать это:
Посмотрите на API, append
также может быть правильным выбором: QTextEdit.append (...)
собрать весь необходимый текст в обычный список строк и установить QTextEdit только один раз после того, как вы посетили все файлы. Это должно быть быстрее, так как Qt не обновляет свой элемент несколько раз и должен обрабатывать триггеры и сигналы на нем:
def displayReport(self,item): # code untested, no mvce provided, may need small fixup(s)
foundText = []
searchRes=os.path.join(os.getcwd(),"search_result")
path = os.listdir(searchRes)
try:
for file in path:
rpjson = json.load(open(os.path.join(searchRes,item)))
for js in rpjson:
fileName = js["File Name"]
print("this is file name {}".format(fileName))
foundText.append(fileName) # add to list, join later, faster then
# add to the immutable string multiple times
except Exception as e:
print("can't read JSON because {}".format(e))
self.textEdit.setHtml('\n'.join(foundText)) # set text only once after processing
Вероятно, я бы выбрал последний вариант (сбор в список + установка один раз), поскольку он минимизирует сигналы и триггеры.