热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python基础教程:TkinterScale滑块组件的用法

Tkinter库中,支持通过滑动滑块(Scale)来设置属性值,最常见的就是设定音量,如图1所示便是MAC上的音量调节滑块:图1MAC上的音量控制器图2所示便是Windows上的音

Tkinter 库中,支持通过滑动滑块(Scale)来设置属性值,最常见的就是设定音量,如图 1 所示便是MAC上的音量调节滑块:

Tkinter Scale滑块组件的用法
图 1 MAC上的音量控制器

图 2 所示便是 Windows 上的音量调节滑块:

Tkinter Scale滑块组件的用法
图 2 Windows上的音量控制器

创建滑块的方法是:

scale_obj = tk.Scale(父亲组件)

常用的滑块属性包括:

  • 取值范围,默认是 0 到 100,也可以用 from 和 to 来表示范围;
  • 方向属性 orient,其初始是竖向的,如果希望是横向的,需要设置为 tk.HORIZONTAL;
  • 组件的长度 length,单位是像素,如果该值比较大,就表示滑块的尺寸比较大;
  • 分辨率 resolution,表示可以增加或减少的最小值;
  • 回调函数 command(),就是在拖动滑块时调用该函数来通知滑块的运动事件。

下面编写一个游戏程序,在游戏开始时,程序输出一个 1 到 100 之间的整数值,现在需要拖动滑块到该值对应的位置,然后单击“测量一下”按钮来查看当前滑块对应的真实值,看看自己对位置估计的能力。如果不太满意,可以单击“再来一次”按钮来进行下一次测试。

下面是完整的代码:

  import sys        # 引入sys模块,用来判断当前的解释器是Python 2还是Python 3  if sys.version_info.major == 3:            # 如果是Python 3      import tkinter as tk  elif sys.version_info.major == 2:            # 如果是Python 2      import Tkinter as tk  import random                                # 引入random模块,出题用的  class DemoApplication(tk.Frame):            # 定义一个窗口类      def measure(self):          # 还没有测量          if self.button_operation.state == 0:              real_val = self.scale_bar.get()    # 得到真实值              self.real_label['text'] = u"你的真实值为%d" % real_val              self.button_operation["text"] = u"再来一次"    # 修改按钮文字              self.button_operation.state = 1    # 修改状态          else:                                   # 已经测量过了              self.expected_val = random.randint(0, 100)              expected_label_txt = u"期待的值为%d" % self.expected_val              self.expected_label['text'] = expected_label_txt              self.real_label['text'] = ""              self.button_operation.state = 0              self.button_operation["text"] = u"测量一下"      def createWidgets(self):          self.expected_val = random.randint(0, 101)          expected_label_txt = u"期待的值为%d" % self.expected_val          self.expected_label = tk.Label(main_win, text=expected_label_               txt)          self.expected_label.pack()          self.scale_bar = tk.Scale(main_win, orient=tk.HORIZONTAL, showvalue=0)          self.scale_bar['length'] = 500          self.scale_bar.pack()          self.real_label = tk.Label(main_win, text="")          self.real_label.pack()          self.button_operation = tk.Button(main_win)          self.button_operation.state = 0          self.button_operation["text"] = u"测量一下"          self.button_operation["command"] = self.measure          self.button_operation.pack()      def __init__(self, master=None):          tk.Frame.__init__(self, master)          self.pack()          self.createWidgets()  main_win = tk.Tk()  main_win.title(u"试试手感")  main_win.geometry("600x100")  app = DemoApplication(master=main_win)  app.mainloop()

运行后的效果如图 3 所示。

Tkinter Scale滑块组件的用法
图 3 估算位置初始画面

拖动滑块到估计的位置,然后单击“测量一下”按钮会显示测试结果,如图 4 所示。

Tkinter Scale滑块组件的用法
图 4 查看实际值

以上就是Python基础教程:Tkinter Scale滑块组件的用法相关内容,想了解更多python基础教程关注(编程笔记)。


推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • Givenasinglylinkedlist,returnarandomnode'svaluefromthelinkedlist.Eachnodemusthavethe s ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python 可视化 | Seaborn5 分钟入门 (六)——heatmap 热力图
    微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seabo ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • 基于TensorFlow的Keras高级API实现手写体数字识别
    前言这个项目的话我也是偶然在B站看到一个阿婆主(SvePana)在讲解这个,跟着他的视频敲的代码并学习起来的。并写在自己这里做个笔记也为 ... [详细]
  • 【ExtJS】自定义组件datetimefield(一)
    目的:ExtJS中提供了下拉日期选择控件Ext.form.field.Date与下拉时间选择控件Ext.form.field.Time。不过没有一个在选择日期时选择时间的控件dat ... [详细]
author-avatar
能然然520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有