Python Tkinter Tix : How to use ScrolledWindow with grid in Tix NoteBook

标签 python grid scrolledwindow tix

我正在向位于 tix.NoteBook 中的框架添加几个小部件。当窗口中有太多小部件无法容纳时,我想使用滚动条,因此我将 tix.ScrolledWindow 放入该框架内,并将我的小部件添加到此 ScrolledWindow 中。

问题是,当使用grid()几何管理器时,滚动条出现,但它不起作用(拖动条占据了整个滚动条)。

from Tkinter import *
import Tix

class Window:

    def __init__(self, root):

        self.labelList = []
        self.notebook = Tix.NoteBook(root, ipadx=3, ipady=3) 
        self.notebook.add('sheet_1', label="Sheet 1", underline=0) 
        self.notebook.add('sheet_2', label="Sheet 2", underline=0)
        self.notebook.add('sheet_3', label="Sheet 3", underline=0)
        self.notebook.pack()
        #self.notebook.grid(row=0, column=0)

        tab1=self.notebook.sheet_1
        tab2=self.notebook.sheet_2
        tab3=self.notebook.sheet_3



        self.myMainContainer = Frame(tab1)
        self.myMainContainer.pack()
        #self.myMainContainer.grid(row=0, column=0)

        scrwin = Tix.ScrolledWindow(self.myMainContainer, scrollbar='y') 
        scrwin.pack()
        #scrwin.grid(row=0, column=0) 
        self.win = scrwin.window


        for i in range (100):
            self.labelList.append((Label(self.win)))
            self.labelList[-1].config(text= "Bla", relief = SUNKEN)
            self.labelList[-1].grid(row=i, column=0, sticky=W+E)

root = Tix.Tk()
myWindow = Window(root)

root.mainloop()

每当我将至少一个几何管理器从 pack() 更改为 grid() 时,就会出现问题。 (实际上,我更喜欢对所有容器使用 grid()。)

当我不使用 NoteBook 小部件时,也不会出现该问题。这里的其他示例似乎都依赖于 pack()。 有什么想法吗?
非常感谢,
佐野

最佳答案

我在没有使用“tix.scrolledWindow”的情况下解决了这个问题。相反,我选择了 Fred Lundh here 建议的自动滚动条。 。 主要问题是对 NoteBook 小部件的适应。首先,我尝试将滚动条放在根部,以便它们包围整个窗口。现在,每当我更改选项卡时,我都想更改滚动条的 Hook ,但笔记本的“raisecmd”不起作用。接下来,我想到在每个选项卡上使用配置事件 - 每当出现新选项卡时,其大小都会发生变化并调用配置。
好吧,经过多次尝试但仍不满意后,我改变了方法,将滚动条放在选项卡的内部。选项卡和所有子容器必须获得“grid_columnconfigure(0,weight=1)”和“grid_rowconfigure(0,weight=1)”设置,否则它们将不会随选项卡一起增长。

关于Python Tkinter Tix : How to use ScrolledWindow with grid in Tix NoteBook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575451/

相关文章:

python - 相邻矩阵中的度中心性和聚类系数

grid - Semantic UI - ui 网格布局的最佳方法(行/列与段)

javascript - 在 ExtJS 中突出显示/选择网格行

css - CSS 网格中的装订线宽度

python - Gtk.ScrolledWindow 没有水平滚动条

c# - 滚动窗口中的 Gtk Expander : The width of the scrolledwindow doesn't update

python - 对多个符号变量使用 Lambdify

python - 如何更改 turtle 的颜色,而不是笔的颜色?

python - 如何从用于在 tensorflow 服务中加载多个模型的自定义模型配置文件中删除模型详细信息?