python中scale的用法_Tkinter Scale滑块组件的用法
Tkinter 库中,支持通过滑动滑块(Scale)来设置属性值,最常见的就是设定音量,如图 1 所示便是MAC上的音量调节滑块:
图 1 MAC上的音量控制器
图 2 所示便是 Windows 上的音量调节滑块:
图 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 所示。
图 3 估算位置初始画面
拖动滑块到估计的位置,然后单击“测量一下”按钮会显示测试结果,如图 4 所示。
图 4 查看实际值
python中scale的用法_Tkinter Scale滑块组件的用法相关推荐
- Python中threading的join和setDaemon的区别及用法 例子
Python中threading的join和setDaemon的区别及用法 Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ...
- python try else多余的设计_在python中利用try..except来代替if..else的用法
在有些情况下,利用try-except来捕捉异常可以起到代替if-else的作用. 比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的 # Definition for singl ...
- python中os.path.isdir()等函数的作用及用法
一 用法和概念: Python中的os模块用于和系统进行交互,其中: 1.os.listdir()用于返回一个由文件名和目录名组成的列表,需要注意的是它接收的参数需要是一个绝对的路径. 2.os.pa ...
- python中os.path.isdir()等函数的作用和用法
一 用法和概念: Python中的os模块用于和系统进行交互,其中: 1 os.listdir()用于返回一个由文件名和目录名组成的列表,需要注意的是它接收的参数需要是一个绝对的路径. 2 os.pa ...
- python中星号变量传参的几种特殊用法
python中星号变量的几种特殊用法 原文:https://www.jianshu.com/p/77acbc1b0d3e 在Python中星号除了用于乘法数值运算和幂运算外,还有一种特殊的用法&quo ...
- python中的if判断,和while循环的用法
程序的三种执行流程 1.顺序---从上到下 2.分支---根据if条件语句判断,决定执行规则 3.循环---使用while让特定的代码重复执行 if使用的方法案例 #if的实战小练习 #和电脑石头剪刀 ...
- python中输出函数是什么_python输出语句print的用法是什么?
python输出语句"print()"是式样化输出函数,用于打印输出."print()"函数会自动换行:printf()函数的语法为:"printf( ...
- python中mainloop什么意思_Python Turtle mainloop()用法
我有一个online tutorial的以下代码来学习基于事件的编程,方法是在点击鼠标时使停止灯改变状态.这里是我的代码的全部:Python Turtle mainloop()用法 import tu ...
- Python中threading的join和setDaemon的区别及用法
Python多线程编程时经常会用到join()和setDaemon()方法,基本用法如下: join([time]): 等待至线程中止.这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或 ...
最新文章
- c/c++基础 输入函数/流
- cython python3_30倍!使用Cython加速Python代码
- 分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍
- 如何解决多机房、多网络下的物联网部署方案?
- 突发!Java首度“落泪”,愿永久祝福Python!网友:我也想哭!
- hikaripool信息_聊聊hikari连接池的fixed pool design
- 利用低代码从0到1开发一款小程序
- Global Mapper 裁剪
- python计算皮尔森相关系数
- 【intellij】External and inferred annotations
- 新闻与传播c刊_3本新闻传播类期刊入围新版C刊扩展目录
- ChatGPT提问指令大全
- 台式计算机摄像头怎么打开,电脑外接摄像头怎么打开怎么用
- 联想Idealpad 710s - 13IKB 重装系统教程以及遇到的问题
- MethodParameter
- 图书推荐|计算机组成与设计(原书第5版) 硬件软件接口 RISC-V
- 红薯微剧场 | 开源众包发包记第一集 —— 前端篇
- 华为认证之HCIP-Video Conference
- 煤矿智能化相关50项团体标准征求意见
- 微软输入法,中文模式下使用英文标点
热门文章
- css 鼠标悬浮样式_【技术】CSS设置链接鼠标(失效)不能点样式
- Maven新建项目的JDK版本类型问题
- linux基础练习,Linux基础指令练习
- mysql打错了怎么办_数据库出错了怎么办?
- 基于JAVA+Servlet+JSP+MYSQL的超市管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的论坛管理系统
- 1. 概述--从零起步实现基于Html5的WEB设计器Jquery插件
- SQL Server中时间格式转换函数convert()的使用
- Bluetooth vs. Wi-Fi(IEEE 802.11)
- Ubuntu(Deepin)搭建Android开发环境(Android Studio)