如何使用Tkinter radiobutton scrollbar 并显示信息?

使用PY2.7版本结合Tkinter,Frame,Canvas,Scrollbar,radiobutton功能,选择radiobutton后在界面中显示对应信息。
学习初始,感觉有点不规范和冗余,大神帮忙修改修改!

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: Tim  time:2019/02/02

from Tkinter import *
import Tkinter as tk
import ttk

root = tk.Tk()
root.title('古罗马与古希腊之神')
root.geometry('400x400')
root.resizable(0,0)

#列表元素是元组
Module=[('雅努斯Janus',0),('朱庇特Jupiter',1),('朱诺Juno',2),('墨邱利Mercury ',3),('维纳斯Vénus',4),('玛尔斯Mars',5),('萨敦Saturn',6),('玛亚Maia',7),('狄安娜Diane',8),('阿波罗Apollo',9),('米诺娃Minerve',10),('赛尔斯Cérès',11),('伏尔肯Vulcain',12),('尼普敦Neptune',13),('普鲁托Pluton',14),('邱比特Cupid',15),('萨杜恩Saturne',16),('阿特拉斯Atlas',17),('弗尔图娜Fortune',18),('弗洛拉Flore ',19)]
Matching=[('门神,具有前后两个面孔或四方四个面孔,象征开始',0),('神王。木星相对应于希腊神话的宙斯Zeus',1),('神后,相对应于希腊神话的赫拉Hera',2),('神的使者,水星相对应于希腊神话的赫耳墨斯Hermes,手持盘蛇杖',3),('美神、爱神,金星相对应于希腊神话的阿佛洛狄德Aphrodite',4),('战神,三月相对应于希腊神话的阿瑞斯Ares',5),('朱庇特的父亲,相对应于希腊神话的科罗努斯Kronus',6),('墨邱利的母亲,花神',7),('月亮女神,相对应于希腊神话的阿尔忒弥斯Artemis',8),('太阳神,希腊和罗马名字相同',9),('智慧女神,相对应于希腊神话的雅典娜Athena',10),('谷物和丰收女神,相对应于希腊神话的狄蜜特Demeter',11),('火神,维纳斯的丈夫,相对应于希腊神话的赫斐斯托斯Hephaestus',12),('海王神,海王星相对应于希腊神话的波赛东Posidon,朱庇特的弟弟',13),('冥神,冥王星相对应于希腊神话的哈底斯Hades,朱庇特的弟弟',14),('小爱神,维纳斯的儿子,相对应于希腊神话的爱罗斯Eros',15),('农神土星播种之神',16),('古希腊巨神受罚用肩顶住天穹',17),('古罗马命运女神',18),('古罗马花卉女神',19)]

#初始text内容
v=IntVar()
text = StringVar()
text.set('诸神之战')
s1 = tk.Scrollbar(root)

#定义单选按钮的响应函数
def callRB():
    for i in range(14):
        if (v.get()==i):
            text.set('古希腊和古罗马神:'+Module[i][0]+'\n'+Matching[i][0]+'!')

Label(root,textvariable=text,fg='blue',width=60,height=10,relief=RIDGE).pack()

vscrollbar = tk.Scrollbar(root)
c= tk.Canvas(root,width=400,height=100,scrollregion=(0,0,200,300),yscrollcommand=vscrollbar.set)
vscrollbar.config(command=c.yview)
vscrollbar.pack(side=tk.RIGHT, fill=tk.Y)
f=tk.Frame(c) #Create the frame which will hold the widgets
c.pack(side="left", fill="both")

#Updated the window creation
c.create_window(0,0,window=f, anchor='nw')

for lan,num in Module:
	R1=Radiobutton(f, text=lan, value=num, command=callRB,variable=v).pack(anchor=W, fill=tk.Y)#

root.update()
c.config(scrollregion=c.bbox("all"))

root.mainloop()

运行界面如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值