Nic*_*ger 4 python button file-transfer python-3.x pysimplegui
第一次尝试 PySimpleGui,想要创建一个 exec 程序,允许用户将目录/文件移动或复制到他们选择的目的地,但并不真正了解如何将操作链接到按钮。
我当前的程序如下所示:
import PySimpleGUI as sg
import shutil, errno
src = ""
dest = ""
def copy(src, dest):
try:
shutil.copytree(src, dest)
except OSError as e:
# If the error was caused because the source wasn't a directory
if e.errno == errno.ENOTDIR:
shutil.copy(src, dest)
else:
print('Directory not copied. Error: %s' % e)
#Me testing out commands in PSG
layout = [[ sg.Text("Select path from source to
destination")],
[sg.Text("Source Folder", size=(15,1)), sg.InputText(src),
sg.FolderBrowse()],
[sg.Text("Destination Folder", size=(15,1)),
sg.InputText(dest), sg.FolderBrowse()],
[sg.Button("Transfer", button_color=("white", "blue"), size=
(6, 1)),sg.Button(copy, "Copy", button_color=("white",
"green"), size=(6, 1)),sg.Exit(button_color=("white", "red"),
size=(6, 1))]]
event = sg.Window("Mass File Transfer").Layout(layout).Read()
Run Code Online (Sandbox Code Playgroud)
据我所知,我认为将复制命令包含到按钮的属性中会将其链接到代码中前面定义的命令。我将 src 和 dest 留空作为 src 和 dest 的输入,并添加了浏览文件夹扩展以方便文件管理。
按钮与函数或回调函数之间没有“链接”。
要执行您要查找的操作,请在从读取返回“复制按钮”事件时调用复制。
我强烈建议您通读文档以了解这些对 Button 等的调用是如何工作的。 http://www.PySimpleGUI.org
我认为您正在寻找代码执行以下操作:
import PySimpleGUI as sg
import shutil, errno
src = ""
dest = ""
def copy(src, dest):
try:
shutil.copytree(src, dest)
except OSError as e:
# If the error was caused because the source wasn't a directory
if e.errno == errno.ENOTDIR:
shutil.copy(src, dest)
else:
print('Directory not copied. Error: %s' % e)
#Me testing out commands in PSG
layout = [[ sg.Text("Select path from source to destination")],
[sg.Text("Source Folder", size=(15,1)), sg.InputText(src),
sg.FolderBrowse()],
[sg.Text("Destination Folder", size=(15,1)),
sg.InputText(dest), sg.FolderBrowse()],
[sg.Button("Transfer", button_color=("white", "blue"), size=
(6, 1)),sg.Button("Copy", button_color=("white",
"green"), size=(6, 1)),sg.Exit(button_color=("white", "red"),
size=(6, 1))]]
window = sg.Window("Mass File Transfer").Layout(layout)
while True:
event, values = window.Read()
print(event, values)
if event in (None, 'Exit'):
break
if event == 'Copy':
copy(values[0], values[1])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9281 次 |
| 最近记录: |