使用Tkinter显示带有列的列表框? [英] Display Listbox with columns using Tkinter?
本文介绍了使用Tkinter显示带有列的列表框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在Tkinter中创建具有列的Listbox
.
I'm trying to create a Listbox
in Tkinter that has columns.
我从数据库查询记录中返回,并希望在每个记录的自己列中显示每个条目.
I'm returning from a DB query records and would like to display each entry in it's own column for each record.
看着Listbox
,我觉得应该有此功能,但找不到.我应该使用哪个小部件来执行此操作?我一直在网上搜索,但是文档非常稀疏.
Looking at Listbox
, I feel like there should be this functionality there but can't find it. What widget should I be using to do this? I've been searching around online but documentation has been very sparse.
推荐答案
使用 TkTreectrl :
import Tkinter as tk
import TkTreectrl as treectrl
import sqlite3
def setup_table(connection):
cursor=connection.cursor()
cursor.execute('''CREATE TABLE foo
(id INTEGER PRIMARY KEY AUTOINCREMENT,
bar TEXT)''')
sql='INSERT INTO foo (bar) values (?)'
for i in range(10):
cursor.execute(sql,(i,))
cursor.execute(sql,(u'\N{INFINITY}',))
def select_cmd(selected):
print 'Selected items:', selected
def main():
connection=sqlite3.connect(':memory:')
setup_table(connection)
cursor=connection.cursor()
root = tk.Tk()
root.title('Simple MultiListbox demo')
mlb = treectrl.MultiListbox(root)
mlb.pack(side='top', fill='both', expand=1)
tk.Button(root, text='Close', command=root.quit).pack(side='top', pady=5)
mlb.focus_set()
mlb.configure(selectcmd=select_cmd, selectmode='extended')
mlb.config(columns=('Column 1', 'Column 2'))
cursor.execute('SELECT * from foo')
for row in cursor.fetchall():
mlb.insert('end',*map(unicode,row))
root.mainloop()
if __name__=='__main__':
main()
收益
这篇关于使用Tkinter显示带有列的列表框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文