为什么我的tkinter水平滚动条在右下角被挤压,但垂直滚动条看起来正常?

阿德·道尔

我正在使用下面的代码在tkinter窗口中创建两个滚动条,然后在其中填充文本小部件等。

垂直滚动条看起来正常,并且似乎可以正常工作(除了我不能使用鼠标滚轮滚动),而水平滚动条似乎被挤压到了窗口的右下角。

据我所知,我将两个滚动条设置为相同的方式,那么为什么水平滚动条不会在窗口底部延伸呢?

# Create a main frame with a canvas so that it's possible use a scroll bar
self.current_rendered_window["main_frame"] = Frame(root)
self.current_rendered_window["main_frame"].pack(fill=BOTH, expand=1)

self.current_rendered_window["main_canvas"] = Canvas(self.current_rendered_window["main_frame"])
self.current_rendered_window["main_canvas"].pack(side=LEFT, fill=BOTH, expand=1)

self.current_rendered_window["main_scrollbar"] = ttk.Scrollbar(
    self.current_rendered_window["main_frame"],
    orient=VERTICAL, command=self.current_rendered_window["main_canvas"].yview
)
self.current_rendered_window["main_scrollbar"].pack(side=RIGHT, fill=Y)

self.current_rendered_window["horizontal_scrollbar"] = ttk.Scrollbar(
    self.current_rendered_window["main_frame"],
    orient=HORIZONTAL, command=self.current_rendered_window["main_canvas"].xview
)
self.current_rendered_window["horizontal_scrollbar"].pack(side=BOTTOM, fill=X)

self.current_rendered_window["main_canvas"].configure(
    yscrollcommand=self.current_rendered_window["main_scrollbar"].set,
    xscrollcommand=self.current_rendered_window["horizontal_scrollbar"].set
)
self.current_rendered_window["main_canvas"].bind(
    '<Configure>',
    lambda e: self.current_rendered_window["main_canvas"].configure(
        scrollregion=self.current_rendered_window["main_canvas"].bbox("all")
    )
)

self.current_rendered_window["secondary_frame"] = Frame(self.current_rendered_window["main_canvas"])
self.current_rendered_window["main_canvas"].create_window(
    (0, 0),
    window=self.current_rendered_window["secondary_frame"],
    anchor="nw"
)

上面的代码中current_rendered_window是一个字典,每次重新加载窗口时都会绘制一个字典,因此需要像我在代码中所做的那样将所有框架,画布,小部件等添加到其中。

acw1668

您需要先打包水平滚动条:

self.current_rendered_window["main_canvas"] = Canvas(self.current_rendered_window["main_frame"], bg="yellow")

self.current_rendered_window["main_scrollbar"] = ttk.Scrollbar(
    self.current_rendered_window["main_frame"],
    orient=VERTICAL, command=self.current_rendered_window["main_canvas"].yview
)

self.current_rendered_window["horizontal_scrollbar"] = ttk.Scrollbar(
    self.current_rendered_window["main_frame"],
    orient=HORIZONTAL, command=self.current_rendered_window["main_canvas"].xview
)

self.current_rendered_window["horizontal_scrollbar"].pack(side=BOTTOM, fill=X)
self.current_rendered_window["main_canvas"].pack(side=LEFT, fill=BOTH, expand=1)
self.current_rendered_window["main_scrollbar"].pack(side=RIGHT, fill=Y)

但是,最好使用grid()代替pack()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的滚动条看起来很古怪?

来自分类Dev

为什么我的滚动条看起来很古怪?

来自分类Dev

如何使垂直滚动条变薄并消除右下角的空白空间?

来自分类Dev

为什么在我的网站上显示水平滚动条?

来自分类Dev

为什么我的UIScrollView水平滚动条不显示?

来自分类Dev

QScrollArea:垂直滚动条引起的水平滚动条

来自分类Dev

为什么我的Tkinter滚动条不起作用?

来自分类Dev

JavaFX:如何在 TableView 中设置滚动条的样式,使其看起来像标准的 Windows 滚动条?

来自分类Dev

水平滚动条?

来自分类Dev

为什么垂直滚动条不允许滚动?

来自分类Dev

JavaScript 滚动条看起来不像它应该的样子

来自分类Dev

如何使表格滚动条在 windows 和 mac 中看起来相同

来自分类Dev

是什么导致我的水平滚动条

来自分类Dev

为什么我的Tkinter滚动条位于应该滚动的区域的顶部?

来自分类Dev

滚动条ItemsControl垂直填充,然后水平滚动

来自分类Dev

烦人的水平滚动条

来自分类Dev

固定水平滚动条

来自分类Dev

Div水平滚动条

来自分类Dev

NSText的水平滚动条

来自分类Dev

删除水平滚动条

来自分类Dev

反应水平滚动条

来自分类Dev

水平滚动条丢失

来自分类Dev

删除垂直滚动条

来自分类Dev

为什么滚动条是空的?

来自分类Dev

为什么我的滚动条未总是正确绘制?

来自分类Dev

CSS:为什么我的滚动条高度为100%?

来自分类Dev

为什么我看不到滚动条的底部

来自分类Dev

为什么我的div滚动条不起作用?

来自分类Dev

为什么我的页面在小屏幕上显示水平滚动条?