在 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 将 multipyle 行插入 sqlite 数据库