我想写一个小应用程序,它接受选定数量的文件,并存储未来事物的所有路径。
基本上:
从Nautilus中选择混合(图像,音频,视频)文件(在本例中),拖动它们,将它们放入此GUI中,并获取要在列表中写入的每个元素的绝对路径,例如。
程序本身根本不是问题,但是我在最简单的任务中失败了,可能是:创建一个GUI(我选择了GTK,但一切都会好的,只需要完成工作)谁接受这些元素并存储它们。
我和Glade一起玩,但我甚至不确定这是否是正确的选择。
有人可以帮我构建这个GUI或指出一些资源吗?
答案 0 :(得分:3)
这是开始使用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, GdkPixbuf, 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())