使用 Treeview 打开 PDF
Opening PDFs using Treeview
我的桌面上有一个文件,它有 100 多个子文件夹,所有子文件夹都分支出来以组织大量 PDF。我正在尝试制作一个使用 GUI 来更好地访问和打开这些 PDF 的应用程序。 Treeview 将是完美的,但我无法弄清楚如何使用按钮以外的任何东西实际打开文件。有人可以告诉我如何使用这些来查找文件路径并打开 pdf 吗?谢谢
编辑:
基本上,我有一棵看起来像这样的树:
tree = ttk.Treeview(vender_class)
tree.pack(fill=BOTH)
tree.insert(parent='', index='end', iid=1, text="Thresholds")
tree.insert(parent='1', index='end', iid=2, text="Butt Hung")
tree.insert(parent='2', index='end', iid=3, text="THBH")
tree.insert(parent='1', index='end', iid=4, text="Center Hung")
tree.insert(parent='4', index='end', iid=5, text="THCH")
tree.insert(parent='1', index='end', iid=6, text="Offset Hung")
tree.insert(parent='6', index='end', iid=7, text="THOH")
tree.insert(parent='1', index='end', iid=8, text="Other")
tree.insert(parent='8', index='end', iid=9, text="THO")
open_button=ttk.Button(vender_class, text="Open PDF", command=openfile)
open_button.pack()
我希望能够简单地双击最终项目(即“THBH”)并在 Bluebeam 上打开 PDF。如果这不起作用,那么您如何 link 将其连接到按钮,以便如果选择“THBH”并按下按钮,它会以这种方式打开 PDF?
首先为双击打开 PDF 的行附加一个特定的标签。
然后在Treeview
小部件上绑定双击事件,然后在回调中检查双击的项目是否有特定的标签。如果有,则根据点击项的text
打开PDF文件。
tree.insert(parent='', index='end', iid=1, text="Thresholds")
tree.insert(parent='1', index='end', iid=2, text="Butt Hung")
tree.insert(parent='2', index='end', iid=3, text="THBH", tags='pdf')
tree.insert(parent='1', index='end', iid=4, text="Center Hung")
tree.insert(parent='4', index='end', iid=5, text="THCH", tags='pdf')
tree.insert(parent='1', index='end', iid=6, text="Offset Hung")
tree.insert(parent='6', index='end', iid=7, text="THOH", tags='pdf')
tree.insert(parent='1', index='end', iid=8, text="Other")
tree.insert(parent='8', index='end', iid=9, text="THO", tags='pdf')
def on_double_click(event):
iid = tree.focus() # get the iid of the selected item
tags = tree.item(iid, 'tags') # get tags attached
if 'pdf' in tags:
text = tree.item(iid, 'text') # get the text of selected item
print('open PDF for', text)
# open PDF based on text
...
tree.bind('<Double-Button-1>', on_double_click)
我的桌面上有一个文件,它有 100 多个子文件夹,所有子文件夹都分支出来以组织大量 PDF。我正在尝试制作一个使用 GUI 来更好地访问和打开这些 PDF 的应用程序。 Treeview 将是完美的,但我无法弄清楚如何使用按钮以外的任何东西实际打开文件。有人可以告诉我如何使用这些来查找文件路径并打开 pdf 吗?谢谢
编辑:
基本上,我有一棵看起来像这样的树:
tree = ttk.Treeview(vender_class)
tree.pack(fill=BOTH)
tree.insert(parent='', index='end', iid=1, text="Thresholds")
tree.insert(parent='1', index='end', iid=2, text="Butt Hung")
tree.insert(parent='2', index='end', iid=3, text="THBH")
tree.insert(parent='1', index='end', iid=4, text="Center Hung")
tree.insert(parent='4', index='end', iid=5, text="THCH")
tree.insert(parent='1', index='end', iid=6, text="Offset Hung")
tree.insert(parent='6', index='end', iid=7, text="THOH")
tree.insert(parent='1', index='end', iid=8, text="Other")
tree.insert(parent='8', index='end', iid=9, text="THO")
open_button=ttk.Button(vender_class, text="Open PDF", command=openfile)
open_button.pack()
我希望能够简单地双击最终项目(即“THBH”)并在 Bluebeam 上打开 PDF。如果这不起作用,那么您如何 link 将其连接到按钮,以便如果选择“THBH”并按下按钮,它会以这种方式打开 PDF?
首先为双击打开 PDF 的行附加一个特定的标签。
然后在Treeview
小部件上绑定双击事件,然后在回调中检查双击的项目是否有特定的标签。如果有,则根据点击项的text
打开PDF文件。
tree.insert(parent='', index='end', iid=1, text="Thresholds")
tree.insert(parent='1', index='end', iid=2, text="Butt Hung")
tree.insert(parent='2', index='end', iid=3, text="THBH", tags='pdf')
tree.insert(parent='1', index='end', iid=4, text="Center Hung")
tree.insert(parent='4', index='end', iid=5, text="THCH", tags='pdf')
tree.insert(parent='1', index='end', iid=6, text="Offset Hung")
tree.insert(parent='6', index='end', iid=7, text="THOH", tags='pdf')
tree.insert(parent='1', index='end', iid=8, text="Other")
tree.insert(parent='8', index='end', iid=9, text="THO", tags='pdf')
def on_double_click(event):
iid = tree.focus() # get the iid of the selected item
tags = tree.item(iid, 'tags') # get tags attached
if 'pdf' in tags:
text = tree.item(iid, 'text') # get the text of selected item
print('open PDF for', text)
# open PDF based on text
...
tree.bind('<Double-Button-1>', on_double_click)