gpt4 book ai didi

python - 在 Python GUI (GTK) 中拖放文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:59 24 4
gpt4 key购买 nike

我想写一个小应用程序来获取选定数量的文件,并存储所有内容的路径以备将来使用。

基本上:

例如,从 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())

关于python - 在 Python GUI (GTK) 中拖放文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48469655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com