单选按钮_PerlTk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton(附完整代码)...

7a4dc11e53de6137316d9797d7c38067.gif

1aafe7d4356277bd82b1b54305d26995.png《Perl-Tk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton》Perl-Tk中有三种不同形式的按钮组件可供选择,它们分别是按钮(Button), 复选按钮(Checkbutton), 和单选按钮(Radiobutton),如下图所示:704285c1c950bb3c50e491e8a80d3d5d.png这三种按钮看起来是不同的,且最重要的不同之处在于它们的选择指示器(selection indicators)的使用是不同的。Button根本就没有选择指示器,使用非常简单;Checkbutton和Radiobutton控件都有选择指示器,用来指示哪些选项被选中了,前者可以选中多项内容,而后者只能选中一项内容。按钮Button我们可以用下面的方式在主窗口$mw里面创建一个按钮,$bt是生成的按钮的指针。$bt = $mw->Button->pack;在Button里面有一些选项,我们可以控制按钮上面显示的文字以及鼠标单击按钮希望执行的命令。例如,下面的-text选项用来控制按钮上显示文字“Click Me”,鼠标单击按钮之后将调用子程序print_click_info打印"Button is clicked!\n"。$bt = $mw->Button(-text => 'Click Me', -command => \&print_click_info)->pack;完整的程序如下:
#!/usr/bin/perl -wuse Tk; $mw = MainWindow->new;$mw->geometry("300x140");$mw->title("Button"); my $bt = $mw->Button(-text   => "Click Me", -command =>   \&print_click_info)->pack(); sub print_click_info {    print "Button is clicked!\n";} MainLoop;
效果:c042132e5b08f141a242ba4511163163.png复选按钮Checkbutton我们可以用下面的方式在主窗口$mw里面创建一个复选按钮Checkbutton,$cb是生成的复选按钮的指针。$cb = $mw->Checkbutton->pack;与Button类似,Checkbutton也有控制显示文字的选项-text,以及复选按钮被勾选之后执行某个子程序的选项-command。除此之外我们还可以通过该选项是否被勾选来控制一些变量的值。比如我们想通过某个选项是否被勾选来控制$a_selected的值,如果被勾选赋值为'a',没有被勾选就赋值为0。我们可以用下面的语句:$cb = $mw->Checkbutton(-text => 'a', -variable => \$a_selected, -onvalue => 'a', -offvalue => 0)->pack;为了显示出当前变量$a_selected的值,我们可以再加上-command选项打印它的值。完整的程序如下:
#!/usr/bin/perl -wuse Tk; $mw = MainWindow->new;$mw->geometry("300x140");$mw->title("Hello"); my $a_selected;$mw->Checkbutton(-text =>   'a', -variable => \$a_selected, -onvalue => 'a', -offvalue =>   0,  -command =>   \&print_click_info)->pack; sub print_click_info {    print "the value of var \$a_selected is $a_selected!\n";} MainLoop;
点击效果如下:f9c1d0fa8bdf60ff7bc7b7aac74265e2.png1eb2ea8fc0d0008627e91ccb0fa07ddc.pngCheckbutton经常单个使用或者多个组成一组共同使用。 单选按钮Radiobutton单选按钮,顾名思义类似于我们做的单选题,给你很多个答案,让你从中选一个,因此选项一般大于等于2个。根据前面的讲解,这个内容应该很容易理解,就不详细解释了,我们用foreach来创建多个选项,当某个选项被选中后打印当前选中的颜色。程序:
#!/usr/bin/perl -wuse Tk; $mw = MainWindow->new;$mw->geometry("300x200");$mw->title("Listbox"); my $selected_color; foreach (qw/red yellow green blue   grey/) {            $mw->Radiobutton(-text   => $_, -value => $_, -variable => \$selected_color, -command =>   sub {print "current color is $selected_color\n";})->pack(-fill   => 'x');} MainLoop;
动图效果:4b2bc090ce855d40fe4a4ce997769bcc.gif习题:感兴趣的童鞋可以尝试将三种不同的Button集成到一起,实现类似推文开头的效果,点击某个Button,在terminal里面打印出被点击的项。

Hello summer

19f487ebe88ffe6c5188b960e77beae5.png

相关推文

Perl Tk在IC设计中的应用、Windows、Linux平台下的安装-各种错误的摸索解决Perl-Tk入门教程 - 创建一个窗口Perl-Tk教程之小部件 - 框架、文本、入口、按钮、标签Perl-Tk教程之Listbox列表框控件(附完整代码)

网易云课堂

视频课程

5b476ccc0bc6d7cd2addfb5b1caf1298.png82877a047e247bc7f6966493bf9d4675.png如果喜欢本公众号也请多多分享哟谢谢您的关注7aa3da7b3bab0946900fe2bd47faca0a.png0b4b9fa33fa7c324d26e62d20c8195e6.png##  为了方便大家交流讨论  ####  建了一个QQ群  #### 集成电路设计及EDA教程 #### 加群请备注:EDA##47a90ba41a24af2add384e0e636cfd54.png# 本公众号有个红包和资料福利微信群 ##  可以先加我微信,我拉你进群  ##  加我微信 请备注下面问题的答案  ##       ASIC的全称       #52fed184f1ab6a52206acb88ed5cfd22.pnge3c471ecd121c7974466349dbcbc466d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

致读者

有很多理由说明你应该读这个手册,然而也有这样的疑问:为什么要舍近求远,而不是下载一个存在的发行版? 一个很重要的理由是这可以帮助你里里外外的更加了解Linux的工作原理。 另一个关键因素是你可以更多的控制你的系统&#xff0…

制作.ppm格式Linux内核启动logo

在做的产品中,采用默认的小企鹅做logo肯定是不行的,所以一定要替换个像样的企业logo图片! 以前做过Linux启动Logo,时间太久,给忘了,所以再从新研究下。 经过在网上的搜索,和实际验证&#xff0c…

在恰当的地方使用MongoDB的WriteConcern.SAFE参数

首先列一下WriteConcern的几种抛出异常的级别参数: WriteConcern.NONE:没有异常抛出WriteConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常WriteConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。WriteConcern.…

好奇怪呀后面加什么标点_狗狗吃饭时奇怪的小动作,你知道代表什么吗?做个懂狗的好主人...

狗狗有时候因为一些奇怪的小行为,会让主人觉得很可爱。如果我们希望能够了解狗狗更多一些,那么我们需要透过它们的行为本身,去理解背后所代表的含义,才能和狗狗更亲密的交流。很多狗狗在吃饭的时候,也会表现出一些奇奇…

关闭TCP连接的学问

从TCP协议角度来看,一个已建立的TCP连接有两种关闭方式,一种是正常关闭,即四次挥手关闭连接;还有一种则是异常关闭,我们通常称之为连接重置(RESET)。 首先说一下正常关闭时四次挥手的状态变迁,关…

where 1=1低效?

最近一直有点纠结于sql语句里面的where 11是不是低效的?有人跟我说不会降低sql的效率,但是我理解这里应该是低效的。有一些是说where 11会造成数据库表的优化失效,比如聚集索引的什么,具体我也不清楚里面的原理是怎样的。 我这样觉…

开机未发现nvidia控制面板_修改这几个选项,就能提升你的开机速度

最近电脑非常卡,有时真的想把它给砸了,慢的自己都受不了,开机几分钟,开机完还要等上好久才能运行软件,都快受不了,要不是看在已经是10前的买的电脑,早就问候产商了,电脑缓慢的开机速…

ubuntu下使用UVC摄像头

导师让学习opencv编程,想用Qt但是发现windows上Qt使用directshow非常麻烦,就想到linux上编程,于是买一普通摄像头,回来一看,插在ubuntu电脑上没有反应,知道视驱动的问题,开始探寻如何在ubuntu上…

bearer token_bearer token到底是什么?

在以前,用户进行认证的时候一般是:-> 用户向服务端发送验证信息(用户名、密码)。-> 服务端验证成功就向用户返回一个sessionid,服务端保存了这个session_id对应的信息,写入用户的 Cookie。-> 之后前端发出的每一次请求&a…

一些cron命令

列出当前用户的cron:crontab -l 列出指定用户的cron:crontab -uroot -l 编辑当前用户的cron:crontab -e 删除当前用户的cron:crontab -r cron文件语法: 分 小时 日 月 星期 命令 0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周…

'ADB server didn't ACK'的解决办法

网上搜了很多种,但是对我来说都不管用。引起这个错误的原因是有很多方面的。 1.软件冲突。 首先是豌豆荚,尝试关闭豌豆荚,重启eclipse后尝试run as android application.... 2.进程里 关闭adb.exe,重启eclipse 3.软件更新 a…

arcgis mxt模板 创建工具条无法保存_【从零开始学GIS】ArcGIS中的绘图基本操作(二)...

大家好,我是肝教程肝到熊猫眼的三三。本系列教程的发布,受到了很多同学的鼓励,大家在后台或微信上表达出对教程的喜爱,这便是更新教程的最大动力。上回教程讲解了“GIS基本操作”、“创建文档&加载数据”、“创建GIS数…

c# 正则表达式笔记

c# 正则表达式笔记 估计要写几天 看得一个不错的正则教程包括字符串教程 C#字符串和正则表达式参考手册.pdf 正则所需要的命名空间是 using System.Text.RegularExpressions 它包含了8个类,用得最多是的Regex; Regex不仅可以用来创建正则表达式,而且提供了许多有用的…

基于注解风格的Spring-MVC的拦截器

Spring-MVC如何使用拦截器&#xff0c;官方文档只给出了非注解风格的例子。那么基于注解风格如何使用拦截器呢&#xff1f; 基于注解基本上有2个可使用的定义类&#xff0c;分别是DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter&#xff1a; < bean cl…

Mysql命令大全

1、连接Mysql 格式&#xff1a; mysql -h主机地址 -u用户名 &#xff0d;p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口&#xff0c;然后进入目录mysql\bin&#xff0c;再键入命令mysql -u root -p&#xff0c;回车后提示你输密码.注意用户名前可以有空格也可以没有空格&a…

vivado中交织模块_搞定Markdown中的图片,一劳永逸的方法!

经常用markdown写博客的朋友一定都体会过markdown图片的蛋疼之处&#xff0c;并不是说图片的这用引用方式不好&#xff0c;而且图片要放到什么服务器上&#xff1f;以我个人为例&#xff0c;写了一篇markdown&#xff0c;想在不修改任何地方的同时适用于各种平台。刚开始使用ma…

delphi xe2 project菜单怎么没有加组件功能_交互设计:让人困惑的三大交互组件及用法...

本篇文章中&#xff0c;笔者带我们了解了三大交互组件专有名词的用法&#xff0c;并结合实际案例进行了解释说明&#xff0c;与大家分享。希望通过此文能够加深你对交互组件及其用法的理解和分析。最近有很多同学来问一些设计中组件的专业名词&#xff0c;发现大家好像都没有一…

Rails 3.1 CoffeeScript SASS初体验

http://heikezhi.com/2011/04/19/how-to-rails-3-1-coffeescript-howto/http://jashkenas.github.com/coffee-script/ 转载于:https://www.cnblogs.com/orez88/articles/2278254.html

request_threaded_irq()

今天在跟marvell沟通问题的时候&#xff0c;觉得有些地方的代码看得不够仔细&#xff0c;于是细看了一下。发现了几个请求中断的函数。 request_threaded_irq&#xff0c;这个函数在内核中有注释&#xff0c;参数有好多&#xff0c;大概参数有handler&#xff0c;这是要指定的中…

磁盘 I/O 性能监控指标和调优方法

在介绍磁盘 I/O 监控命令前&#xff0c;我们需要了解磁盘 I/O 性能监控的指标&#xff0c;以及每个指标的所揭示的磁盘某方面的性能。磁盘 I/O 性能监控的指标主要包括&#xff1a;指标 1&#xff1a;每秒 I/O 数&#xff08;IOPS 或 tps&#xff09;对于磁盘来说&#xff0c;一…