【问题标题】:How to make a ttk treeview row/item act as a button? [closed]如何使 ttk 树视图行/项目充当按钮? [关闭]
【发布时间】:2016-04-22 12:50:05
【问题描述】:

请不要使用 Class、___init____ 等,因为这些东西都超出了我的知识和理解范围。基本上,如果有人能告诉我如何在相同的边距/缩进级别的代码中做到这一点,那将不胜感激。

在windows上使用python3.4.3

谢谢

【问题讨论】:

  • 我已经尝试了好几次来理解那段代码,但是我要求有人向我展示如何在同一缩进级别内点击一个项目;所以如上所述,没有类/函数。请和谢谢
  • 示例使用 Class 来保持代码更干净,但这并不重要。你可以在没有课的情况下以同样的方式做到这一点。您必须从示例中获取功能并分配给鼠标按钮 - 仅此而已。你可以做到的。

标签: python python-2.7 python-3.x tkinter treeview


【解决方案1】:

oystein-hr 为您提供解决方案,您可以将其用作正常功能。

基于 Byan Oakley 示例代码的示例:
https://stackoverflow.com/a/3794505/1832058

和 Bryan Oakley 建议使用 <<TreeviewSelect>>: https://stackoverflow.com/a/12064135/1832058

import tkinter as tk
from tkinter import ttk

def OnDoubleClick(event):
    item = tree.selection()
    print('item:', item)
    print('event:', event)
    item = tree.selection()[0]

    print("you clicked on", tree.item(item,"text"))

root = tk.Tk()
tree = ttk.Treeview()
tree.pack()

for i in range(10):
    tree.insert("", "end", text="Item %s" % i)

#tree.bind("<Double-1>", OnDoubleClick) # double click
#tree.bind("<Button-1>", OnDoubleClick) # single click
tree.bind("<<TreeviewSelect>>", OnDoubleClick) # single click, without "index out of range" error

root.mainloop()

没有行“充当按钮”,因为您可以单击它来运行功能。

【讨论】:

  • 完美运行!非常感谢(:
  • 我只删除了 Bryan 代码中的 self. ;)
  • 由于某种原因我不能(':,再次感谢哈哈
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2019-11-29
  • 2017-02-06
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多