2022年学了乌克丽丽,写了一个爬格子练习器,年底了,改进了一下,先给大家看看界面,中间的4个数字代表品格,会按照一定时间自动切换前4个品格,方便爬格子练习,品格的切换速度也可以自由调节!

使用了控件的有:Button、Label、OptionMenu,布局则是pack、place的混合使用,整个程序大约80行,如果你正在练习乌克丽丽、也在学习tkinter,这个程序不要错过哦,还有after方法的使用,以及DoubleVar的使用(涉及到双向绑定)、Frame的区域组合等等,欢迎交流!

开源

import tkinter
import randomclass MainWindow(tkinter.Tk):def __init__(self, **kwargs):super().__init__(**kwargs)self.title("王员外爬格子练习器_v1.0")self.wm_geometry('800x600')self.last_index = 0self.str_var_list = []self.cancel_after_id = Noneself.current_status = "new"self.change_interval_var = tkinter.DoubleVar(value=3)self.source_list = ['1234', '1243', '1324', '1342', '1423', '1432', '2134', '2143', '2314', '2341', '2413','2431', '3124', '3142', '3214', '3241', '3412', '3421', '4123', '4132', '4213', '4312', '4321']default_number = self.source_list[0]self.number_box = tkinter.Frame(self)self.number_box.place(in_=self, relx=0.5,rely=0.5, anchor=tkinter.CENTER)for num in default_number:self.str_var_list.append(self.create_label(self.number_box, num))self.init_top_zone()self.init_start_btn()def init_top_zone(self):my_top_zone = tkinter.Frame(self)my_top_zone.pack(side=tkinter.TOP, anchor=tkinter.W,pady=2, fill=tkinter.X)tips = tkinter.Label(my_top_zone, text="每个数字代表品格,欢迎挑战您的手速", font=('微软雅黑', 12), fg="red")tips.pack(side=tkinter.LEFT, anchor=tkinter.W)interval_zone = tkinter.Frame(my_top_zone)interval_zone.pack(side=tkinter.RIGHT, anchor=tkinter.E)choice_label = tkinter.Label(interval_zone, text="品格切换速度(秒):")choice_label.pack(side=tkinter.LEFT)chice_interval = tkinter.OptionMenu(interval_zone, self.change_interval_var, "0.3", "0.5", "1", "2", "3", "4", "5", "6")chice_interval.pack(side=tkinter.LEFT, anchor=tkinter.E)def init_start_btn(self):def run_start():if self.current_status == "new":self.change_number()start_btn["text"] = "停止"self.current_status = "running"else:self.after_cancel(self.cancel_after_id)self.current_status = "new"start_btn['text'] = "开始"start_btn = tkinter.Button(self, text="开始", font=('微软雅黑', 35), fg='red', command=run_start)start_btn.pack(side=tkinter.BOTTOM, fill=tkinter.X)def change_number(self):index = random.randint(0, len(self.source_list) - 1)if self.last_index == index:index = index + 1if index == len(self.source_list):index = 0self.last_index = indexresult = self.source_list[index]for index, var in enumerate(self.str_var_list):var.set(result[index])safe_mill = int(self.change_interval_var.get() * 1000)self.cancel_after_id = self.after(safe_mill, func=self.change_number)def create_label(self, master, text) -> tkinter.Label:str_var = tkinter.StringVar(value=text)my_label = tkinter.Label(master, textvariable=str_var, font=('微软雅黑', 220), padx=10)my_label.pack(side=tkinter.LEFT)return str_varif __name__ == "__main__":root_window = MainWindow()root_window.mainloop()

总结

学习tkinter多了, 有些程序很喜欢用tkinter去写,简洁好玩!

tkinter尤克里里爬格子练习器相关推荐

  1. 尤克里里怎么样_尤克里里入门简单教程

    相比吉他的六弦,尤克里里只有四弦,这就在学习上要轻松不少.但是,即使是四弦,也有尤克里里的指法图.在学习尤克里里之前,一定要知道的尤克里里四弦对应的四音.尤克里里第四到第一弦的空弦对应的是GCEA四个 ...

  2. 尤克里里怎么样_尤克里里和吉他区别?尤克里里与吉他相比有什么不可替代的优势...

    尤克里里和吉他有什么区别? 想必大家都见过尤克里里吧,就是类似吉他形状的一种小型弦拨乐器. 我们可以简单的认为:尤克里里是简化版本的吉他,更加简单,更加便宜. 小编弹的就是尤克里里 2.从外观上:吉他 ...

  3. 安卓古筝软件_超详细自学软件测评|小提琴/吉他/电子琴/尤克里里/电子鼓

    以下真的是我App Store搜完用完之后都觉得不错的软件,能看到的付费app我都用过了,为了选软件我App Store还中国英国区挑来挑去,大家真的可以根据这篇文来试试-很多安卓机也有.除了软件还有 ...

  4. 安卓古筝软件_新手如何自学乐器|零基础自学小提琴/吉他/电子琴/尤克里里/竖笛/电子鼓软件超详细测评+推荐...

    以下真的是我App Store搜完用完之后都觉得不错的软件,能看到的付费app我都用过了,为了选软件我App Store还中国英国区挑来挑去,大家真的可以根据这篇文来试试-很多安卓机也有.除了软件还有 ...

  5. D和弦的音阶在尤克里里上应该怎么按?

    预备知识: 尤克里里C大调下DO RE MI FA SOl LA XI的这几个音是怎么按的以及为什么这么按 设定一个前提 空弦就相当于按住了零品. C大调下DO的按法是三弦零品.由于C和D相差一个全音 ...

  6. 计算机弹奏春风十里报新年,春风吹十里,好运新一年〈春风十里报新年〉接个吻,开一枪/火鸡/吕口口/Lambert/杨胖雨「尤克里里+吉他弹唱谱」...

    原标题:春风吹十里,好运新一年〈春风十里报新年〉接个吻,开一枪/火鸡/吕口口/Lambert/杨胖雨「尤克里里+吉他弹唱谱」 春风十里报新年 接个吻,开一枪/火鸡/吕口口/Lambert/杨胖雨 ○〈 ...

  7. 尤克里里好不好学?只要3招!没有音乐基础的小白也能轻松上手

    尤克里里凭借其娇小可爱的外形和小清新的音色,吸引了不少的粉丝.很多人对这样一款小乐器产生了浓厚的兴趣,又担心自己没有音乐基础,学不成个样子.其实不用想这么多,尤克里里可是世界上最简单好学的乐器之一了. ...

  8. 计算机音乐乐谱小幸运,田馥甄小幸运尤克里里四线谱

    田馥甄小幸运尤克里里四线谱 <小幸运>是田馥甄演唱的一首歌曲,电影<我的少女时代>的主题曲,许多人都喜欢听这首歌曲.下面由百分网小编为大家介绍<小幸运>尤克里里四线 ...

  9. 用尤克里里弹奏著名湖南民歌「 浏阳河 」

    <浏阳河>是一首湖南民歌,由徐叔华作词,朱立奇.唐璧光作曲,收录于音乐专辑<20世纪中华歌坛名人百集珍藏版>. 1950年,湖南土改运动开始,黎托乡被选为土改试点.当年,由于黎 ...

  10. mad和php的区别,独家揭秘评测恩雅eutx1尤克里里和卡卡mad尤克里里有啥区别?哪个好?深度剖析曝光...

    这两个恩雅eutx1尤克里里和卡卡mad尤克里里都还可以的哈,老牌子的,质量不错的,但是恩雅EUTX1整体要精致点儿,性价比也蛮高的,看个人吧,我自己用的是恩雅EUTX1,款式是我喜欢的,整体看着大气 ...

最新文章

  1. 多场景下的AI疫情防控“天网”:解读云边端联动下的全栈AI技术
  2. sharepoint 2013 使用outlook 打开sharepoint 任务失败
  3. Solr安装(单机版)
  4. 求教PHP+oracle的开发
  5. 用Java Servlets代替CGI
  6. atlas mysql 安装_atlas中间件安装配置
  7. appium+python自动化51-adb文件导入和导出(pull push)
  8. 一文带你了解JDK动态代理的原理
  9. rpm、lpm是什么意思?
  10. 霹雳吧啦Wz语义分割学习笔记P4
  11. 计算机按电源键无法反应,电脑无法开机怎么办 按电脑开机键也没反应的原因及处理解决办法...
  12. 微软五笔拼音输入法 86版 v7.2 bt
  13. GEE-Python遥感大数据分析、管理与可视化技术应用
  14. 时空恋旅人 豆瓣影评
  15. linux脚本编写图形,shell图形化界面脚本实现
  16. Taro使用Vue3踏坑日记:Module not found: Can‘t resolve ‘@vue/server-renderer‘ in ‘/Users/...‘
  17. Android ListView滑动删除及响应事件详解
  18. 智慧景区指挥调度系统介绍
  19. ReactNative进阶(二十八):ES6 Symbol 用法
  20. ETL 可行性方案 Kettle

热门文章

  1. nginx: [error] OpenEvent(“Global\ngx_reload_7652“) failed (2: The system cannot find the file specif
  2. 腾讯坐标系转化成百度坐标系
  3. Python界面设计之Label
  4. supermap mysql_SuperMap iMobile for Android定位实现
  5. 修炼一名程序员的职业水准(林庆忠__署名原创)
  6. Nginx访问间歇性卡顿的解决办法
  7. WINVNC源码阅读(七)
  8. 地理信息系统(GIS) 知识详解
  9. ssms mysql_SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法...
  10. Android 7.1 亮度调节之BrightnessController