专栏首页python3用python实现一个转盘

用python实现一个转盘

#抽奖  面向对象版本
import tkinter
import time
import threading

class choujiang:
    #初始化魔术方法
    def __init__(self):
        #准备好界面
        self.root = tkinter.Tk()
        self.root.title('lowB版转盘')
        self.root.minsize(300, 300)
        # 声明一个是否按下开始的变量
        self.isloop = False
        self.newloop = False
        #调用设置界面的方法
        self.setwindow()
        self.root.mainloop()



    #界面布局方法
    def setwindow(self):
        #开始停止按钮
        self.btn_start = tkinter.Button(self.root, text = 'start/stop',command = self.newtask)
        self.btn_start.place(x=90, y=125, width=50, height=50)

        self.btn1 = tkinter.Button(self.root, text='赵', bg='red')
        self.btn1.place(x=20, y=20, width=50, height=50)

        self.btn2 = tkinter.Button(self.root, text='钱', bg='white')
        self.btn2.place(x=90, y=20, width=50, height=50)

        self.btn3 = tkinter.Button(self.root, text='孙', bg='white')
        self.btn3.place(x=160, y=20, width=50, height=50)

        self.btn4 = tkinter.Button(self.root, text='李', bg='white')
        self.btn4.place(x=230, y=20, width=50, height=50)

        self.btn5 = tkinter.Button(self.root, text='周', bg='white')
        self.btn5.place(x=230, y=90, width=50, height=50)

        self.btn6 = tkinter.Button(self.root, text='吴', bg='white')
        self.btn6.place(x=230, y=160, width=50, height=50)

        self.btn7 = tkinter.Button(self.root, text='郑', bg='white')
        self.btn7.place(x=230, y=230, width=50, height=50)

        self.btn8 = tkinter.Button(self.root, text='王', bg='white')
        self.btn8.place(x=160, y=230, width=50, height=50)

        self.btn9 = tkinter.Button(self.root, text='冯', bg='white')
        self.btn9.place(x=90, y=230, width=50, height=50)

        self.btn10 = tkinter.Button(self.root, text='陈', bg='white')
        self.btn10.place(x=20, y=230, width=50, height=50)

        self.btn11 = tkinter.Button(self.root, text='褚', bg='white')
        self.btn11.place(x=20, y=160, width=50, height=50)

        self.btn12 = tkinter.Button(self.root, text='卫', bg='white')
        self.btn12.place(x=20, y=90, width=50, height=50)

        # 将所有选项组成列表
        self.girlfrends = [self.btn1,self.btn2,self.btn3,self.btn4,self.btn5,self.btn6,self.btn7,self.btn8,self.btn9,self.btn10,self.btn11,self.btn12]

    def rounds(self):
        # 判断是否开始循环
        if self.isloop == True:
            return

        # 初始化计数  变量
        i = 0
        # 死循环
        while True:
            if self.newloop == True:
                self.newloop = False
                return

            # 延时操作
            time.sleep(0.1)
            # 将所有的组件背景变为白色
            for x in self.girlfrends:
                x['bg'] = 'white'

            # 将当前数值对应的组件变色
            self.girlfrends[i]['bg'] = 'red'
            # 变量+1
            i += 1
            # 如果i大于最大索引直接归零
            if i >= len(self.girlfrends):
                i = 0

    # 建立一个新线程的函数
    def newtask(self):
        if self.isloop == False:
            # 建立线程
            t = threading.Thread(target = self.rounds)
            # 开启线程运行
            t.start()
            # 设置循环开始标志
            self.isloop = True
        elif self.isloop == True:
            self.isloop = False
            self.newloop = True



c = choujiang()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 长连接 mysql数据库

    python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能

    py3study
  • PyQt5--QProgressBar

    py3study
  • day23 03 组合的例子

    对象=类名()----实例化过程:创建了一个self对象,执行_init_方法初始化,返回self对象给外部

    py3study
  • 三、wss连接B站弹幕

    py3study
  • unslider源码分析

    根据Bootstrap中文网的介绍,Unslider一个超小的 jQuery轮播(slider)插件,参照这个汉化版的介绍页面,这个插件有你需要的优点,但是本...

    用户3579639
  • MJRefresh源码剖析与学习

    建议查看原文:https://www.jianshu.com/p/23c876f8ae39(不定时更新)

    Dwyane
  • 商业篇 | 使用python开发性格分析工具卖钱

    如此不均衡的贫富差距,各行业的领导者如何能管理好公司,让员工们即努力产出,又能安于现状呢?每个领导者必学的一门课程就是职场心理学。只有你充分了解员工心理与对应的...

    叫我龙总
  • 福利来啦,送给大家一个小游戏的源码,不要错过哟(复制粘贴运行即可玩)

    从小到大玩过很多的游戏,在我小时候,能玩游戏的地方不多,那时玩游戏都是偷摸玩的,只要是个游戏就觉得非常有趣,比较经典的有魂斗罗,拳皇,超级玛丽,贪吃蛇,俄罗斯方...

    松鼠爱吃饼干
  • 喜欢的歌曲不在一个平台怎么办?你需要一个自己专属的音乐播放器

    网易云音乐,QQ音乐,酷狗音乐,是我们经常会用到的音乐软件,当然有时候我们因为一首歌,需要在各大音乐平台上跳转,那么我们完全可以使用python自己打造一款音乐...

    松鼠爱吃饼干
  • python实现队列

    队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元...

    一墨编程学习

扫码关注云+社区

领取腾讯云代金券