python treeview 滚动条隐藏,python – 如何使用Tkinter将水平和垂直滚动条附加到树视图?...

我一直试图为tkinter树视图附加水平和垂直滚动条.在我的主应用程序中,所有数据都来自sql数据库,因此我需要能够在sperate窗口中滚动大量数据.我已经设法将树视图放在子窗口中,但是我仍然坚持如何附加有效的滚动条.

虽然目前有一个垂直滚动条,但它似乎没有连接到树视图,也没有滚动浏览我输入的任何数据.

有没有办法在我的应用程序中放置垂直和水平滚动条?

import Tkinter as tk

import os

import sys

import re

import ttk

from Tkinter import *

import tkFont

class application(tk.Tk):

def __init__(self, *args, **kwargs):

tk.Tk.__init__(self, *args, **kwargs)

container = tk.Frame(self)

container.pack(side="top", fill="both", expand = True)

container.grid_rowconfigure(0, weight=1)

container.grid_columnconfigure(0, weight=1)

self.frames = {}

for F in (app_one, app_two):

frame = F(container, self)

self.frames[F] = frame

frame.grid(row=0, column=0, sticky="nsew")

self.show_frame(app_one)

def show_frame(self, cont):

frame = self.frames[cont]

frame.tkraise()

class app_one(tk.Frame):

def __init__(self, parent, controller):

tk.Frame.__init__(self,parent)

button = ttk.Button(self, text="Page One", command=lambda: controller.show_frame(app_two))

button.pack()

class app_two(tk.Frame):

def __init__(self, parent, controller):

tk.Frame.__init__(self, parent)

self.controller=controller

self.msgText = tk.StringVar()

button = ttk.Button(self, text="Open", command= self.Child_Window)

button.pack()

def Child_Window(self):

win2 = Toplevel()

new_element_header=['1st','2nd','3rd','4th']

treeScroll = ttk.Scrollbar(win2)

treeScroll.pack(side=RIGHT, fill=Y)

tree = ttk.Treeview(win2,columns=new_element_header, show="headings", yscrollcommand = treeScroll)

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

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

tree.heading("3rd", text="3rd")

tree.heading("4th", text="4th")

tree.insert("" , 0, text="Line 1", values=("1A","1b"))

tree.insert("" , 0, text="Line 2", values=("1A","1b"))

tree.insert("" , 0, text="Line 3", values=("1A","1b"))

tree.insert("" , 0, text="Line 4", values=("1A","1b"))

tree.insert("" , 0, text="Line 5", values=("1A","1b"))

tree.insert("" , 0, text="Line 6", values=("1A","1b"))

tree.insert("" , 0, text="Line 7", values=("1A","1b"))

tree.pack(side=LEFT, fill=BOTH)

treeScroll.config(command=tree.yview)

app = application()

app.wm_geometry("420x200")

app.wm_title("Test")

app.mainloop()

解决方法:

您可以将滚动条连接到Treeview小部件,就像对任何其他可滚动小部件一样.

在垂直滚动条的情况下,小部件的yscrollcommand属性需要设置为滚动条的设置功能(或者像它一样工作的东西).此外,滚动条的命令属性需要设置为树的yview方法(或者像它一样工作的东西)

例如:

treeScroll = ttk.Scrollbar(...)

tree = ttk.Treeview(...)

treeScroll.configure(command=tree.yview)

tree.configure(yscrollcommand=treeScroll.set)

配置水平滚动条是类似的,当然它需要绑定到xview方法而不是树的yview方法.

标签:python,tkinter,treeview

来源: https://codeday.me/bug/20190829/1762407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值