精华内容
下载资源
问答
  • My environment is Windows 7 using Python 64-bit 3.4. I am trying to attach a scrollbar to a treeview widget. I have tried several versions but have been unable to get it to work. What I have tried so....

    My environment is Windows 7 using Python 64-bit 3.4. I am trying to attach a scrollbar to a treeview widget. I have tried several versions but have been unable to get it to work. What I have tried so far:

    # treeview example

    from tkinter import ttk

    from tkinter import *

    # Create instance

    win = Tk()

    # Add a title

    win.title("Treeview Test")

    # Add a treeview

    tree = ttk.Treeview(win,selectmode='browse')

    vsb = ttk.Scrollbar(orient="vertical",command=tree.yview)

    tree.configure(yscrollcommand=vsb.set)

    tree.place(x = 30, y = 95)

    tree["columns"] = ("1", "2")

    tree['show'] = 'headings'

    tree.column("1", width=100, anchor='c')

    tree.column("2", width=100, anchor='c')

    tree.heading("1", text="Account")

    tree.heading("2", text="Type")

    tree.insert("",'end',text="L1",values=("Big1","Best"))

    tree.insert("",'end',text="L2",values=("Big2","Best"))

    tree.insert("",'end',text="L3",values=("Big3","Best"))

    tree.insert("",'end',text="L4",values=("Big4","Best"))

    tree.insert("",'end',text="L5",values=("Big5","Best"))

    tree.insert("",'end',text="L6",values=("Big6","Best"))

    tree.insert("",'end',text="L7",values=("Big7","Best"))

    tree.insert("",'end',text="L8",values=("Big8","Best"))

    tree.insert("",'end',text="L9",values=("Big9","Best"))

    tree.insert("",'end',text="L10",values=("Big10","Best"))

    tree.insert("",'end',text="L11",values=("Big11","Best"))

    tree.insert("",'end',text="L12",values=("Big12","Best"))

    # Set Window Form Size and disable resizing

    win.minsize(width=1200,height=600)

    win.resizable(width=0,height=0)

    # Event Loop

    win.mainloop()

    quit()

    解决方案

    You have to place() your scrollbar in window.

    from tkinter import ttk

    import tkinter as tk

    win = tk.Tk()

    win.minsize(width=300, height=400)

    win.resizable(width=0, height=0)

    tree = ttk.Treeview(win, selectmode='browse')

    tree.place(x=30, y=95)

    vsb = ttk.Scrollbar(win, orient="vertical", command=tree.yview)

    vsb.place(x=30+200+2, y=95, height=200+20)

    tree.configure(yscrollcommand=vsb.set)

    tree["columns"] = ("1", "2")

    tree['show'] = 'headings'

    tree.column("1", width=100, anchor='c')

    tree.column("2", width=100, anchor='c')

    tree.heading("1", text="Account")

    tree.heading("2", text="Type")

    tree.insert("",'end',text="L1",values=("Big1","Best"))

    tree.insert("",'end',text="L2",values=("Big2","Best"))

    tree.insert("",'end',text="L3",values=("Big3","Best"))

    tree.insert("",'end',text="L4",values=("Big4","Best"))

    tree.insert("",'end',text="L5",values=("Big5","Best"))

    tree.insert("",'end',text="L6",values=("Big6","Best"))

    tree.insert("",'end',text="L7",values=("Big7","Best"))

    tree.insert("",'end',text="L8",values=("Big8","Best"))

    tree.insert("",'end',text="L9",values=("Big9","Best"))

    tree.insert("",'end',text="L10",values=("Big10","Best"))

    tree.insert("",'end',text="L11",values=("Big11","Best"))

    tree.insert("",'end',text="L12",values=("Big12","Best"))

    win.mainloop()

    But place() needs manual calculations of x and y. It is easier to use pack()

    from tkinter import ttk

    import tkinter as tk

    win = tk.Tk()

    win.resizable(width=0, height=0)

    tree = ttk.Treeview(win, selectmode='browse')

    tree.pack(side='left')

    vsb = ttk.Scrollbar(win, orient="vertical", command=tree.yview)

    vsb.pack(side='right', fill='y')

    tree.configure(yscrollcommand=vsb.set)

    tree["columns"] = ("1", "2")

    tree['show'] = 'headings'

    tree.column("1", width=100, anchor='c')

    tree.column("2", width=100, anchor='c')

    tree.heading("1", text="Account")

    tree.heading("2", text="Type")

    tree.insert("",'end',text="L1",values=("Big1","Best"))

    tree.insert("",'end',text="L2",values=("Big2","Best"))

    tree.insert("",'end',text="L3",values=("Big3","Best"))

    tree.insert("",'end',text="L4",values=("Big4","Best"))

    tree.insert("",'end',text="L5",values=("Big5","Best"))

    tree.insert("",'end',text="L6",values=("Big6","Best"))

    tree.insert("",'end',text="L7",values=("Big7","Best"))

    tree.insert("",'end',text="L8",values=("Big8","Best"))

    tree.insert("",'end',text="L9",values=("Big9","Best"))

    tree.insert("",'end',text="L10",values=("Big10","Best"))

    tree.insert("",'end',text="L11",values=("Big11","Best"))

    tree.insert("",'end',text="L12",values=("Big12","Best"))

    win.mainloop()

    You can always put Treeview and Scrollbar in Frame and then move this frame with place(), pack() or grid() in better place.

    展开全文
  • 我有一個Treeview在tkinter(Linux上的Python 3.6,但同樣發生在Windows上),我用它來模擬一種電子表格佈局。我的問題是,如果我在下面運行示例代碼,並調整大小說「列1」,那麼隨着「列1」變大,「列2」變小。但是,...

    我有一個Treeview在tkinter(Linux上的Python 3.6,但同樣發生在Windows上),我用它來模擬一種電子表格佈局。我的問題是,如果我在下面運行示例代碼,並調整大小說「列1」,那麼隨着「列1」變大,「列2」變小。但是,如果我將最後的列拖出到右側,滾動條將展開,現在我可以調整第1列的大小而不更改第2列的大小(而是整個樹視圖展開)。如果您再調整第1列的大小,直到所有列都適合視圖,則行爲似乎會恢復到原始狀態。Python tkinter treeview列大小

    是什麼導致了這種行爲改變?兩者,我怎樣才能阻止它,以及如何確保它是默認的?

    最小工作例如:

    import tkinter as tk

    import tkinter.ttk as ttk

    root = tk.Tk()

    root.columnconfigure(0, weight=1)

    root.rowconfigure(0, weight=1)

    tree = ttk.Treeview(root)

    tree["show"] = "headings"

    tree["columns"] = list(range(3))

    for i in range(3):

    tree.heading(i, text="Column {}".format(i))

    for i in range(5):

    tree.insert('', "end", i)

    tree.grid(row=0, column=0, sticky=(tk.N, tk.S, tk.E, tk.W))

    xs = ttk.Scrollbar(root, orient=tk.HORIZONTAL, command=tree.xview)

    tree["xscrollcommand"] = xs.set

    xs.grid(row=1, column=0, sticky=(tk.E, tk.W))

    root.mainloop()

    展开全文
  • 若想获取Treeview中 选中 的值或者条目,可以用这里的方法https://blog.csdn.net/sinat_27382047/article/details/80161637然后我输入了treeview.bind(’’, OnTreeClick)然后会发现,第一次点击时返回的是空值,...

    若想获取Treeview中 选中 的值或者条目,可以用这里的方法

    https://blog.csdn.net/sinat_27382047/article/details/80161637

    然后我输入了

    treeview.bind(’’, OnTreeClick)

    然后会发现,第一次点击时返回的是空值,之后每次点击的值都是上一次点击的值。也就是说点击获取的值总是延迟了一次才出现。

    然后一点点找区别,发现问题在于鼠标事件。

    只能用,不能用或者这样在按下时触发的事件

    这种问题真的很影响体验。

    不懂 Treeview.selection()中返回的self.tk.splitlist(self.tk.call(self._w, “selection”, selop, items))具体的实现原理,估计原因在于Treeview更新selected item(更新后紧接着就高亮显示选中行)的时机在鼠标“按下”事件之后,而鼠标“按下”后优先做的是bind()所绑定的方法,而不是更新Treeview的选中项。就是这种奇怪的顺序,才导致第一次按下时获取不到选中项,而下一次按下时Treeview中保存的还是上一次按下后的旧的对象。

    展开全文
  • 我一直在使用这里找到的代码:几年来成功地格式化了Treeview数字列。但是当我使用循环插入列时,列显示的是第一列中的数据,而不是我希望从ListStore中获取的数据。为什么会这样?我已经为此挣扎了一段时间了,这...

    我一直在使用这里找到的代码:

    几年来成功地格式化了Treeview数字列。但是当我使用循环插入列时,列显示的是第一列中的数据,而不是我希望从ListStore中获取的数据。为什么会这样?我已经为此挣扎了一段时间了,这可能是一个非常简单的解决方案,但我相当无知!!非常感谢你。下面是一个可以说明我的问题的有效示例:from gi.repository import Gtk, Gdk

    class myClass:

    def __init__(self):

    # Setup

    self.iListstore = Gtk.ListStore(str, float, float, float, float)

    self.iListstore.append(['abc',209.8967,568.56432, 1, 2])

    self.iListstore.append(['def',2409.846,559.534, 3, 4])

    self.window = Gtk.Window()

    self.iTreeView = Gtk.TreeView(self.iListstore)

    # Column 0

    lblr= Gtk.CellRendererText()

    lcol = Gtk.TreeViewColumn('Row Label')

    self.iTreeView.append_column(lcol)

    lcol.pack_start(lblr, True)

    lcol.add_attribute(lblr, 'text',0)

    # Column 1

    cr = Gtk.CellRendererText(xalign=1)

    myCol = Gtk.TreeViewColumn('Col1')

    myCol.set_sort_column_id(1)

    self.iTreeView.append_column(myCol)

    myCol.pack_start(cr, True)

    myCol.add_attribute(cr, 'text',1)

    myCol.set_cell_data_func(cr,lambda column, cell, model, iter, unused:cell.set_property("text","{0:.2f}".format(round(model.get(iter,1)[0],2))))

    # Column 2

    myCol = Gtk.TreeViewColumn('Col2')

    myCol.set_sort_column_id(2)

    self.iTreeView.append_column(myCol)

    myCol.pack_start(cr, True)

    myCol.add_attribute(cr, 'text',2)

    myCol.set_cell_data_func(cr,lambda column, cell, model, iter, unused:cell.set_property("text","{0:.2f}".format(round(model.get(iter,2)[0],2))))

    # The above works but the following does not. Col3 has the same value as Col4. Can someone tell me the reason a loop can not be used with the code?

    colNames=['Col3','Col4']

    for i in range(3,5):

    myCol = Gtk.TreeViewColumn(colNames[i-3]) # I realize this is a bit of a fudge

    myCol.set_sort_column_id(i)

    self.iTreeView.append_column(myCol)

    myCol.pack_start(cr, True)

    myCol.add_attribute(cr, 'text',i)

    myCol.set_cell_data_func(cr,lambda column, cell, model, iter, unused:cell.set_property("text","{0:.2f}".format(round(model.get(iter,i)[0],2))))

    # Window

    self.window.add(self.iTreeView)

    self.window.show_all()

    def main(self):

    Gtk.main()

    p=myClass()

    p.main()

    展开全文
  • 先贴代码,python2.7#!/usr/bin/env python# -*- coding:utf-8 -*-import ttkfrom Tkinter import *class tktree(object):def __init__(self,tks):self.tks=tksself.pidlist={}##清空位置ID列表def clearpidlist...
  • Python Treeview标题栏排序和控件之间记录调用的应用体会 在Python调用数据库记录时,有时需要用到Treeview控件来组织管理记录。在Treeview数据排列和其他控件调用Treeview选择的记录并显示出来,本人试着编写代码...
  • 在#-*- encoding: utf8 -*- from Tkinter import * from ttk import Treeview import xmltodict class App: def __init__(self, root): try: self.tagsoup = xmltodict.parse(file(sys.argv[1],'r').read()) self....
  • 我有一个TreeView,单击它时收到错误消息:Traceback (most recent call last):File "pyparty.py", line 76, in get_selected_userself.selected_user = tree_model.get_value(tree_iter, 0)TypeError: iter must be ...
  • 找半天找到个参考:https://stackoverflow.com/questions/32511843/delete-and-edit-items-in-treeview-tkinter对于你的代码:importtkinterfromtkinterimportttk#导入内部包li=['王记','12','男']root=tkinter.Tk()...
  • 从TkDocs tutorial到树木,似乎你可以:>...当焦点失去焦点时,从行中取消分配标签这是我使用的文档中的特定段落:The treeview will generate virtual events "", ""and "" which allow you to monitor ...
  • 先上图再上代码:import ttkfrom Tkinter import *root = Tk()tree = ttk.Treeview(root, columns=('col1','col2','col3'))tree.column('col1', width=100, anchor='center')tree.column('col2', width=100, anchor=...
  • 几个月前我也有同样的问题.You can assign a list of tags to each item using the "tags"item configuration option (again, when creating the item or later on).Tag configuration options can then be ...
  • 先贴代码,python2.7#!/usr/bin/env python# -*- coding:utf-8 -*-import ttkfrom Tkinter import *class tktree(object):def __init__(self,tks):self.tks=tksself.pidlist={}##清空位置ID列表def clearpidlist...
  • 我试图在选择事件发生时返回tkinter treeview选择的父对象,因此如果选择更改为“child”,我希望它打印“parent”,工作示例如下,当前它打印的是选择,而不是选择的父对象:try:import tkinter as tkimport ...
  • 前tkinter的确算是比较老了,不可以用json直接生成treeview。那么动手自己搞一个吧。目标是类似这样子的:json格式化语法先看treeview 的相关基础, 这个网站里面就很不错了。treeview的基本例子当然, 也要结合一下...
  • 做角色菜单权限时用到treeview控件做树状显示菜单,简单总结了一下用法:1.在winform窗体中拖入treeview控件,注意修改属性CheckBoxes属性为true,即在节点旁显示复选框2.后台动态加载数据库数据绑定到treeview上,...
  • 是否可以永久设置treeview的大小并用水平条滚动列?目前屏幕可能太小。显示数据内容。在这是我的消息来源def wczytaj_dane(page):ok = Toplevel()width_of_window = 1030height_of_window = 570screen_width = ok....
  • python中tkinter treeview如何获取选中的条目小编做了一个树形的列表,如何在lable上实时显示小编选中的条目?小编用tree.b定义这样的函数去专门取tree上的值 def selectItem(a): curItem = tree.focus() print tree...
  • 如果您想在用户双击时发生某些事情,请将绑定添加到“<...例如:import tkinter as tkfrom tkinter import ttkclass App:def __init__(self):self.root = tk.Tk()self.tree = ttk.Treeview()s...
  • It looks like the only way to get the selected item of a gtk.TreeView() is to actually click on it :tree_selection = self.treeview.get_selection()tree_selection.connect('changed', self.my_callback)sel...
  • 这是一个带有ttk treeview的Tk小部件。当用户单击该行时,会执行一些函数(这里只打印项目文本)。我需要的是:最初的焦点是文本输入。当用户按Tab键时,焦点应该转到第一行,并执行与Click event绑定的函数。在当用户...
  • 作者:Zarten知乎专栏:Python爬虫深入详解知乎ID: Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !介绍Redis是一个开源的基于内存也可持久化的...
  • /usr/bin/python3 # -*- coding: utf-8 -*- # tkinter modules import tkinter as tk import tkinter.ttk as ttk class App(ttk.Frame): def __init__(self, master, **kw): self.SortDir = True #f = ttk.Frame...
  • python 网页解析器 1、常见的python网页解析工具有:re正则匹配、python自带的html.parser模块、第三方库BeautifulSoup(重点学习)以及lxm库。 2、常见网页解析器分类 (1)模糊匹配 :re正则表达式即为字符串式的...
  • _init__(self): Frame.__init__(self) self.pack() self.listbox() self.buttons() def listbox(self): global new_customer_lb scrollbar = Scrollbar(self, orient="vertical") new_customer_lb = ttk.Treeview...
  • 前几天学习了一下python的turtle库,它是python中一个绘制图像的函数库,用海龟可以画出各种图像,学习之后我画了可爱的小黄人,和太阳等图案,觉得很好玩很有趣,在这里想介绍一下turtle的使用详解,感兴趣或者需要...
  • 虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化修改文档1. 自定义样式python可以自定义三类样式段落样式字符样式表格样式(一般用不...
  • 我有一个显示发票相关数据的树状...在我使用treeview或检索行数据的方式是用户选择的导致问题的原因吗?或者,对于GUI显示与检索到的带有下划线字符的值之间的差异,是否有其他解释?在我使用的是python3.6和tkint...
  • tree = ttk.Treeview(window, columns=('1', '2', '3', '4', '5'), show="headings",yscrollcommand=yscrollbar.set) tree.column('1', width=150, anchor='center') tree.column('2', width=150, anchor='...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 359
精华内容 143
关键字:

pythontreeview

python 订阅