前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【tkinter系列 第十二课 Frame和Scrollbar窗口部件 】

【tkinter系列 第十二课 Frame和Scrollbar窗口部件 】

作者头像
叶子陪你玩
发布2020-03-11 15:21:33
3.2K0
发布2020-03-11 15:21:33
举报

前言

python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。

终于来到基本控件的最后一课了,本节课将要学习Frame和Scrollbar窗口部件,Frame是框架的意思,框架是屏幕上的矩形区域。框架小部件主要用作其他小部件的几何主控件,或用于在其他小部件之间提供填充。框架小部件用于将其他小部件分组到复杂的布局中。它们还用于填充,并在实现复合小部件时作为基类使用。

Scrollbar是滚动条的意思,那什么时候该用Scrollbar部件呢?Scrollbar 小部件几乎总是与Listbox、 Canvas 或 Text 小部件结合使用。水平滚动条也可以与 Entry 小部件一起使用。当内容过多时,可以通过滚动条拖动显示。

目标

接下来我们使用frame来实现下面一个类似微信聊天的界面,左侧是显示好友的,有滚动条;右侧上面是聊天内容区,中间是消息编写区,最下面是按钮区;这里只是实现区域划分,并没有实现实际功能。

分析:左右比例3:7 左侧 30x30;右侧70x30 右侧划分 6:3:1 顶部:70x18;中间:70x9;底部:70x3

实现界面布局

代码:

代码语言:javascript
复制
from tkinter import *import tkinter.messageboximport tkinter.filedialog
root = Tk()# 分成左右两个框架frame_l = Frame(root, )frame_l.pack(side=LEFT)frame_r = Frame(root,)frame_r.pack(side=RIGHT)
# 给左边框架添加一个Listbox控件l=Listbox(frame_l,width=30,height=30)l.pack()
# 给右边框架分成上中下三部分frame_r_t = Frame(frame_r)frame_r_t.pack()frame_r_m = Frame(frame_r)frame_r_m.pack()frame_r_b = Frame(frame_r)frame_r_b.pack()
# 给上面部分添加Listboxl = Listbox(frame_r_t, width=70, height=18)l.pack()
# 给中间部分添加Listboxl = Listbox(frame_r_m, width=70, height=9)l.pack()
# 给下面部分添加按钮b = Button(frame_r_b, text="发送", width=10,height=2)b.pack()
mainloop()

效果:

添加滚动条

使用Scrollbar滚动条要将垂直滚动条连接到Listbox这样的小部件,需要做两件事: 1.将小部件的 yscrollcommand 回调设置为 scrollbar 的 Set 方法。

代码语言:javascript
复制
l = Listbox(frame_l, width=30, height=30, yscrollcommand=scrollbar.set)

2.将 scrollbar 的命令设置为小部件的 yview 方法。

代码语言:javascript
复制
scrollbar.config(command=l.yview)

代码:

代码语言:javascript
复制
from tkinter import *import tkinter.messageboximport tkinter.filedialog
root = Tk()# 分成左右两个框架frame_l = Frame(root, )frame_l.pack(side=LEFT)frame_r = Frame(root,)frame_r.pack(side=RIGHT)
# 给左边框架添加滚动条scrollbar = Scrollbar(frame_l)scrollbar.pack(side=RIGHT, fill=Y)# 给左边框架添加一个Listbox控件l = Listbox(frame_l, width=30, height=30, yscrollcommand=scrollbar.set)l.pack()for i in range(50):    l.insert(END,i)scrollbar.config(command=l.yview)
# 给右边框架分成上中下三部分frame_r_t = Frame(frame_r)frame_r_t.pack()frame_r_m = Frame(frame_r)frame_r_m.pack()frame_r_b = Frame(frame_r)frame_r_b.pack()
# 给右边框架上部添加滚动条scrollbar = Scrollbar(frame_r_t)scrollbar.pack(side=RIGHT, fill=Y)# 给上面部分添加Listboxl = Listbox(frame_r_t, width=70, height=18, yscrollcommand=scrollbar.set)l.pack()for i in range(50):    l.insert(END, i)scrollbar.config(command=l.yview)
# 给中间部分添加Listboxl = Listbox(frame_r_m, width=70, height=9)l.pack()
# 给下面部分添加按钮b = Button(frame_r_b, text="发送", width=10,height=2)b.pack()
mainloop()

效果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目标
  • 实现界面布局
  • 添加滚动条
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档