【问题标题】:Python 3 - ttk.treeview does not working with grid, why this happening?Python 3 - ttk.treeview 不适用于网格,为什么会这样?
【发布时间】:2017-10-13 04:50:13
【问题描述】:

绅士的

以下代码一直在使用.pack(),但不适用于.grid()

treeview 启用 .pack() 时滚动条工作,但如果我更改 .grid() 的代码,滚动条停止工作,则代码有可能与 .grid() 一起工作

from tkinter import *
from tkinter  import ttk

class App(object):
    def run(self):
        root=Tk()
        root.geometry('768x612')
        title='dp'
        root.title(title)
        head_columns = (
            "ID CLIENTE", 
            "NOME", 
            "CPF", 
            "DATA Expedição CPF", 
            "RG", 
            "DATA Expedição RG", 
            "ENDEREÇO", 
            "NÚMERO", 
            "BAIRRO", "CIDADE", "ESTADO", "CEP", "TEL", "CEL", "E-MAIL", "OBS")        

        f = Frame(root)
        f.pack()
        #f.grid()

        xscrollbar = Scrollbar(f, orient=HORIZONTAL)
        xscrollbar.pack(side='bottom', fill='both')

        text = ttk.Treeview(f,
                    xscrollcommand=xscrollbar.set,
                    show="headings", 
                    columns=head_columns,)
        text.pack(side='right', fill='y') #if I change this for .grid() he's not working

        for item in text["columns"]:
            text.column(item)
            text.heading(item, text=item)
        text.insert("", 0, text=item, values=("a" * 200))

        xscrollbar.config(command=text.xview)
        mainloop()
if __name__=='__main__':
    win=App()
    win.run()

【问题讨论】:

    标签: python-3.x tkinter treeview ttk


    【解决方案1】:

    我的问题已经解决了,

    .grid() 也可以与 Scrollbar 一起使用,但如果您在窗口中使用 .geometry() 固定宽度和高度,它们将不会滚动,因此我确实需要使用以下参数设置窗口调整大小,基本上你需要做你的窗口自动调整大小以进行滚动工作

    root.grid_rowconfigure(0, weight=1)
    root.grid_columnconfigure(0, weight=1)
    

    【讨论】:

    • 自己解决这个问题做得很好。为了将来参考,最好在使用网格创建 GUI 时始终配置至少一行和一列以具有权重:)
    • 是的,谢谢!我用我创建的另一个函数来做到这一点
    【解决方案2】:

    FIY

    代码已解决

    from tkinter import *
    from tkinter  import ttk
    
    class App(object):
        def run(self):
            root=Tk()
            #root.geometry('768x612')
            title='Tables'
            root.title(title)
            root.grid_rowconfigure(0, weight=1)
            root.grid_columnconfigure(0, weight=1)
            head_columns = (
                "ID CLIENTE", 
                "NOME", 
                "CPF", 
                "DATA Expedição CPF", 
                "RG", 
                "DATA Expedição RG", 
                "ENDEREÇO", 
                "NÚMERO", 
                "BAIRRO", "CIDADE", "ESTADO", "CEP", "TEL", "CEL", "E-MAIL", "OBS")        
    
            f = Frame(root)
            f.grid(sticky=NSEW)
            f.grid_rowconfigure(0, weight=1)
            f.grid_columnconfigure(0, weight=1)
    
            xscrollbar = Scrollbar(f, orient=HORIZONTAL)
            xscrollbar.grid(row=1, sticky=NSEW)
            xscrollbar.grid_rowconfigure(0, weight=1)
            xscrollbar.grid_columnconfigure(0, weight=1)
    
            text = ttk.Treeview(f,
                        xscrollcommand=xscrollbar.set,
                        show="headings", 
                        columns=head_columns)
            #text.pack(side='right', fill='y')
            text.grid(row=0,sticky=NSEW)
            text.grid_rowconfigure(0, weight=1)
            text.grid_columnconfigure(0, weight=1)        
    
            for item in text["columns"]:
                text.column(item)
                text.heading(item, text=item)
            text.insert("", 0, text=item, values=("a" * 200))
            text.insert("", 1, text=item, values=("a" * 200))
            text.insert("", 0, text=item, values=("a" * 200))
            text.insert("", 0, text=item, values=("a" * 200))
            text.insert("", 0, text=item, values=("a" * 200))
            text.insert("", 0, text=item, values=("a" * 200))
    
            xscrollbar.config(command=text.xview)
            mainloop()
    if __name__=='__main__':
        win=App()
        win.run()
    

    【讨论】:

      猜你喜欢
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多