首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Tkinter Tix:如何在Tix NoteBook中通过网格使用ScrolledWindow

Python Tkinter Tix:如何在Tix NoteBook中通过网格使用ScrolledWindow
EN

Stack Overflow用户
提问于 2010-04-05 02:28:13
回答 1查看 7.5K关注 0票数 1

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

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

代码语言:javascript
复制
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().,有什么想法吗?

非常感谢,

佐野

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-09 02:15:25

我没有使用´tix.scrolledWindow´就解决了这个问题。相反,我选择了Fred Lundh here推荐的自动滚动条。主要问题是对NoteBook小部件的适配。首先,我试着把滚动条放在根上,这样它们就会包围整个窗口。现在,我想在每次更改标签时更改滚动条的钩子,但Notebook的“raisecmd”不起作用。接下来,我考虑在每个选项卡上使用configure事件--每当新选项卡被引发时,它的大小就会改变,并调用configure。

好了,经过多次尝试,但始终不满意,我改变了我的方法,将滚动条放在标签中。选项卡和所有子容器必须获得´grid_columnconfigure(0,weight=1)和´grid_rowconfigure(0,weight=1)设置,否则它们将不会随选项卡一起增长。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2575451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档