Как отобразить в QtTextBrowser данные из БД Sqlite в Python

Проблема собственно в следующем. Есть вот такая функция, которая должна выводить в QtTextBrowser все значения из БД Sqlite:

def value(self):
    conn = sqlite3.connect("data.db")
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM table;")

    for row in cursor:
        self.textBrowser.setText(str(row))

    conn.commit()
    conn.close()

Однако в самом приложении в TextBrowser выводится только последняя строка из всей таблицы, пробовал разными способами и с помощью .fetchall() и .fetchone(), в общем не могу сообразить.

Как мне сделать, чтобы выводились абсолютно все значения?


Ответы (1 шт):

Автор решения: S. Nick

QTextEdit::setText(const QString &text)

Устанавливает текст редактирования текста. Текст может быть простым текстом или HTML, и текстовое редактирование будет пытаться угадать правильный формат. Используйте setHtml() или setPlainText() напрямую, чтобы избежать угадывания редактирования текста.

Внимание !!! Любой предыдущий текст удаляется.


QTextEdit::append(const QString &text)

Добавляет новый абзац с текстом в конец редактирования текста.

import sys
from PyQt5.Qt import *

class Demo(QWidget):    
    def __init__(self):        
        super().__init__()

        self.textBrowser = QTextBrowser()

        self.button = QPushButton("Show")
        self.button.clicked.connect(self.showDb)

        self.layout = QVBoxLayout(self)

        self.layout.addWidget(self.textBrowser)
        self.layout.addWidget(self.button)

    def showDb(self):
        for row in range(12):
#            self.textBrowser.setText(str(row))
            self.textBrowser.append(str(row))                     # <<<-----<


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w  = Demo()
    w.show()
    app.exec_()

введите сюда описание изображения

→ Ссылка