Articles of 拖放

如何将文件拖放到PyQt4界面?

我目前在qt gui界面中有一个textEdit小部件。 在Linux中,我可以从系统中拖放文件到文件中,并用“file:/// path / to / file”填充该部件。 文件://部分有点烦人,但我可以筛选出来。 但是,当我尝试从Windows拖放文件时,小部件完全拒绝。 我怎样才能让它接受Windows文件? 主要的python文件与相关的代码: import os #to get current working directory import sys from ui import Ui_Form #Ui_Form contains the code for the display. Generated by QT Designer from PyQt4 import QtCore, QtGui #code for Qt class UI(Ui_Form): def setupUi(self, Form): super().setupUi(Form) self.browseButton.clicked.connect(self.browse) def browse(self): self.lineEdit.setText(QtGui.QFileDialog.getOpenFileName(self.lineEdit, "Open […]

HTML5放置目标支持哪些剪贴板格式?

这个剪贴板格式列表是指: https://msdn.microsoft.com/en-us/library/windows/desktop/ff729168(v=vs.85).aspx 我在页面上创build了一个HTML5放置目标,并通过将来自各种应用程序的数据拖放到目标中进行播放。 当我debuggingJavascript时,我可以在每个event.dataTransfer对象中find数据。 从SAP GUI中的树形控件中拖动时,唯一的例外情况就是这种情况。 在这种情况下, dataTransfer.item列表是空的,就像.type列表一样。 调用dataTransfer.getData()不会返回任何内容。 我已经在IE浏览器,Chrome浏览器和火狐浏览器中尝试了这一结果。 我在这方面的调查使我相信HTML5的某些剪贴板格式的支持有限制。 支持哪些格式? 我想能够做的是得到剪贴板的内容(如下面第一次更新中所示)。 更新2 以下是该页面的代码。 我在drop()函数中设置断点,从那里我可以分析事件对象。 <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <style> #drop_target {width: 350px; height: 70px; padding: 10px; border: 1px solid #aaaaaa; } </style> </head> <body> <div id="drop_target"></div> </body> <script> var drop_target = document.getElementById('drop_target'); function allowDrop(ev) { ev.preventDefault(); } function drop(ev) […]

使标题图标变成资源pipe理器窗口的拖动源

我做了一个用纯WinAPI编写的编辑器。 有些用户希望标题图标成为在编辑器中打开的文件的拖动源,就像浏览器窗口所做的一样。 我不知道要实现这样的function。 有人可以给我举个例子吗?

将具有unicode名称的文件拖放到Windows中的batch file中

我想在Windows下通过拖放处​​理一些文件。 某些文件的名称中包含unicode字符,例如Example_ěø.txt 不幸的是,许多非ASCII字符在这个过程中一直受到影响。 比如用一个简单的batch file就好 echo %* 当我用上面给出的示例名称拖放一个文件时,我得到: C:\>echo "C:\Example_eo.txt" "C:\Example_eo.txt" 所以这个文件已经被转换成了eo文件,自然找不到这个文件。 有没有办法在Windowsbatch file访问拖放到batch file的文件的实际unicode名称/path? 解答:使用chcp 65001,但为了防止命令终止bat文件,必须将命令的输出路由到nul。 我也发现有必要使用&&将下面的命令放在同一行上。 所以我的示例bat文件现在读取 chcp 65001 > nul && echo %* && pause 其中显示了文件的文件名/path的unicode / utf-8版本。

Sidemenu Windows Phone 8.1

我已经在windowsphone 8的android音乐播放器中实现了一个可用的popup菜单。为此,我使用了Library Interactivity来获取拖放function。 现在看来,我不能使用windowsphone 8.1的function了。 微软的自动转换工具我不能使用。 我们的项目是为多个平台而devise的,并有可移植的类库。 我们不得不推出Silverlight的一部分,这就是为什么它不是可转换的。 我在互联网上search互联网,比如用gesturerecognizers做这个,但没有运气。 也许你们有一些想法? Thx很多的任何答复。 这里有旧图书馆的部分: <i:Interaction.Behaviors> <el:MouseDragElementBehavior ConstrainToParentBounds="True" Dragging="MouseDragRight_Dragging" DragFinished="MouseDragRight_DragFinished" DragBegun="MouseDrag_DragBegan"/> </i:Interaction.Behaviors>

从.NET应用程序拖到Windows资源pipe理器时强制删除作为快捷方式对象

我正在编写一个.NET应用程序,它以与Windows资源pipe理器相同的方式呈现对象的树/列表视图。 这些是基于文本的项目,用户可以将其视为文件,我希望用户能够创build快捷方式,类似于创build任何文件的快捷方式。 除了在这个例子中,这个快捷方式将是我的应用程序使用特定的命令行而不是文件对象。 所以我需要支持拖放到Internet Explorer,使拖动图标看起来像Alt拖动(创build快捷方式)图标,拖放操作使用自定义命令行创build到我的应用程序的快捷方式。 我的问题:我需要在拖动操作开始时向Windows提供哪些信息,以便Windows资源pipe理器显示正确的图标并始终在拖放事件中创build快捷方式?

在处理多个文件时,我必须在COleDropTarget :: OnDrop()中返回哪个值?

我通过从COleDropTarget派生类CDropTarget并覆盖所有必要的函数,使我的MFC应用程序成为放置目标。 一切都按预期工作。 但是, OnDrop()的返回值使我困惑。 其描述如下: 如果放下成功则为非零; 否则为0。 我不明白“成功”意味着如果多个文件被丢弃在我的应用程序。 例如,考虑下面的实现: BOOL CDropTarget::OnDrop(CWnd* pWnd, COleDataObject* pDataObj, DROPEFFECT tDropEffect, CPoint tPoint) { // I left out declaration/definition of hDrop and path for reasons of clarity. […] UINT numHandledFiles = 0; // Determine the number of dropped files. UINT numDroppedFiles = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0); // Iterate over all […]

F#使用WinForms拖放:控件的DragDrop事件不会调用被引用的成员函数

你知道为什么在我的例子中,F#中的DragDrop事件不能正常工作吗? 所有其他事件,如DragEnter,DragLeave,DragOver,…都以相同的方式正常工作。 只要编译这段代码并试试看,将一个文件拖到表单中,然后查看从启动可执行文件的控制台/terminal中触发的事件。 open System open System.Drawing open System.Windows.Forms type MainForm( args: string list ) as this = // subclassing inherit Form() // controls ——————- let dragDropImage = new PictureBox() // —————————- // "constructor" (not a real constructor) do this.initComponents() // link events to specific member function do dragDropImage.DragEnter |> Event.add this.onDragEnter do dragDropImage.DragDrop |> […]

如何将资源pipe理器中的图片拖放到WPF控件上?

我search了很广泛的寻找答案,但似乎没有一个清楚的例子来说明如何做到这一点! 我只是想能够从桌面/资源pipe理器抓取图片,并将其拖放到WPF图像控件或类似的。 有人能指出我的方向吗? 我已经看到了很多关于从应用程序拖放到应用程序,在应用程序内,从应用程序拖到桌面,但几乎没有任何其他方面的例子。 我猜测一些forms的剪贴板交互是必需的。

如果应用程序位于特定的目录中,则拖放不起作用

我在Qt应用程序中实现了拖放function(如果您想查看一些代码,请参见下文)。 我以为一切正常,直到用户告诉我,它不适合他。 通常你会看到这个 图标,如果dragEnterEvent()不调用event->acceptProposedAction() ,那么你看到这个 图标。 如果发生问题,您会看到类似于此的图标 (这不完全是图标,但我不能捕获它,因为Windows删除截图中的鼠标图标)。 我们可以发现,在某些电脑上(不是对我来说不幸的是,debugging非常困难)取决于设置。 特别是安装path:如果应用程序位于一个特定的目录(或其某个子目录)中,则会出现所述的错误。 如果我们将整个应用程序目录移到其他地方并从那里执行,一切正常。 添加一些debugging输出表明dragEnterEvent()不会在破坏的设置中触发。 可能是什么原因? 我怎样才能debugging这个问题? 我们有一些怀疑,但没有任何意义。 不过我想分享一下: 权限(但为什么要拖放依赖权限,对不对?) 使用错误的库(因为安装了多个Qt版本) 另一个小部件接收事件(如何取决于应用程序目录?) 代码片段: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), /* more here */ { /* more here */ setAcceptDrops(true); /* more here */ } void MainWindow::dragEnterEvent(QDragEnterEvent* event) { const QMimeData* mimeData = event->mimeData(); if (mimeData->hasUrls()) { QString fileName = mimeData->urls().at(0).toLocalFile(); […]