在Python GUI(GTK)中删除文件

时间:2018-01-26 21:16:38

标签: python gtk pygtk

我想写一个小应用程序,它接受选定数量的文件,并存储未来事物的所有路径。

基本上:

从Nautilus中选择混合(图像,音频,视频)文件(在本例中),拖动它们,将它们放入此GUI中,并获取要在列表中写入的每个元素的绝对路径,例如。

程序本身根本不是问题,但是我在最简单的任务中失败了,可能是:创建一个GUI(我选择了GTK,但一切都会好的,只需要完成工作)谁接受这些元素并存储它们。

我和Glade一起玩,但我甚至不确定这是否是正确的选择。

有人可以帮我构建这个GUI或指出一些资源吗?

1 个答案:

答案 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())