菜鸟IT的博客
"菜鸟IT"的博客 (WWW.17WX.NET)
熟悉HTML网站的前端美工到切图制作,搭配DIV+TABLE+CSS,熟悉Fireworks和Dreamwear的网站制作实战应用,专注于学习和记录JS脚本对于网页改造的各种新奇技术.平时的工作既要做销售,也要做前端开发,也要做后期的客户售后维护,此博客为博主自己平时的IT工作的实战学习笔记,记录自己工作和学习中遇到的各种坑,也分享给有需要的新人...
博客首页 网站前端制作 网赚 软件应用 Windows系统 Python
谷歌联盟提供的广告↓
[网站前端制作]有关标签↓
[网赚]有关标签↓
[软件应用]有关标签↓
[Windwos系统]有关标签↓
 | 
菜鸟IT的博客 >> Python

给tkinter整个主界面增加横向滚动条和纵向滚动条
import tkinter as tk


def on_frame_configure(event):
    # 更新画布的滚动区域以包含所有内容
    canvas.configure(scrollregion=canvas.bbox("all"))


root = tk.Tk()
root.title("LabelFrame with Both Scrollbars")

# 创建LabelFrame
label_frame = tk.Frame(root)
label_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)

# 在LabelFrame内部创建一个Frame用于放置滚动条和画布
inner_frame = tk.Frame(label_frame)
inner_frame.pack(fill=tk.BOTH, expand=True)

# 创建水平和垂直滚动条
xscrollbar = tk.Scrollbar(inner_frame, orient=tk.HORIZONTAL)
xscrollbar.pack(side=tk.BOTTOM, fill=tk.X)

yscrollbar = tk.Scrollbar(inner_frame, orient=tk.VERTICAL)
yscrollbar.pack(side=tk.RIGHT, fill=tk.Y)

# 创建画布,并指定滚动条的命令
canvas = tk.Canvas(inner_frame, bd=0, highlightthickness=0,xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set)

# 设置画布的大小(这里使用固定大小作为示例)
canvas_width, canvas_height = 400, 200
canvas.config(width=canvas_width, height=canvas_height)

# 将画布放置到内部框架中
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

# 绑定画布上的内容变化来更新滚动区域
canvas.bind("<Configure>", on_frame_configure)

# 在画布上创建一个Frame来放置实际的内容
content_frame = tk.Frame(canvas)

# 放置content_frame到canvas上(注意:这里我们使用了一个固定的ID)
content_id = canvas.create_window((0, 0), window=content_frame, anchor='nw')


# 当content_frame的大小改变时,更新画布上的窗口位置
def update_canvas_window(event):
    # 注意:这里我们假设content_frame的大小已经通过某种方式改变
    # 在实际情况下,你可能需要在这个函数中执行更复杂的逻辑
    canvas.itemconfig(content_id, width=content_frame.winfo_width())


# 但是,上面的update_canvas_window函数并不适用于所有情况
# 因为Tkinter不会自动通知我们content_frame的大小变化
# 相反,我们需要确保在添加或删除内容后手动调用on_frame_configure

# 现在在content_frame中添加一些内容以测试滚动条
for i in range(10):  # 纵向内容
    for j in range(20):  # 横向内容
        tk.Label(content_frame, text=f"({i},{j})", width=10).grid(row=i, column=j, padx=2, pady=2)

    # 更新画布的滚动区域以包含所有内容
on_frame_configure(None)

# 将滚动条与画布绑定
xscrollbar.config(command=canvas.xview)
yscrollbar.config(command=canvas.yview)

root.mainloop()

菜鸟IT博客[2024.08.10-09:26] 访问:56
[关闭窗口]  
Google公司(谷歌联盟)提供的广告↓
本页的htm伪静态链接网址:分享链接加载中....

收藏链接: www.ems-help.com | www.17post.com | www.17track.wang | www.kd100.wang | www.17wx.net | www.11185cha.com | www.sftrack.net | www.kdjiage.com | m.kdjiage.com | www.expba.net | m.expba.net | www.pptrack.net
学习Python的关键点
【1】★ Python:解决小数点后面四舍五入的精度丢失问题(二进制转换导致,另解决prec动态保留小数点后多少位)
【2】 ★ Python:单个py文件打包exe程序
【3】 ★ 给自己写的exe程序加上注册授权保护
【4】 ★ Python的http请求超时设置(timeout)| 异常类型/捕获异常
【5】 ★ Python的多线程的线程池的使用| ThreadPoolExecutor
【6】 ★ Python能用到的免费代理IP网址
【7】 ★ Python_用于测试代理IP是否有效
【8】 ★ Python Requests post() 方法 | post方式提交api
【9】 ★★★ Python Tkinter Gui视频学习教程
【10】 ★★★ Python 小项目实战-视频学习教程
【11】 ★★★ Python 爬虫项目实战-视频教程
【12】 ★★★ 高级进阶的关于python的五本书: 「Python从菜鸟到高手」、「html5+css3+JavaScript从入门到精通」、「Django Web应用开发实战」、「漫画算法」
【13】 ★★★ Request库-爬虫
【14】 ★★★ Python 图形识别文字
【15】 ★★★ Python 滑动验证码识别【图文教程】
【16】 ★★★ Python 滑动验证码识别【视频教程】
【18】 ★★★ Python 关于Class类的应用【视频教程】
【19.1】 ★★★ Python 关于进度条的制作(1)
【19.2】 ★★★ Python 关于进度条的制作(2)
【20】★★★ Python 抓取某宝的商品信息
【21】★★★ Python 一小时学会全栈开发浏览器版本的企业管理系统【视频教程】
【22】★★★ Python 全栈开发——前端+后端【视频教程】
【23】★★★ Layui 浏览器前端模块化UI框架
【24】★★★ Python-Django-Web应用开发【视频教程】
【25】★★★ Python 从0开始学【视频教程】
【26】★★★ Python的tkinter界面打包exe以后关于icon图标报错的解决办法!
【27】★★★ Python的tkinter视频学习教程【N个系统性学习合集视频】★★★
【28】★★★ Python全栈开发【视频教程】★★★
Copyright © 17WX.NET 版权所有 Manage 沪ICP备13006304号-5 沪公网安备31011702006630号
,sitemap.html,sitemap.xml
网站人气值: