在 Pyqt 文本浏览器中从 sqlite 行设置文本

Posted

技术标签:

【中文标题】在 Pyqt 文本浏览器中从 sqlite 行设置文本【英文标题】:Set text from sqlite rows in Pyqt textbrowser 【发布时间】:2018-08-04 12:57:01 【问题描述】:

我需要一种方法将一些行从 sqlite.db 设置为 pyqt textbrowser,但问题是它只放了最后一行。

cur = conn.cursor()
conn.text_factory = str
cur.execute(" SELECT text FROM Translation WHERE priority = ?", (m,))
for row in cur:
    print('0'.format(row[0]))
    self.SearchResults.setPlainText('0'.format(m))

我用过熊猫,但是,

query = "SELECT text FROM Translation WHERE priority=2;"

df = pd.read_sql_query(query,conn)
 self.SearchResults.setPlainText('0'.format(df['text'])) 

这不是我想要的。而这个:

cur = conn.cursor()
conn.text_factory = str
cur.execute(" SELECT text FROM Translation WHERE priority = ?", (m,))
    all_rows=cur.fetchall()

    self.SearchResults.setPlainText('0'.format(all_rows))

【问题讨论】:

【参考方案1】:

在第一个代码中,您每次迭代时都替换文本,解决方案是使用append()

cur = conn.cursor()
conn.text_factory = str
cur.execute(" SELECT text FROM Translation WHERE priority = ?", (m,))

self.SearchResults.clear() # clear previous text

for row in cur:
    self.SearchResults.append('0'.format(str(row[0])))

【讨论】:

非常感谢eyllanesc。我不知道这个

以上是关于在 Pyqt 文本浏览器中从 sqlite 行设置文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PYQT5 中从数据库进行身份验证后显示用户名

如何在 PyQt4 中从 QTextEdit 获取输入

使用 PyQt5 将 multipyle 行插入 sqlite 数据库

根据从 Sqlite 数据库加载的特定值设置 Pyqt4 TableWidget 背景颜色

PyQt5快速入门PyQt5数据库操作

如何在 PyQt5 InputDialog 中获取更多输入文本?