Как отобразить в 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 шт):
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_()
