Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter网格布局垂直滚动条_Python_Tkinter_Scrollbar - Fatal编程技术网

Python Tkinter网格布局垂直滚动条

Python Tkinter网格布局垂直滚动条,python,tkinter,scrollbar,Python,Tkinter,Scrollbar,我在使用Tkinter和python向网格布局添加滚动条时遇到问题。我在stackoverflow上找到了与此主题相关的类似帖子,但它们使用了我不想使用的对象 我正在使用一个画布,在其中添加一个框架和滚动条,然后将我的内容添加到框架 当显示此信息时,内容将按预期显示,并且还存在滚动条,但滚动条不起作用 是否有人可以帮助识别下面代码中的问题(不使用对象) 你有两个问题。第一个问题是,您将帧添加到画布的方式不正确。画布只能滚动画布对象。这意味着您不能在画布中打包或网格化框架,必须使用画布的方法 此外

我在使用
Tkinter
python
向网格布局添加滚动条时遇到问题。我在stackoverflow上找到了与此主题相关的类似帖子,但它们使用了我不想使用的对象

我正在使用一个
画布
,在其中添加一个
框架
滚动条
,然后将我的内容添加到
框架

当显示此信息时,内容将按预期显示,并且还存在
滚动条
,但
滚动条
不起作用

是否有人可以帮助识别下面代码中的问题(不使用对象)


你有两个问题。第一个问题是,您将帧添加到画布的方式不正确。画布只能滚动画布对象。这意味着您不能在画布中打包或网格化框架,必须使用画布的方法

此外,还必须配置画布的可滚动区域,以便滚动条知道多少画布是可滚动的

例如,要将可滚动区域设置为包含画布中的所有内容,可以执行以下操作:

canvas.configure(scrollregion=canvas.bbox("all"))
这必须在添加项目后进行,因为
bbox
方法返回一个区域的坐标(“边界框”),然后包含所有画布对象)


使用此选项控制帧时,必须确保在帧有机会布局其子帧后执行此操作。这是通过回调画布的
事件来完成的,只要调整画布的大小或使其可见,就会发生这种情况。

感谢您的回复。我尝试使用您的建议修改代码,但仍然有相同的“错误”,滚动条不起作用。@user1220022:我已更新了我的答案,以解决您将框架错误添加到画布的问题,这肯定是问题的一部分。感谢您的帮助。根据你的评论,我已经取得了一些进展,但是滚动仍然不起作用。我已经将代码更新为一个可用的示例(扩展到它没有按预期工作)。您发布的代码不可能工作——它有几个bug。例如,在使用它们之前不定义
start
y
。另外,
add_checkbox
接受两个参数,但要传递三个参数。请发布实际有效的代码。嗨,Bryan,我已经根据您以前的一些评论将代码更新为“有效”示例,但是滚动条仍然不能按预期工作。您仍然没有使用
create\u window
,您必须这样做才能启用滚动。我不确定您是否看到我最近的编辑,我确实在最后第四行使用了它。我不能评论你对代码所做的每一个更改。您似乎只是在不了解实际问题的情况下输入随机代码。在互联网上有很多这样做的例子。从这里开始:
canvas.configure(scrollregion=canvas.bbox("all"))