from tkinter import *def data():for i in range(100):Label(rollFrame,text=i).grid(row=i,column=0)Label(rollFrame,text="my text"+str(i)).grid(row=i,column=1)Label(rollFrame,text="..........").grid(row=i,column=2)# 少了这个就滚动不了
def myfunction(event):canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)root=Tk()
root.wm_geometry("800x600")canvas=Canvas(root)     # 创建画布
canvas.place(x=0,y=0,height=300,width=500)myscrollbar=Scrollbar(root,orient="vertical",command=canvas.yview)      #创建滚动条
myscrollbar.place(x=500,y=0,height=300)
canvas.configure(yscrollcommand=myscrollbar.set)rollFrame=Frame(canvas)     # 在画布上创建frame
canvas.create_window((0,0),window=rollFrame,anchor='nw')    # 要用create_window才能跟随画布滚动
rollFrame.bind("<Configure>",myfunction)data()
root.mainloop()

在画布上放置frame,为什么要使用create_window?  

如果您通过 pack, place, grid 将一个frame 放置到画布上 ,frame会出现在画布内,但不会成为画布的一部分。 这意味着:如果画布绑定了滚动条,框架将不会跟随画布滚动。

通过使用create_window,使frame成为画布的一部分,就可以像任何其他画布对象一样操作和滚动了。

tkinter: 滚动frame (通过canvas+scrollbar)相关推荐

  1. qml 滚动控件Scroll ScrollBar ScrollIndicator ScrollView

    import QtQuick.Layouts 1.3 交互式滚动条ScrollBar 交互式即与操作有互动.次控件用于滚动到特定位置 属性 active : bool,保存滚动条是否处于活跃状态 ho ...

  2. tkinter滚动事件详解

    引言 在tkinter中,由<Mousewheel>提供绑定信息. 但是同其它绑定事件一样,滚动事件同样提供的event参数返回值,也拥有特殊的属性,比如send_event,delta, ...

  3. tkinter笔记:画布canvas

    1 整体框架 import tkinter as tkwindow = tk.Tk() #创建窗口window.title('my window') #窗口标题window.geometry('500 ...

  4. python mainloop bind_Python3 tkinter基础 Frame bind 捕捉多键同时按

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  5. python组合键触发_Python3 tkinter基础 Frame bind 捕捉多键同时按

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  6. pythontkinter键盘_Python3 tkinter基础 Frame bind 敲击键盘事件 将按键打印到console中

    Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda : 4.5.11 typesetting : Markdown ...

  7. tkinter的Frame布局

    从头开始梳理: import tkinterif __name__ == '__main__':root = tkinter.Tk()root.geometry("300x300" ...

  8. Python:tkinter滚动抽奖器

    滚动抽奖器(文字类型) https://www.jb51.net/article/177913.htm

  9. html 圆盘滚动抽奖,HTML5 Canvas圆盘抽奖应用DEMO

    HTML5 Canvas圆盘抽奖应用DEMO html页面 HTML5 Canvas圆盘抽奖应用DEMO演示 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. 抱歉!浏览器不支持. w ...

最新文章

  1. 为程序员量身定做的目标
  2. ajax 泛微oa表单js_OA项目总结
  3. 【大话数据结构算法】归并排序
  4. 限制服务器访问指定网站,如何允许或限制某一国或地区的用户访问网站
  5. jzoj3847-都市环游【矩阵乘法】
  6. ftp与sftp及sftp和scp的区别
  7. archlinux使用sudo
  8. 魔域java_java序列化
  9. Symmetric Tree
  10. Activity intent经常使用的 FLAG 集合
  11. 如何解决更改csdn头像修改后浏览器不显示的问题
  12. bigdecimal 怎么做除法_面向对象之BigDecimal
  13. VB简易密码登录窗体设计
  14. 机器视觉工业光源知识总结
  15. 【架构】分布式架构介绍及实现(简略)
  16. wma转mp3怎么弄_免费:如何把WMA转MP3格式
  17. Cordova入门教程
  18. oracle优化器analyzed,Oracle 学习之 性能优化(十三) 索引
  19. 【论文阅读】提升的自动作文评分通过Prompt预测和匹配
  20. linux创建用户和组

热门文章

  1. C语言学习——渐渐发现程序世界的奇妙
  2. EasyExcel项目实例
  3. 超级不可能的路Super Impossible Road Mac(竞速游戏)原生版
  4. CCF-CSP-4-5
  5. dn什么意思_DN是什么意思中文翻译
  6. div显示在底部(一种固定不变,另一种随页面上下翻动而动)
  7. 中欧应携手合作制定5G标准
  8. JavaScript入门教学
  9. 还有两天 Symbian Belle 就要和我们见面了!
  10. linux 创建逻辑卷命令,Linux对逻辑卷的创建与管理基本命令