猿问

使用 Python 3 和 Tkinter 制作 GUI 文件下载器

(如果这对任何人都很重要,我正在使用 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()

我只会使用它来下载 1 个特定链接,因此请忽略 url 变量。


当我单击一个显示“下载”的按钮时,我正在尝试制作一个执行相同操作的 GUI。我想制作一个进度条和一个文本框,告诉您正在发生的事情,例如下载、提取等。我不需要目录选项。我只需要它下载文件所在的位置并删除旧文件(如果它仍然存在)。


所以这是我的问题:我如何学习如何做到这一点?我查看了 tkinter 教程和其他问题,但我只找到了 python 2 的东西或开发用来修改和调用我自己的工作的东西。我正在寻找的是可以告诉我如何创建这样的东西的链接和/或示例。在此先感谢任何帮助我的人。


PS 在编码方面我是个菜鸟,所以无论你解释什么,请彻底完成。


PSS 为了运行控制台应用程序,您需要通过终端运行它并在“url”变量中添加您自己的链接。


交互式爱情
浏览 327回答 2
2回答

哔哔one

看看PySimpleGUI。您可以轻松构建带有下载按钮、输出窗口和进度条的布局。如果遇到麻烦,请访问 GitHub 并发布问题。
随时随地看视频慕课网APP

相关分类

Python
我要回答