《Perl-Tk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton》Perl-Tk中有三种不同形式的按钮组件可供选择,它们分别是按钮(Button), 复选按钮(Checkbutton), 和单选按钮(Radiobutton),如下图所示:这三种按钮看起来是不同的,且最重要的不同之处在于它们的选择指示器(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;

效果:复选按钮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;

点击效果如下:Checkbutton经常单个使用或者多个组成一组共同使用。 单选按钮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;

动图效果:习题:感兴趣的童鞋可以尝试将三种不同的Button集成到一起,实现类似推文开头的效果,点击某个Button,在terminal里面打印出被点击的项。

Hello summer

相关推文

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

网易云课堂

视频课程

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

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

  1. Android studio中单项选择,Android studio单选按钮、复选按钮

    单选按钮 .xml文件代码如下: .java文件代码如下: package com.example.button; import android.support.v7.app.AppCompatAct ...

  2. Android学习笔记篇2. 单选按钮、复选按钮

    单选按钮 在XML里写一组单选按钮(2个)+ 一个文本(用于提示): <?xml version="1.0" encoding="utf-8"?> ...

  3. java学习(76):GUL单选按钮和复选按钮

    //单选按钮和复选按钮 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test11 ext ...

  4. 单选按钮、复选按钮的简单应用

    单选按钮.复选按钮简单应用 本人是初学者,参考前人代码,一边学习,一边把内容分享给大家...... 页面效果如下: survey.aspx中主要代码: <body>     <for ...

  5. java76-GUL单选按钮和复选按钮

    //单选按钮和复选按钮 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test11 ext ...

  6. android 单选按钮、复选按钮的使用

    一.单选按钮 相互排斥的事件使用该控件,一组相互互斥的事件放到一个组内,及RadioGroup. <RadioGroupandroid:id="@+id/radiogroup_text ...

  7. html语言中复选按钮,命令按钮单选按钮复选按钮

    命令按钮.单选按钮.复选框上都有Picture属性,可选项: a.Appearance属性 b.Style属性 c.DisabledPicture属性 d.Downb. VB实现点击命令按钮将对单选( ...

  8. html自定义单选按钮,美化表单——自定义单选按钮和复选按钮

    大家都知道,在Web的Form中美化是最头痛的,尤其是表单中的"input[type=checkbox]"."input[type="radio"]& ...

  9. html5复选框控制按钮状态,HTML input checkbox复选按钮简介说明

    摘要: 下文讲述html代码中input type='checkbox'时的相关属性简介说明,如下所示: input type='checkbox' 简介 当input标签中type='checkbo ...

最新文章

  1. C++ 获取当前时间的年,月,日,以及时分秒
  2. RHEL7.0系列 修改字符终端分辨率
  3. 一元建站-基于函数计算 wordpress 构建 serverless 网站
  4. Java判断首个或最后字符或者字符串是否为指定的字符/字符串
  5. 深入浅出:Microsoft分布式事务处理协调器
  6. PHP文件下载过滤类
  7. 超级好用的坐标转换软件
  8. 计算机音乐夜里,电脑自动播放音乐提醒你起床,晚上自动关机!
  9. 写给社区的回顾和展望:TiDB 2019, Level Up !
  10. ps安装插件提示“无法加载扩展,因为它未正确签署”解决方法
  11. 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
  12. 苹果手机来电归属地_如何批量计算手机号码的归属地?
  13. 软件开发项目流程 - 立项
  14. 用 Web 技术为 Safari 编写扩展
  15. 强连通分量 Kosaraju科萨拉朱算法
  16. 安装极狐GitLab(ubuntu)----写给不爱看官方文档的人
  17. Java课程设计学生考勤管理
  18. Android studio真机调试(用小米10s为例)
  19. Unity中常用到的基础函数
  20. Android的各版本间的区别总结

热门文章

  1. mysql5.6定时备份_Mysql自动备份
  2. 【OS学习笔记】二十二 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之用户程序
  3. kafkaspot在ack机制下如何保证内存不溢
  4. (专题二)01 矩阵的处理-特殊矩阵
  5. [Swift]LeetCode482. 密钥格式化 | License Key Formatting
  6. spring的基本用法
  7. hdu5279 YJC plays Minecraft 【分治NTT】
  8. Fragment销毁时replace和add两个方法的区别
  9. POJ 1077 Eight
  10. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]38.隐蔽信道和侧信道的区别