: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

Python的标准GUI库Tkinter开发基础 - 使用单选按钮和复选框控件

Python的标准GUI库Tkinter开发基础 - 使用单选按钮和复选框控件

在Python程序中,在一组单选按钮中只有一个选项被选中,而在复选框中可以同时选择多个选项。在Tkinter库的控件中,使用tkinter.Radiobutton与tkinter.Checkbutton可以分别创建单选按钮和复选框。通过向它传递属性参数的方式可以单独设置单选按钮和复选框的背景色、大小、状态等。单选按钮和复选框控件常用的属性控制参数如表 4-6所示。

表4-6 单选按钮和复选框控件常用的属性控制参数



在Python程序中,variable是单选按钮和复选框控件中比较重要的属性参数,需要使用tkinter.IntVar或tkinter.StringVar生成通过variable指定的变量。其中tkinter.IntVar可以生成一个整型变量,而tkinter.StringVar可以生成一个字符串变量。当使用tkinter.IntVar或者tkinter.StringVar生成变量后,可以使用set()方法设置变量的初始值。如果这个初始值与组件的value所指定的值相同,则这个组件处于被选中状态。如果其他组件被选中,则变量值将被修改为这个组件value所指定的值。

实例文件danfu.py演示了在Tkinter窗体中创建单选按钮和复选框的过程。
  1. import tkinter #导入tkinter模块
  2. root = tkinter.Tk()#生成一个主窗口对象
  3. r = tkinter.StringVar()#生成字符串变量
  4. r.set('1')#初始化变量值
  5. radio = tkinter.Radiobutton(root,#创建单选按钮1
  6. variable = r,#单选按钮关联的变量
  7. value ='1',#设置选中单选按钮时的变量值
  8. text ='单选按钮1')#设置单选按钮的显示文本
  9. radio.pack()#将单选按钮1添加到窗口中
  10. radio = tkinter.Radiobutton(root,#创建单选按钮2
  11. variable = r,#单选按钮关联的变量
  12. value ='2',#设置选中单选按钮时的变量值
  13. text ='单选按钮2')#设置单选按钮的显示文本
  14. radio.pack()#将单选按钮2添加到窗口中
  15. radio = tkinter.Radiobutton(root,#创建单选按钮3
  16. variable = r,#单选按钮关联的变量
  17. value ='3',#设置选中单选按钮时的变量值
  18. text ='单选按钮3')#设置单选按钮的显示文本
  19. radio.pack()#将单选按钮3添加到窗口中
  20. radio = tkinter.Radiobutton(root,#创建单选按钮4
  21. variable = r,#单选按钮关联的变量
  22. value ='4',#设置选中单选按钮时的变量值
  23. text ='单选按钮4')#设置单选按钮的显示文本
  24. radio.pack()#将单选按钮4添加到窗口中
  25. c = tkinter.IntVar()#生成整型变量
  26. c.set(1)#变量初始化
  27. check = tkinter.Checkbutton(root,#创建复选按钮
  28. text ='复选按钮',#设置复选按钮的显示文本
  29. variable = c,#复选按钮关联的变量
  30. onvalue =1,#设置选中复选按钮时的变量值1
  31. offvalue =2)#设置未选中复选按钮时的变量值2
  32. check.pack()#将复选按钮添加到窗口中
  33. root.mainloop()#进入消息循环
  34. print(r.get())#调用函数get()输出r
  35. print(c.get())#调用函数get()输出c
复制代码
在上述实例代码中,在主窗口中分别创建了一个包含4个选项的单选按钮和一个复选框,其中使用函数StringVar()生成字符串变量,并将生成的字符串用于单选按钮组件。使用函数IntVar()生成整型变量,并将生成的变量用于复选框。执行文件danfu.py后的效果如图4-9所示。


论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表