最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python寫一個(gè)隨機(jī)點(diǎn)名軟件的實(shí)例

 更新時(shí)間:2019年11月28日 16:58:31   作者:寂靜的天空  
今天小編就為大家分享一篇python寫一個(gè)隨機(jī)點(diǎn)名軟件的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近有個(gè)隨機(jī)點(diǎn)名軟件的需求,故寫了一個(gè),上代碼:github地址

# -*- coding: utf-8 -*-
# @Time  : 18-12-31 下午4:21
# @Author : Felix Wang

from tkinter import *
import tkinter.font as tkFont
import random
import gc
import os, sys
import chardet
import copy
from threading import Thread
import time


def resource_path(relative):
  """
  圖片路徑
  :param relative:
  :return:
  """
  if hasattr(sys, "_MEIPASS"):
    return os.path.join(sys._MEIPASS, relative)
  return os.path.join(relative)


def center_window(root, width, height):
  """
  中心大小
  :param root: tk對象
  :param width:
  :param height:
  :return:
  """
  screenwidth = root.winfo_screenwidth()
  screenheight = root.winfo_screenheight()
  size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
  root.geometry(size)


def clear():
  lb.delete(0, END)


def get_names():
  names = []
  name_path = os.path.join(BASE_DIR, 'name.txt')
  with open(name_path, 'rb') as f:
    data = f.read()
    cod = chardet.detect(data)['encoding']
    if 'gb' in str(cod):
      cod = 'gbk'
    for name in data.decode(cod).strip().split('\n'):
      if name.strip():
        names.append(name.strip())
    return names


class MyThread(Thread):
  def __init__(self):
    self.ifdo = False
    self.auto_choise = False
    self.is_auto = -1
    super().__init__()

  def run(self):
    while True:
      if self.is_auto is True:
        while self.ifdo:
          index = random.randint(0, len(names) - 1)
          echo["text"] = names[index]
          root.update_idletasks()
          time.sleep(1 / 23 - 0.003)
        self.is_auto = -1
      elif self.is_auto is False:
        if self.auto_choise:
          self.auto()
          self.is_auto = -1
      time.sleep(0.1)

  def stop(self):
    """
    手動(dòng)抽獎(jiǎng)時(shí)點(diǎn)擊停止按鈕時(shí)的操作
    :return:
    """
    if self.is_auto:
      self.ifdo = False
      button2["text"] = '手動(dòng)抽獎(jiǎng)'
      pict['image'] = huaji_gif
      _name = random.choice(names)
      echo["text"] = _name
      lb.insert(END, _name)
      root.update_idletasks()
      root.update()
      for x in locals().keys():
        del locals()[x]
      gc.collect()
      pict['image'] = huaji_gif
      scrolly.update()

  def go(self):
    """
    手動(dòng)開始時(shí)的停止標(biāo)記
    :return:
    """
    if self.is_auto == -1:
      self.is_auto = True
      self.ifdo = True
      pict["image"] = huang_gif
      button2["text"] = '點(diǎn)擊停止'

  def auto_start(self):
    """
    自動(dòng)開始設(shè)置更改標(biāo)記
    :return:
    """
    if self.is_auto == -1:
      self.is_auto = False
      self.auto_choise = True
      pict["image"] = huang_gif
      button["text"] = '先別點(diǎn)我'
      global ft1
      ft1 = tkFont.Font(family='Fixdsys', size=80, weight=tkFont.BOLD)

  def auto(self):
    """
    自動(dòng)開始時(shí)執(zhí)行的操作
    :return:
    """
    copy_names = copy.deepcopy(names)
    ren = int(v.get())
    for i in range(ren):
      for a in range(23):
        index = random.randint(0, len(names) - 1)
        echo["text"] = random.choice(names)
        root.update_idletasks()
        time.sleep(1 / 23 - 0.003)

      choise_name = copy_names.pop(random.choice(range(len(copy_names))))
      echo["text"] = choise_name

      lb.insert(END, choise_name)
      if i == ren - 1:
        pict['image'] = huaji_gif
        button["text"] = '開始抽獎(jiǎng)'
      for a in range(5):
        root.update()
        time.sleep(0.06)

    root.update_idletasks()

    for x in locals().keys():
      del locals()[x]
    gc.collect()

    scrolly.update()
    self.auto_choise = False


flag = False


def name2():
  global flag
  flag = not flag

  if flag:
    tr.go()
  else:
    tr.stop()


def name():
  tr.auto_start()


try:
  BASE_DIR = os.path.dirname(os.path.abspath(__file__))

  names = get_names()

  root = Tk()

  root.title("隨機(jī)抽獎(jiǎng)器(by 王以濤)")

  center_window(root, 570, 160)

  ft = tkFont.Font(family='Fixdsys', size=40, weight=tkFont.BOLD)
  ft1 = tkFont.Font(family='Fixdsys', size=80, weight=tkFont.BOLD)
  echo = Label(root, text='隨機(jī)抽獎(jiǎng)', font=ft, width=8) # 默認(rèn)顯示
  echo.grid(row=1, column=1, columnspan=2)

  scrolly = Scrollbar(root)
  scrolly.grid(row=1, column=5, rowspan=2, ipady=30)
  lb = Listbox(root, yscrollcommand=scrolly.set, exportselection=False, height=6)
  lb.grid(row=1, column=3, rowspan=2, columnspan=2, pady=0)
  scrolly['command'] = lb.yview

  # button = Button(root, text='刪除所選名字', command=lambda x=lb: x.delete(ACTIVE))
  # button.grid(row=3, column=3)
  button = Button(root, text='刪除所有名字', command=clear)
  button.grid(row=3, column=4)

  v = StringVar()
  Scale(root, from_=1, to=len(names), resolution=1, orient=HORIZONTAL, variable=v).grid(row=2, column=1, columnspan=2)

  # 抽獎(jiǎng)時(shí)的圖片
  data_dir = os.path.join(BASE_DIR, "img")
  huaji_gif = PhotoImage(file=resource_path(os.path.join(data_dir, 'huaji.gif')))
  huang_gif = PhotoImage(file=resource_path(os.path.join(data_dir, 'huang.gif')))
  pict = Label(root, image=huaji_gif)
  pict.grid(row=1, column=0, rowspan=3)

  button = Button(root, text='自動(dòng)抽獎(jiǎng)', command=name)
  button.grid(row=3, column=1, columnspan=1)
  flag = False

  button2 = Button(root, text='手動(dòng)抽獎(jiǎng)', command=name2)
  button2.grid(row=3, column=2, columnspan=1)

  tr = MyThread()
  tr.setDaemon(True)
  tr.start()

  root.mainloop()
except Exception as e:
  print('錯(cuò)誤信息', e)
  time.sleep(60)

效果如下:

以上這篇python寫一個(gè)隨機(jī)點(diǎn)名軟件的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中WebService客戶端接口調(diào)用及身份驗(yàn)證的問題

    Python中WebService客戶端接口調(diào)用及身份驗(yàn)證的問題

    這篇文章主要介紹了Python中WebService客戶端接口調(diào)用及身份驗(yàn)證的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python處理xml文件的方法小結(jié)

    python處理xml文件的方法小結(jié)

    這篇文章主要介紹了python處理xml文件的方法,結(jié)合實(shí)例形式總結(jié)分析了Python常見的xml文件處理技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • python的自變量選擇(所有子集回歸,后退法,逐步回歸)

    python的自變量選擇(所有子集回歸,后退法,逐步回歸)

    這篇文章主要介紹了python的自變量選擇(所有子集回歸,后退法,逐步回歸),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-06-06
  • 使用python-pptx包批量修改ppt格式的實(shí)現(xiàn)

    使用python-pptx包批量修改ppt格式的實(shí)現(xiàn)

    今天小編就為大家分享一篇使用python-pptx包批量修改ppt格式的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中的 is 和 == 以及字符串駐留機(jī)制詳解

    Python中的 is 和 == 以及字符串駐留機(jī)制詳解

    這篇文章主要介紹了Python中的 is 和 == 以及字符串駐留機(jī)制詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python顯示天氣預(yù)報(bào)

    python顯示天氣預(yù)報(bào)

    這篇文章主要介紹了python顯示天氣預(yù)報(bào)功能,python2.7運(yùn)行通過,需要的朋友可以參考下
    2014-03-03
  • Django上線部署之IIS的配置方法

    Django上線部署之IIS的配置方法

    這篇文章主要介紹了Django上線部署之IIS的配置方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python制作羅盤時(shí)鐘效果

    python制作羅盤時(shí)鐘效果

    這篇文章主要介紹了python制作羅盤時(shí)鐘效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • python后端接收前端回傳的文件方法

    python后端接收前端回傳的文件方法

    今天小編就為大家分享一篇python后端接收前端回傳的文件方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python sqrt()函數(shù)用法說明

    Python sqrt()函數(shù)用法說明

    這篇文章主要介紹了Python sqrt()函數(shù)用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

兴化市| 东安县| 河北区| 临沧市| 远安县| 大足县| 荣昌县| 什邡市| 淮阳县| 海南省| 勐海县| 丰宁| 二连浩特市| 婺源县| 涟源市| 梅州市| 津市市| 永修县| 鸡东县| 新营市| 大埔县| 枣强县| 同德县| 普兰县| 浮梁县| 平山县| 赫章县| 靖江市| 白河县| 龙海市| 新和县| 会东县| 光山县| 山阳县| 高邮市| 隆尧县| 白玉县| 河北区| 德化县| 全州县| 阿拉尔市|