前一天,我一直在尝试解决此问题。并且几乎成功了。但是,我仍然没有得到明确的答案-为什么下一个代码不起作用?
import sqlite3
from tkinter import *
from tkinter import ttk
root = Tk()
text = Text(root)
text.pack()
con = sqlite3.connect(':memory:')
c = con.cursor()
c.execute("CREATE TABLE t1 (name)")
c.execute("INSERT INTO t1 VALUES (?)", ('TEST',))
con.commit()
c.execute("SELECT * FROM t1")
text_ = c.fetchall()
text.insert(INSERT, text_)
text.tag_add('one', '1.0', '1.3')
text.tag_config('one', background='blue')
text_get = text.get('1.0', 'end')
c.execute("UPDATE t1 SET name=?", (text_get,))
con.commit()
text.insert(INSERT, '\n')
c.execute("SELECT * FROM t1")
text_ = c.fetchall()
text.insert(INSERT, text_)
root.mainloop()
结果为下一个: 保存到数据库之前的TEXT-具有背景色 更新到db并取回后的TEXT-没有。 有什么办法可以使它工作?
答案 0 :(得分:1)
Text.get()
方法仅返回纯文本,而不返回有关任何标签的信息。
您必须使用其他方法来获取有关标签的信息:
>>> text.tag_names()
('sel', 'one')
>>> text.tag_cget('one', 'background')
'blue'
>>> text.tag_ranges('one')
(<textindex object: '1.0'>, <textindex object: '1.3'>)
该信息需要存储在其他一些列中。或者,将格式代码插入数据库中保存的文本中。