tkin中标签框的滚动条

2024-06-16 10:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个窗口滚动条在我的图形用户界面创建使用tk.顶层. 目前,框架通常会填满一个又一个的长网格。GUI的其余部分允许用户写入一系列使用网格显示的字段。在

数据可能如下所示:

sadas sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf

sadas sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf

sadas sfafaf fsaafads fdsafsf dfsfdsf fssfs fsfsfsfs fsfsfs sfsfsfs fsssfsfsf

我用了这篇文章:Adding a scrollbar to a group of widgets in Tkinter作为一个指南,来了解我现在的处境。目前,当我打开窗口时,滚动条出现在左侧。一旦我添加一行,GUI就会冻结,我必须关闭它。在

以下是相关代码:

class data_popup():
    def __init__(self, parent):
        self.parent = parent
        self.top = tk.Toplevel(parent)
        self.top.title("Current Data")
        self.top.protocol('WM_DELETE_WINDOW', self.stop_close)
        #Frames
        self.header_labels_frame = tk.Frame(self.top)
        self.header_labels_frame.pack(side = tk.TOP)
        self.data_frame_1 = tk.Frame(self.top)
        self.data_frame_1.pack(side = tk.BOTTOM)        
        self.header_labels_list = []


        self.data_canvas = tk.Canvas(self.data_frame_1, borderwidth = 0)
        self.data_frame = tk.Frame(self.data_canvas)
        self.scrollbar = tk.Scrollbar(self.data_frame, orient = 'vertical', command = self.data_canvas.yview)
        self.data_canvas.configure(yscrollcommand = self.scrollbar.set)
        self.scrollbar.pack(side = 'right', fill = 'y')
        self.data_canvas.pack(side = "bottom", fill = 'both', expand = True)
        self.data_canvas.create_window((4,4), window = self.data_frame, anchor = 'nw', tags = "self.frame")
        self.data_frame.bind("<Configure>", self.myfunction)
        self.create_header()
        self.data_row_list = list()

    def myfunction(self, event):
        self.data_canvas.configure(scrollregion=self.data_canvas.bbox("all"))

Tags: selfdatatopframesidepacktkparent
2条回答

通常,当GUI以您描述的方式冻结时,这是因为您在同一个框架中同时使用grid和{}。你没有显示代码在哪里你添加了一些东西到框架,但我猜,这就是正在发生的事情。在

对于那些在google上找到这篇文章的人来说,我可以使用这篇文章中的信息来完成我需要的Adding a scrollbar to a frame using Tkinter (Python)

相关问题 更多 >