我想编写一个小应用程序,它接受选定数量的文件,并存储所有内容的路径以供将来使用。
基本上:
例如,从 Nautilus 中选择混合(图像、音频、视频)文件(在本例中),将它们拖放到此 GUI 中,并获取要写入列表中的每个元素的绝对路径。
程序本身根本不是问题,但我在最简单的任务上失败了,也许:创建一个 GUI(我选择了 GTK,但一切都会好起来,只需要完成工作)谁接受元素并存储他们。
我正在玩 Glade,但我什至不确定这是否是正确的选择。
有人可以帮助我构建这个 GUI 或指出一些资源吗?
这是开始使用 Glade、Gtk 和 Python 的好方法:
http://python-gtk-3-tutorial.readthedocs.io/en/latest/builder.html
并拖放:
http://python-gtk-3-tutorial.readthedocs.io/en/latest/drag_and_drop.html
使用小型工作程序进行编辑:
#!/usr/bin/env python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
import os, sys
class GUI:
def __init__(self):
window = Gtk.Window()
window.connect('destroy', Gtk.main_quit)
textview = Gtk.TextView()
enforce_target = Gtk.TargetEntry.new('text/plain', Gtk.TargetFlags(4), 129)
textview.drag_dest_set(Gtk.DestDefaults.ALL, [enforce_target], Gdk.DragAction.COPY)
textview.connect("drag-data-received", self.on_drag_data_received)
#textview.drag_dest_set_target_list([enforce_target])
window.add(textview)
window.show_all()
def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
print (data.get_text())
def main():
app = GUI()
Gtk.main()
if __name__ == "__main__":
sys.exit(main())
Run Code Online (Sandbox Code Playgroud)