如何让tkinter中的Treeview显示NULL为空而不是“none”
我正在从数据库中提取数据,并把它放到一个树形视图里。不过,这个树形视图把空值显示成了“none”,而不是留空。当我查看数据库时,空值是空白的(背景是非常浅的灰色)。我使用的数据库是SQLite3。我在VS Code里用Gitbash终端。这个问题是,我用Docxtemplate.render函数把数据填充到一个Word文凭模板里,但如果学生没有专业,系统就会在专业字段里填上“none”。我只希望它能留空。下面是生成函数的代码。“diploma”是我为Docxtemplate实例化的类定义的变量。顺便说一下,我知道有更好的方法来处理这个问题,而不是使用全局变量,然后再把它们放到字典里。我会在之后解决这个问题。
def generate():
global studentid
global fullName
global degreeType
global major1
global concentration
global gradDate
global honors
studentid = student_id_entry.get()
fullName = full_name_entry.get()
degreeType = degree_1_entry.get()
major1 = major_1_entry.get()
concentration = concentration_entry.get()
gradDate = grad_date_entry.get()
honors=honor_1_entry.get()
diploma.render({
"fullName" : fullName,
"degreeType" : degreeType,
"major": major1,
"concentration": concentration,
"honors": honors,
"graduationDate" : gradDate
})
diploma.save(f"{studentid} {fullName} {degreeType} {major1}.docx") #composite primay key
messagebox.showinfo("Success!", "The students diploma has been created!")
这是创建树形视图的代码:
# Create The Treeview
my_tree = ttk.Treeview(tree_frame, yscrollcommand=tree_scroll.set,
xscrollcommand=tree_scroll_bottom.set, selectmode="extended", show="headings")
my_tree.pack()
这是填充树形视图的函数:
def query_database():
# Clear the Treeview
for record in my_tree.get_children():
my_tree.delete(record)
# Create a database or connect to one that exists
conn = sqlite3.connect(db)
# Create a cursor instance
c = conn.cursor()
c.execute("SELECT rowid, * FROM graduates")
records = c.fetchall()
# Add our data to the screen
global count
count = 0
#for record in records:
# print(record)
for record in records:
if count % 2 == 0:
my_tree.insert(
parent='', index='end', iid=count, text='', values=( record[1], record[2],
record[3], record[4], record[5], record[6], record[7], record[8], record[9],
record[10], record[11], record[12]), tags=('evenrow',))
else:
my_tree.insert(parent='', index='end', iid=count, text='', values=( record[1], record[2], record[3], record[4], record[5], record[6], record[7], record[8], record[9], record[10], record[11], record[12]), tags=('oddrow',))
# increment counter
count += 1
# Commit changes
conn.commit()
# Close our connection
conn.close()
任何帮助都将非常感谢。
1 个回答
0
要把评论变成一个真正的答案:
简单来说,你可以在设置concentration
的值时加个条件,这样就可以把值"none"
变成一个空字符串""
。
concentration = concentration_entry.get() if concentration_entry.get() != "none" else ""