python开发_tkinter_单选菜单_不可用菜单操作

在之前的blog中有提到python的tkinter中的菜单操作

下面是单选菜单和不可用菜单操作

运行效果:

============================================================

代码部分:

============================================================

 1 from tkinter import *
 2 
 3 __author__ = {'name' : 'Hongten',
 4               'mail' : 'hongtenzone@foxmail.com',
 5               'blog' : 'http://www.cnblogs.com/',
 6               'QQ': '648719819',
 7               'created' : '2013-09-10'}
 8 #global var
 9 checked_box = [False, False, False, False, False, False, False, False, False, False]
10 radio_items = ['Republican', 'Democrat', 'Libertarian', 'Commie',
11                'Facist', 'Labor Party', 'Torie', 'Independent',
12                'Anarchist', 'No Opinion']
13 opinion = False
14 #################################################
15 #### Main starts here ...
16 root = Tk()
17 root.geometry('250x400')
18 root.title('menu demo')
19 root.iconname('menu demo')
20 
21 def print_info(index):
22     global checked_box
23     global radio_items
24     n = [x for x in range(0, len(checked_box))]
25     if index in n:
26         checked_box[index - 1] = not checked_box[index - 1]
27         print(radio_items[index - 1], '?', checked_box[index - 1])
28     else:
29         pass
30     
31 def print_opinion():
32     global opinion
33     opinion = not opinion
34     print('opinion ? ', opinion)
35 
36 def makeRadiobuttonMenu():
37     # make menu button
38     Radiobutton_button = Menubutton(mBar, text='Radiobutton Menus',
39                                     underline=0)
40     Radiobutton_button.pack(side=LEFT, padx='2m')
41 
42     # the primary pulldown
43     Radiobutton_button.menu = Menu(Radiobutton_button)
44 
45     # and all the Radio buttons. Note that the "variable" "onvalue" and "offvalue" options
46     # are not supported correctly at present. You have to do all your application
47     # work through the calback.
48     Radiobutton_button.menu.add_radiobutton(label='Republican', command=print_info(1))
49     Radiobutton_button.menu.add_radiobutton(label='Democrat', command=print_info(2))
50     Radiobutton_button.menu.add_radiobutton(label='Libertarian', command=print_info(3))
51     Radiobutton_button.menu.add_radiobutton(label='Commie', command=print_info(4))
52     Radiobutton_button.menu.add_radiobutton(label='Facist', command=print_info(5))
53     Radiobutton_button.menu.add_radiobutton(label='Labor Party', command=print_info(6))
54     Radiobutton_button.menu.add_radiobutton(label='Torie', command=print_info(7))
55     Radiobutton_button.menu.add_radiobutton(label='Independent', command=print_info(8))
56     Radiobutton_button.menu.add_radiobutton(label='Anarchist', command=print_info(9))
57     Radiobutton_button.menu.add_radiobutton(label='No Opinion', command=print_opinion())
58 
59     # set up a pointer from the file menubutton back to the file menu
60     Radiobutton_button['menu'] = Radiobutton_button.menu
61 
62     return Radiobutton_button
63 
64 
65 def makeDisabledMenu():
66     Dummy_button = Menubutton(mBar, text='Dead Menu', underline=0)
67     Dummy_button.pack(side=LEFT, padx='2m')
68 
69     # this is the standard way of turning off a whole menu
70     Dummy_button["state"] = DISABLED
71     return Dummy_button
72 
73 # make a menu bar
74 mBar = Frame(root, relief=RAISED, borderwidth=2)
75 mBar.pack(fill=X)
76 
77 Radiobutton_button = makeRadiobuttonMenu()
78 NoMenu = makeDisabledMenu()
79 
80 mBar.tk_menuBar(Radiobutton_button, NoMenu)
81 
82 root.mainloop()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

golang讲解(go语言)标准库分析之strings结束篇

今天我们完结了这个strings的包,其实我们就剩下了type Reader和type Replacer这个我们之间讲过io的包,这样大家理解起来就比较省劲了!...

4398
来自专栏黑泽君的专栏

day03_js学习笔记_03_js的事件、js的BOM、js的DOM

1551
来自专栏武培轩的专栏

剑指Offer-滑动窗口的最大值

题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个...

49210
来自专栏Golang语言社区

Go语言实现猜数字小游戏的方法

package main import ( "bufio" "fmt" "math/rand" "os" "strconv" ...

3225
来自专栏ytkah

css继承样式怎么控制?用选择器

  css样式继承性是指下级的样式属性会继承上级的属性,通俗点讲是儿子来继承父亲的属性,比如li会继承ul的属性。css继承原理是我们设置上级(父级)的CSS样...

4365
来自专栏清墨_iOS分享

OpenGLES-03 使用索引绘制矩形

这篇文章我们同样借助上篇文章《OpenGLES-02 绘制基本图元(点、线、三角形)》的代码,使用另外一种画法来绘制一个矩形。 修改render方法如下: -(...

38510
来自专栏落花落雨不落叶

block,inline,inline-block的区别

2748
来自专栏lonelydawn的前端猿区

绚丽的javascript拾色器(不兼容IE8及以下)

一切尽在注释中 html节点 <div id="colorpicker" style="display:inline-block;"> <input clas...

4397
来自专栏互联网开发者交流社区

JS总结

1614
来自专栏Pythonista

前端学习之jQuery

[1]   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。

1021

扫码关注云+社区

领取腾讯云代金券