(如果对任何人都重要,我正在使用python 3.6.6)
我正在为当前处于私有Alpha并不断更新的游戏制作GUI安装程序。
我已经制作了一个控制台版本:
from tqdm import tqdm
import requests, os, sys, zipfile, shutil, subprocess
chunk_size = 1024
url = "{LINK TO FILE YOU WANT TO DOWNLOAD}"
r = requests.get(url, stream = True)
total_size = int(r.headers['content-length'])
print("Are you sure you want to download the newest version of RFMP?")
print("y/n", end=': ')
answer = input()
while True:
if answer == 'y':
if os.path.exists("RFMB6_WINDOWS"):
print('')
print('')
print('Removing old RFMP files...')
subprocess.check_call(('attrib -R ' + 'RFMB6_WINDOWS' + '\\* /S').split())
shutil.rmtree('RFMB6_WINDOWS')
print('')
print('Removed old files.')
break
else:
break
elif answer == 'n':
sys.exit()
else:
print("That is not a valid answer, please answer with y/n.")
answer = input()
print('')
print('')
print('Downloading:')
with open('RFMB6_WINDOWS.zip', 'wb') as f:
for data in tqdm(iterable = r.iter_content(chunk_size = chunk_size), total = total_size/chunk_size, unit = 'KB'):
f.write(data)
print('')
print("Download Complete.")
print('')
print('')
print("Would you like to extract it?")
print("y/n", end=': ')
answer2 = input()
while True:
if answer2 == 'y':
print('')
print('')
print('Extracting...')
zip_ref = zipfile.ZipFile("RFMB6_WINDOWS.zip", 'r')
zip_ref.extractall("RFMB6_WINDOWS")
zip_ref.close()
print('')
print('Extraction Complete')
print('')
print('')
print('Cleaning up...')
os.remove("RFMB6_WINDOWS.zip")
print('')
print('Done! You have succesfully installed the newest version of the Ravenfield Multiplayer Private Alpha.')
break
elif answer2 == 'n':
print('')
print('Done! You have succesfully downloaded the newest Zip of the Ravenfield Multiplayer Private Alpha.')
break
else:
print("That is not a valid answer, please answer with y/n.")
answer = input()
os.system('pause')
我只会用它来下载1个特定的链接,因此请忽略url变量。
当我单击显示“下载”的按钮时,我试图制作一个执行相同操作的GUI。我想制作一个进度条,并创建一个文本框,告诉您发生了什么事,例如下载,解压缩等。我不需要目录选项。我只需要它就可以下载文件所在的位置,并删除仍然存在的旧文件。
这是我的问题:我如何学习如何做?我看过tkinter教程和其他问题,但是我只找到python 2的东西或要开发用于修改和调用自己的工作的东西。我正在寻找的链接和/或示例可以告诉我如何去创建这样的东西。预先感谢任何帮助我的人。
P.S。在编码方面,我是一个菜鸟,所以无论您如何解释,都请彻底进行。
P.S.S。为了运行控制台应用程序,您需要通过终端运行它,并在'url'变量中添加自己的链接。
答案 0 :(得分:1)
看看PySimpleGUI。您可以使用下载按钮,输出窗口和进度栏轻松构建布局。如果遇到麻烦,请停在GitHub上并发布问题。
答案 1 :(得分:0)
使用Python3的Tkinter文档:
https://docs.python.org/3/library/tk.html
此答案可能会帮助您: