【问题标题】:Using Python to override Windows Common File Dialog (and other Open/Save File Dialog windows)使用 Python 覆盖 Windows 通用文件对话框(和其他打开/保存文件对话框窗口)
【发布时间】:2013-05-01 20:00:47
【问题描述】:

我正在尝试编写一个程序来控制文档命名和文件系统将资产放置到我们的服务器中。我一直在用 Python 编写它,感谢这里的每个人以及关于 stackoverflow 的丰富信息,我很幸运。

话虽如此,我在下一步尝试中找不到任何东西。我希望我的程序运行而不是 Windows/Linux 通用文件对话框方法。例如,当有人在程序中按下“保存”按钮或“打开”按钮时,我希望我的程序能够打开并成为人们查找和保存文件的方式。我可以将它用作中间系统(在保存或打开调用时运行,但随后将其信息返回到本机对话框)但希望它接管。我在想我需要编写一个守护程序来监听适当的调用和拦截,但我不确定。任何帮助都会很棒。提前致谢!

-路易

【问题讨论】:

  • 听起来您想覆盖所有应用程序中的文件对话框。对吗?
  • 我是这么理解的。他想替换 windows/linux 上默认的打开文件对话框。
  • 没错,我想覆盖 windows 和 linux 中所有应用程序的文件对话框。或者至少在任何应用程序调用 Open/Save/Save-As 时运行我的程序。我的程序旨在提供标准命名协议并帮助引导用户到他们正在创建或试图查找的文档的所需位置。
  • 你有没有想过如何做到这一点?或者如果它可以完成?

标签: python windows dialog save intercept


【解决方案1】:

将“另存为”和“打开”按钮链接到这些;它对我来说非常有效:

def onOpen(self):
    ftypes = [('Python files', '*.py'), ('All files', '*')]
    dlg = Tkinter.FileDialog.Open(self, filetypes = ftypes)
    fl = dlg.show()

    if fl != '':
        text = self.readFile(fl)
        self.txt.insert(END, text)

def onSave_as(self):
     savefile = Tkinter.FileDialog.asksaveasfile(mode = 'w', defaultextension=".txte")
     self.parent.title("myTxtEditor")
     if savefile is None:
         return
     text2save = str(self.txt.get(1.0, END))
     savefile.write(text2save)
     savefile.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多