-
2020-12-04 13:03:14
tk drag & drop files
tkdnd
以windows为例
1. 下载tkdnd windows binary
http://sourceforge.net/projects/tkdnd/files/
放在anaconda安装目录下,类似Anaconda3\Library\lib\tkdnd
注意到,在lib文件夹中,其他的子文件夹,比如tk,里面也有pkgIndex.tcl文件
参考
https://wiki.tcl-lang.org/page/TCLLIBPATH#ece20ed7a2a1146a78e8c7a8f4037b14be4626a8ec7292ce129bede23140870b
其中的《Determining which directory to add to TCLLIBPATH》一节
2. 下载tkdnd python bindings
http://tkinterdnd.sourceforge.net/
运行python bindings的例子,即可成功运行
另外可以参考:
https://stackoverflow.com/questions/25427347/how-to-install-and-use-tkdnd-with-python-2-7-tkinter-on-osx
https://stackoverflow.com/questions/14267900/python-drag-and-drop-explorer-files-to-tkinter-entry-widget
关于tk的界面设计,可以使用PAGE工具
http://page.sourceforge.net/
安装后,启动时需要调用wish.exe,一般可以在anaconda目录中找到tck/tk的环境,修改一下桌面快捷方式即可
另一个tk界面设计工具,pygubu,使用类似XML格式定义界面,然后导入
https://stackoverflow.com/questions/14142194/is-there-a-gui-design-app-for-the-tkinter-grid-geometry#answer-29053928
https://github.com/alejandroautalan/pygubu
python tk 界面的项目示例
https://github.com/topics/tkinter-python?l=python&o=desc&s=
https://github.com/boseji/python-exe-gui-example
https://github.com/BlackRock404/Elise
python Qt 界面的项目示例
https://github.com/lmacken/liveusb-creator/
https://github.com/kovidgoyal/calibre
更多相关内容 -
拖动文件至对话框,获取文件路径
2012-06-11 22:39:53VC实现文件拖拽) E2 f2 G0 x( V7 \* Q" W" I0 B 2009-08-30 21:212 i# Y0 M4 A" k: s" | 在基于对话框的程序中,默认是没有这个消息的。0 T/ R; q$ c2 O: U& i7 Y4 z 1、按下Ctrl+W,弹出类向导对话框,选择Class ... -
PYQT5 拖拽获取文件路径
2021-11-30 14:50:24在进行获取文件路径的操作时,可以选择使用文件对话框打开一个本地文件,也可以直接将文件拖到窗体上,自动获取此文件的绝对路径。 代码展示 import sys from PyQt5.QtWidgets import * from PyQt5.QtCore ...在进行获取文件路径的操作时,可以选择使用文件对话框打开一个本地文件,也可以直接将文件拖到窗体上,自动获取此文件的绝对路径。
代码展示
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class example(QWidget): def __init__(self): super(example, self).__init__() # 窗口标题 self.setWindowTitle('拖拽获取文件路径') # 定义窗口大小 self.resize(500, 400) self.QLabl = QLabel(self) self.QLabl.setGeometry(0, 100, 4000, 38) # 调用Drops方法 self.setAcceptDrops(True) # 鼠标拖入事件 def dragEnterEvent(self, evn): self.setWindowTitle('鼠标拖入窗口了') self.QLabl.setText('文件路径:\n' + evn.mimeData().text()) # 鼠标放开函数事件 evn.accept() # 鼠标放开执行 def dropEvent(self, evn): self.setWindowTitle('鼠标放开了') def dragMoveEvent(self, evn): print('鼠标移入') if __name__ == "__main__": app = QApplication(sys.argv) e = example() e.show() sys.exit(app.exec_())
操作截图
备注:
使用文件对话框打开一个本地文本文件
def openFile(self): fname = QFileDialog.getOpenFileName(self, '打开文件','./') if fname[0]: with open(fname[0], 'r',encoding='gb18030',errors='ignore') as f: self.tx.setText(f.read())
今日美图
-
实现拖动文件获取路径
2013-10-25 15:02:16在wpf中实现拖动文件到窗口内并获取文件路径的功能 -
pyqt实现文件拖放获取路径
2020-12-03 18:34:13前言文件拖放自动填充路径操作本应该是个很简单的操作,结果搜到的教程都在讲控件的拖拽,几经折磨后终于算是实现了这个功能吧。操作首先,要知道pyqt的控件有个setAcceptDrops(bool)方法可以设置控件是否接受拖放这...前言
文件拖放自动填充路径操作本应该是个很简单的操作,结果搜到的教程都在讲控件的拖拽,几经折磨后终于算是实现了这个功能吧。
操作
首先,要知道pyqt的控件有个setAcceptDrops(bool)方法可以设置控件是否接受拖放这个动作,如果是用qt设计师设计的界面可以看到该属性是默认打开的,既然默认打开,那么理论就应该可以实现文件拖放功能。
但实际操作时我却发现在IDE里可以拖放,但是到了实际的桌面却无法拖放,这一点我真是无法理解啊。。
因此我只好去看了一些拖拽的教程,发现在重写一个新的QLineEdit类的情况下是可以使用的,重写的类如下:class MyQLine(QLineEdit):
"""实现文件拖放功能"""
def __init__(self):
super().__init__()
self.setAcceptDrops(True) # 设置接受拖放动作
def dragEnterEvent(self, e):
if e.mimeData().text().endswith('.srt'): # 如果是.srt结尾的路径接受
e.accept()
else:
e.ignore()
def dropEvent(self, e): # 放下文件后的动作
path = e.mimeData().text().replace('file:///', '') # 删除多余开头
self.setText(path)
最关键的是e.mimeData().text()获取路径,这里的mimeData()可以参考官方说明
还有一个问题就是我是用qt设计师设计界面然后动态导入的,我自己新建了一个单行文本控件后,哪怕控件名字和之前的名字一样,最后生成的界面里还是会出现两个文本框,但我又不想在qt设计师里删除原来的文本框。所以我只好来个移花接木,把原来的文本框删掉并替换成我自己的。self.ui.file_path.deleteLater() # 删除原有的路径框
self.ui.file_path = MyQLine() # 新建自己的替换原有的
self.ui.file_path.setPlaceholderText('浏览或拖拽SRT字幕文件到这里')
self.ui.horizontalLayout_2.addWidget(self.ui.file_path)
self.ui.horizontalLayout_2.addWidget(self.ui.file)
针对上面的问题我后来找到了解决方案。
-
webuploader拖拽上传文件/文件夹,如何获取文件的路径
2020-12-04 13:03:25webuploader拖拽上传文件或文件夹时,怎么获取到文件的路径webkitRelativePath。如果通过的方式,是可以获取到里面文件的路径,但是拖拽的话,看到里面的路径为空的。// 当有文件被添加进队列的时候uploader.on('...webuploader拖拽上传文件或文件夹时,怎么获取到文件的路径webkitRelativePath。如果通过的方式,是可以获取到里面文件的路径,但是拖拽的话,看到里面的路径为空的。
// 当有文件被添加进队列的时候
uploader.on('fileQueued', function( file ) {
console.log(file);
uploader.md5File( file )
// 及时显示进度
.progress(function(percentage) {
console.log('Percentage:', percentage);
})
// 完成
.then(function(val) {
// console.log('md5 result:', val);
});
});
uploader.on('uploadBeforeSend',function(object,data,headers){
console.log(object);
data.webkitRelativePath=object.file.source.source.webkitRelativePath?object.file.source.source.webkitRelativePath:"";
console.log(data);
data.fileId="";
});
当我用input控件上传的时候,fileQueued事件触发和uploadBeforeSend事件触发打印均可以获取到文件的路径,而使用拖拽上传的时候则获取到的路径为空。
-
python tkinter 打开窗口获取文件的路径
2021-12-27 13:01:53def se():#用按键来执行这个函数,按键执行这个函数后,系统就会弹出选择文件的窗口 path=filedialog.askopenfilename() path=path_.replace("/","\\\\")#通过replace函数替换... print(path)#打印路径出来 ... -
python拖放文件,拖拽文件,返回路径
2021-12-30 11:47:36import tkinter from tkinter.messagebox import showinfo import windnd def dragg(files): msg = ‘\n’.join((item.decode(‘gbk’) for item in files)) # showinfo(‘拖入的文件是:’,msg) print(msg) tk =... -
python之文件处理: 对话框获取路径、获取特定文件
2021-05-30 16:24:57# 通过对话框获取文件路径 def getPathByDialog(self): root = tk.Tk() root.withdraw() self.Folderpath = filedialog.askdirectory() #获得选择好的文件夹 #Filepath = filedialog.askopenfilename() #获得... -
python 读取文件路径,获取文件名
2021-04-21 14:42:14# -*- coding: utf-8 -*- """ Created on Wed Apr 21 11:50:25 2021 获取当前文件的路径 获取当前文件的父目录 获取当前目录的父目录的父目录与datetime1.py... # 获取当前文件路径 current_path = os.path.abspath... -
wxPython:将文件拖到窗口中以获取文件路径
2021-02-05 01:43:40打印self.data时,您应该看到...这是我的代码的略微修改版本,它既打印到stdout的文件路径也打印到文本控件:import wx########################################################################class MyFileDrop... -
求助tkinter模块如何获取拖拽文件的内容
2020-12-10 08:15:21from tkinter import filedialogimport xlrdimport tkinter as tkfrom tkinter import ttkimport windnd# 选择文件def openfile():# sfname = filedialog.askopenfilename(title='选择Excel文件', filetypes=[('... -
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020-12-17 02:34:49: # 选择文件 selectFileName = tk.filedialog.askopenfilename(title='\u9009\u62e9\u6587\u4ef6') e.set(selectFileName) def show(e_entry): #显示图片 img = cv2.imread(e_entry.get()) cv2.imshow("PICTURE... -
Python获取Windows用户图片文件夹路径
2022-03-28 21:17:29使用Python获取Windows系统下的默认图片路径、文档路径、下载路径都可以使用以下方法: 只需要更改Pictures为对应名称即可,例如Downloads等。 os.path.join(os.environ['USERPROFILE'],'Pictures') -
python通过对话框实现文件或文件夹路径的选择并获得路径
2022-04-01 22:52:01python通过对话框实现文件或文件夹路径的选择并获得路径 import tkinter as tk from tkinter import filedialog '''打开选择文件夹对话框''' root = tk.Tk() root.withdraw() Filepath = filedialog.askopenfilename... -
python中GUI实现文件路径获取,处理,窗口关闭
2020-04-27 22:55:09frameT = Tk() frameT.geometry('500x200+400+200') frameT.title('选择需要输入处理的文件') frame = Frame(frameT) frame.pack(padx=10, pady=10) # 设置外边距 frame_1 = Frame(frameT) frame_1.pack(pa... -
PyQt5 - 文件拖拽显示路径
2021-09-13 16:24:55代码 import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * class Window(QMainWindow): def __init__(self): ... self.setWindowTitle('文件拖入') # ==> 窗口标题 self.resize -
wxPython:将文件拖到窗口以获取文件路径
2021-02-05 01:43:39当您打印self.data时,应该会看到打印...下面是我的代码的一个稍微修改的版本,它同时打印出指向stdout和文本控件的文件路径:import wx#######################################################################... -
PYTHON程序获取当前目录和运行时的拖入文件
2021-07-15 19:08:37import sys print(sys.argv) sys.argv[0]为当前程序路径 如['D:/ker/bianl.py'] sys.argv[1]为拖入图标启动运行程序时,拖入的文件或目录。如双击启动则无此项,此时sys.argv长度为1。 -
bat 拖动一个文件到bat, 获取文件路径
2018-01-30 15:32:002019独角兽企业重金招聘Python工程师标准>>> ... -
自定义QLineEdit支持文件拖拽显示文件路径
2021-01-16 10:29:20///拖动文件到窗口移动文件 触发 void dragMoveEvent(QDragMoveEvent *event); ///拖动文件到窗口释放文件触发 void dropEvent(QDropEvent *event); }; #include "CustomLineEdit.h" CustomLineEdit::... -
把文件拖到python打包的exe文件里,然后将拖拽的文件作为参数,进行执行
2021-08-21 19:01:36把文件拖到python打包的exe文件里,然后将拖拽的文件作为参数,进行执行 读sys.argv -
python2.7 输入&函数参数&路径表示&各种下标_含义
2020-11-28 13:24:061、Python2.x与3.x的input区别input与python3不同,在python2.7中分为input()与raw_input()其中input()返回的是int/float类型数据,输入时可以是1+2,返回3;但如果在input()下输入"one",则同样会返回string类型而... -
python 获取当前文件夹下所有文件名
2021-01-14 07:53:16/usr/bin/env python# -*- coding: utf-8 -*-import osdef file_name(file_dir):for root, dirs, files in os.walk(file_dir):print(root) #当前目录路径(包含所有子目录)# print("==========... -
PyQt5 QLineEdit控件 实现拖入文件时自动显示文件路径
2021-01-19 09:27:39关于Qt QLineEdit 如何得到拖入其中的文件路径 -
python+selenium编写文件上传,测试执行时,一直提示找不到图片路径
2021-07-15 15:24:31selenium文件上传,执行时,一直提示找不到图片路径,提示报错: SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape 排查好久,发现是... -
python脚本路径的处理总结
2021-06-08 14:30:06file_home = dirname(abspath(__file__)) #获取当前脚本所在路径 if isfile("D:/devtest/aaa.txt"): #判断aaa是否是一个存在的文件 print(True) pathname, _ = splitext("aaa.txt") #分离文件名与扩展名 bnam -
python使用win32库模拟拖拽文件发给指定窗口
2019-12-22 14:42:59最近要用python模拟人的操作给窗口发送拖拽文件的消息,网上搜了一大圈也没搜到现成可用的代码。幸好以前做过vc开发,熟悉点win32编程,于是装上vs和msdn,从消息WM_DROPFILES查起,慢慢得实现了这个功能。 WM_... -
python tkinter实现文件的拖入功能
2020-04-23 11:09:59tkinter 目前自带有filedialog模块可以实现打开目录选择文件,但是要像我们平时将文件拖入到框内即加载文件就有没有模块加载了, 当然,没有万能的python做不到的,既然源生tkinter 没有,那就借助其他模块喽 引入 ...