python treeview控件使用详解(python中tkinter treeview如何获取选中的条目)
本文目录
- python中tkinter treeview如何获取选中的条目
- Python里用tkinter.ttk.Treeview表格组件,怎么让其显示图片
- python3 中tk有一控件treeview,有什么其他库的控件可替代吗
- 如何用python实现QTreeView或QTreeWidget
- python ttk.treeview如何在不选中的情况下用按钮直接改某个单元格的数值
- 谢谢大家 c# winfrom treeview 的所有节点都左对齐(跟节点,子节点)
python中tkinter treeview如何获取选中的条目
定义这样的函数去专门取tree上的值def selectItem(a):curItem = tree.focus()print tree.item(curItem)它返回一个字典类型的集合,你只要遍历字典就可以把你需要的值取出来。。。
Python里用tkinter.ttk.Treeview表格组件,怎么让其显示图片
你好,下面是使用tkinter.ttk.Treeview来显示图片到第一列的一个例子,你可以看看
import tkinter as tkimport tkinter.ttk as ttkclass App(ttk.Frame): def __init__(self, parent=None, *args, **kwargs): ttk.Frame.__init__(self, parent) self.parent = parent # Create Treeview self.tree = ttk.Treeview(self, column=(’A’,’B’), selectmode=’none’, height=7) self.tree.grid(row=0, column=0, sticky=’nsew’) # Setup column heading self.tree.heading(’#0’, text=’ Pic directory’, anchor=’center’) self.tree.heading(’#1’, text=’ A’, anchor=’center’) self.tree.heading(’#2’, text=’ B’, anchor=’center’) # #0, #01, #02 denotes the 0, 1st, 2nd columns # Setup column self.tree.column(’A’, anchor=’center’, width=100) self.tree.column(’B’, anchor=’center’, width=100) # Insert image to #0 self._img = tk.PhotoImage(file="20190116115007169.gif") #change to your file path self.tree.insert(’’, ’end’, text="#0’s text", image=self._img, value=("A’s value", "B’s value"))if __name__ == ’__main__’: root = tk.Tk() root.geometry(’450x180+300+300’) app = App(root) app.grid(row=0, column=0, sticky=’nsew’) root.rowconfigure(0, weight=1) root.columnconfigure(0, weight=1) root.mainloop()
python3 中tk有一控件treeview,有什么其他库的控件可替代吗
使用TreeView控件:
可以显示分层数据,例如索引条目,磁盘上的目录,文档中的标题等。
可以选择,节点管理数据,以及用于显示简单的文字,图像,和其他的元素,比如复选框。
可以使用智能标记和上下文菜单从设计窗体访问集合器。集合器允许添加,删除节点和列而不用编写代码。
如何用python实现QTreeView或QTreeWidget
用QFileSystemModel:
#include 《QApplication》#include 《QFileSystemModel》#include 《QTreeView》int main(int argc, char *argv){ QApplication app(argc, argv); QFileSystemModel model; model.setRootPath(QDir::rootPath()); QTreeView tree; tree.setModel(&model); tree.setRootIndex(model.index(QDir::rootPath())); tree.setHeaderHidden(true); tree.setColumnHidden( 1, true ); tree.setColumnHidden( 2, true ); tree.setColumnHidden( 3, true ); tree.show(); return app.exec();}
python ttk.treeview如何在不选中的情况下用按钮直接改某个单元格的数值
import tkinter as tkfrom tkinter import messageboxfrom tkinter import ttkfrom tkinter import *class productdata(object):def __init__(self):self.root = tk.Tk() #初始化self.root.title(’数据方舟’) #修改窗体名称self.root.resizable(width=False,height=False) #窗体界面宽高可调self.root.geometry(’900x500’) #窗体默认大小self.canvas = tk.Canvas(self.root,width=’1200’,height=’1200’)self.image_file = tk.PhotoImage(file = "beijing.gif")self.image = self.canvas.create_image(0,0,anchor=’nw’,image=self.image_file)self.canvas.pack(side=’top’)#定义一个变量监控删除行数self.delhang=0#添加一个表格columns = ("字段类型", "字段长度", "小数位数", "是否唯一", "字段名称")self.treeview = ttk.Treeview(self.root, height=18, show="headings", columns=columns)# 表示列,不显示self.treeview.column("字段类型", width=100, anchor=’center’)self.treeview.column("字段长度", width=100, anchor=’center’)self.treeview.column("小数位数", width=100, anchor=’center’)self.treeview.column("是否唯一", width=100, anchor=’center’)self.treeview.column("字段名称", width=100, anchor=’center’)# 显示表头self.treeview.heading("字段类型", text="字段类型")self.treeview.heading("字段长度", text="字段长度")self.treeview.heading("小数位数", text="小数位数")self.treeview.heading("是否唯一", text="是否唯一")self.treeview.heading("字段名称", text="字段名称")# 写入数据self.type = self.long = self.decimal = self.only = self.name = for i in range(min(len(self.type), len(self.long), len(self.decimal), len(self.only), len(self.name))):self.treeview.insert(’’, i, values=(self.type))# 双击左键进入self.treeview.bind(’《Double-1》’, self.set_cell_value)#添加一个’添加字段’按钮self.add_field_button = ttk.Button(self.root,text=’添加字段’,width=10, command=self.newrow)# 添加一个’删除字段’按钮self.del_field_button = ttk.Button(self.root,text=’删除字段’,width=10, command=self.delrow)#添加一个’清空字段’按钮self.delall_field_button = ttk.Button(self.root,text=’清空字段’,width=10,command=self.delall)def buju(self):#添加按钮self.add_field_button.place(x=780,y=40)#删除按钮self.del_field_button.place(x=780,y=80)#清空按钮self.delall_field_button.place(x=780,y=120)#表格布局self.treeview.place(x=0, y=2, width=750, height=200)def set_cell_value(self,event):for item in self.treeview.selection():# item = I001item_text = self.treeview.item(item, "values")# print(item_text) # 输出所选行的值column = self.treeview.identify_column(event.x) # 列row = self.treeview.identify_row(event.y) # 行cn = int(str(column).replace(’#’, ’’))rn = int(str(row).replace(’I’, ’’))-self.delhangentryedit = Text(self.root, width=10, height=1)entryedit.place(x=20 + (cn - 1) * 150, y=6 + rn * 20)def saveedit():self.treeview.set(item, column=column, value=entryedit.get(0.0, "end"))entryedit.destroy()okb.destroy()okb = ttk.Button(self.root, text=’OK’, width=4, command=saveedit)okb.place(x=90 + (cn - 1) * 150, y=2 + rn * 20)def newrow(self):self.type.append(’输入字段类型’)self.long.append(’输入字段长度’)self.decimal.append(’输入小数位数’)self.only.append(’是否唯一’)self.name.append(’请输入字段长度’)self.treeview.insert(’’, len(self.type) - 1, values=(self.type,self.long,self.decimal,self.only,self.name))self.treeview.update()def delrow(self):selected_items = self.treeview.selection()for item in selected_items:self.treeview.delete(item)self.delhang +=1def delall(self):all_items = self.treeview.get_children()for item in all_items:self.treeview.delete(item)self.delhang =0def main():#初始化对象p = productdata()#进行布局p.buju()tk.mainloop()if __name__=="__main__":main()
谢谢大家 c# winfrom treeview 的所有节点都左对齐(跟节点,子节点)
treeView控件是在VFP的数据处理中很有用的一个ActiveX 控件,但是VFP的帮助中却没有相关的说明,为帮助大家对这一控件有一个详细的了解,现将TreeView控件应用详解如下: 一、概述 TreeView控件显示Node对象的分层列表,每个Node对象均由一个标签和一 个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。创建了TreeView控件之后,可以通过设置属性与调用方法对各Node对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。Collapse、Expand和NodeClick三个事件也提供编程功能。 Node对象使用Root、Parent、Child、FirstSibling、Next、Previous和 LastSibling属性。在代码中可通过检索对Node对象的引用,从而在树上定位。也可以使用键盘定位。UP ARROW键和DOWN ARROW键向下循环穿过所有展开的Node对象。从左到右、从上到下地选择Node对象。若在树的底部,选择便跳回树的顶部,必要时滚动窗口。RIGHT ARROW键和LEFT ARROW键也穿过所有展开的Node对象,但是如果选择了未展开的 Node之后再按RIGHT ARROW键,该Node便展开;第二次按该键,选择将移向下一个Node。相反,若扩展的Node有焦点,这时再按LEFT ARROW键,该Node便折回。如果按下ANSI字符集中的键,焦点将跳转至以那个字母开头的最近的Node。后续的按该键的动作将使选择向下循环,穿过以那个字母开头的所有展开节点。 控件的外观有八种可用的替换样式,它们是文本、位图、直线和+/-号的组合,Node 对象可以任一种组合出现。 TreeView控件使用由ImageList属性指定的ImageList控件,来存储显示于Node对象的位图和图标。任何时刻,TreeView 控件只能使用一个ImageList。这意味着,当 TreeView控件的Style属性被设置成显示图象的样式时,TreeView控件中每一项的旁边都有一个同样大小的图象。 发行注意TreeView控件是COMCTL32.OCX文件中的一组ActiveX控件的一部分。为了在应用程序中使用TreeView控件,必须将COMCTL32.OCX文件添加到工程中。在发行应用程序时,要在用户的Microsoft Windows System或System32目录中安装COMCTL32.OCX文件。 二、常用属性 1、Nodes属性返回对TreeView控件的Node对象的集合的引用。 语法:object.Nodes ? ject所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。 说明:可以使用标准的集合方法(例如:Add和Remove方法)操作Node对象。可以按其索引或存储在Key属性中的唯一键来访问集合中的每个元素。 2、Style属性返回或设置图形类型(图象、文本、+/-号、直线)以及出现在 TreeView 控件中每一Node对象上的文本的类型。 语法:object.Style Sorted属性语法包含下面部分:部分 描述 object 对象表达式,其值是“应用于”列表中的一个对象。 boolean 布尔表达式,表示 Node 对象是否已被排序如“设置值”中描述。 boolean的设置值是:设置值 描述 True Node 对象根据它们的 Text 属性按字母顺序排列。其 Text 属性由数字开始的 Node 对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面的数字确定以后的排序。 False Node 对象不排序。 说明:Sorted属性有两种用法,第一,在TreeView控件的根(顶)层排列Node对象,第二,对任何单个Node对象的立即子节点排序。 例如,下面的代码是对TreeView控件的根节点排序: TreeView1.Sorted = True 顶层Node对象被排序。 下面的例子表示创建Node对象时如何设置Sorted属性: Dim nodX As Node Set nodX = TreeView1.Nodes.Add(,,,"Parent Node") nodX.Sorted = True 设置 Sorted 属性为True仅对当前Nodes集合排序。在TreeView控件中添加新的Node对象时,必须再次设置 Sorted 属性为 True,以便对添加的 Node 对象排列。 三、常用方法 1、Add 方法在Treeview控件的Nodes集合中添加一个Node对象。 语法: object.Add(relative, relationship, key, text, image, selectedimage) Add 方法的语法包含下面部分: 部分 描述 object 必需的。对象表达式,其值是“应用于”列表中的一个对象 relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。 relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。 key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。 text 必需的。在 Node 中出现的字符串。 image 可选的。在关联的 ImageList 控件中的图象的索引。 selectedimage 可选的。在关联的 ImageList 控件中的图象的索引,在 Node 被选中时显示。 设置值 relationship 的设置值是:常数 值 描述 tvwFirst 0 首的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之前。 tvwLast 1 最后的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后 tvwNext 2 (缺省)下一个节点。该 Node 位于在 relative 中被命名的节点之后。 tvwPrevious 3 前一个节点。该 Node 位于在 relative 中被命名的节点之前。 tvwChild 4 (缺省)子节点。该 Node 成为在 relative 中被命名的节点的子节点。 注意:如果在relative中没有被命名的Node对象,则新节点被放在节点顶层的最后位置。 说明:Nodes 集合是一个基于 1 的集合。在添加Node对象时,它被指派一个索引号,该索引号被存储在Node对象的Index属性中。这个最新成员的Index属性值就是Node集合的Count属性的值。因为Add方法返回对新建立的Node对象的引用,所以使用这个引用来设置新Node的属性十分方便。 2、GetVisibleCount方法返回固定在 TreeView 控件的内部区域的 Node 对象的个数。 语法:object.GetVisibleCount object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。 说明: Node 对象的个数取决于在一个窗口中能固定多少行。总的行数取决于控件的高度和 Font 对象的 Size 属性。该计数包括列表底部的只能看到一局部的项。可以使用 GetVisibleCount 属性确保可视的最小行数,这样可以精确地访问一个层。如果最小行数是不可视的,可以用Height属性重新设置TreeView的大小。 四、常用事件 NodeClick事件在一个Node对象被单击时,这个事件便发生。 语法:Private Sub object_NodeClick(ByVal node As Node) NodeClick事件的语法包含下面部分:部分 描述 object 对象表达式,其值是“应用于”列表中的一个对象。 node 对被点取的 Node 对象的引用。 说明:在单击节点对象之外的TreeView控件的任何部位,标准的Click事件发生。当单击某个特定的Node对象时,NodeClick事件发生;NodeClick事件也返回对特定的Node对象的引用,在下一步操作之前,这个引用可用来使这个Node对象可用。 NodeClick事件发生在标准的Click事件之前。
更多文章:
quartz插件怀旧服(WOW怀旧服quartz插件 施法时间是倒计时的)
2024年8月5日 23:30
哪里有中医大学视频教程(想自学中医,有什么好的中医指导视频或者直播讲解)
2024年7月13日 17:50
程序员怎么免费看视频(百战程序员的Java视频在哪里能看,是否免费)
2024年10月22日 05:55
transmit和transfer(transmit transfer transit 之间有什么区别)
2024年7月15日 13:26
delete语句会把表删完吗(不带条件的SQL DELETE 命令将删除指定表的哪些记录)
2024年10月13日 12:00
echarts中文乱码(echarts的toolbox中可以重新定义 feature的title吗)
2024年7月14日 11:08
php虚拟主机管理系统(windows2012 装个php集成环境,再装虚拟主机管理系统,能用吗)
2024年7月14日 05:21