我用Qt 4.x编写了一个用C++编写的小文件传输应用程序...它登录到服务器,向用户显示服务器上可用的文件列表,并允许用户上传或下载文件.
这一切都很好; 您甚至可以从桌面(或从打开的文件夹)拖入文件,当您将文件图标放入server-files-list-view时,删除的文件将上传到服务器.
现在我也请求相反的操作...我的用户希望能够将文件从server-files-list-view拖到桌面上,或者拖到打开的文件夹窗口中,然后让它文件下载到该位置.
这似乎是一个合理的要求,但我不知道如何实现它.有没有办法让Qt应用程序找到与"drop event"发生位置相对应的目录,当图标被放到桌面上或打开文件夹窗口时?理想情况下,这将是一个基于Qt的平台中立机制,但如果不存在,那么MacOS/X和Windows(XP或更高版本)的平台特定机制就足够了.
有任何想法吗?
我有一个<div>下拉目标,我附加了'drop'和'dragover'事件.该<div>包含图像的锚定标记(简单化:<div><a><img /></a></div>).目标的子元素似乎阻止触发"掉落"或"悬垂"事件.仅当拖动的元素位于目标上方但未覆盖其子元素时,才会按预期触发这两个事件.
我想要实现的行为是<div>,无论子元素是否存在,'dragover'和'drop'事件都会在目标上的任何地方触发.
昨晚,我想我会做一个快速的项目来演示HTML5功能并试一试.但是,我似乎无法弄清楚如何在Safari中拖放工作,而它在Chrome和Firefox中完美运行.更准确地说,当您尝试将网站内的图像拖动到放置区域时,似乎不会在Safari中触发放置事件.同时,当您从桌面拖放文件时,它会触发.
我不太确定,但我很确定当我在工作中尝试相同的脚本(我有Safari 5.0.2等)时,它会触发掉落事件(明天要检查它以确定)并给出了我与预期的FileReader相关的错误.但是当我在我自己的PC上安装Safari 5.1时,我只会得到dragover,进入和离开事件(如果文件被拖入浏览器,也会掉线).
我已经谷歌搜索了一段时间,似乎没有找到一个实际上在Safari 5.1中工作的拖放的例子.甚至Safari的开发中心的样本也不起作用,更不用说html5demo.com 1和html5demo.com 2.这让我想到Safari是否有错误,或者他们已经实现了一些强制性的东西,这些东西没有在开发中心反映出来(最后一次更新于2009年).
我正在尝试修复的脚本是在我的网站上(对不起,没有问题的特定代码要发布,因为它似乎也在其他地方被破坏).
PS!我可能已经在我自己的网站上引入了一些错误,同时拼命想要解决Safari中的拖放问题,但我现在太累了,无法修复它们.
更新:刚刚在工作中确认drop事件在Mac OS X上的Safari 5.0.2中触发.
更新2:还确认在Win 7上的Safari 5.0.6,与5.1失败的同一台计算机上的一切都运行良好
如何通过拖放将文件加载到表单?
会出现哪个事件?
我应该使用哪个组件?
以及如何在将文件拖放到表单后确定文件名和其他属性?
谢谢!
码
private void panel1_DragEnter(object sender, DragEventsArgs e){
if (e.Data.GetDataPresent(DataFormats.Text)){
e.Effect = DragDropEffects.Move;
MessageBox.Show(e.Data.GetData(DataFormats.Text).toString());
}
if (e.Data.GetDataPresent(DataFormats.FileDrop)){
}
}
Run Code Online (Sandbox Code Playgroud)
好的,这很有效.
文件怎么样?我怎样才能获得文件名和扩展名?
这只是一个dragEnter动作.
我正在寻找一种方法,通过单元测试将文件/多个文件拖放到我的应用程序中.例如,在Windows资源管理器中选择一些文件,将它们拖放到我的应用程序中.
我能够在我的应用程序中测试两个组件之间的拖放行为(见下文 - 随意指出你是否知道更好的方法),但我不知道如何在数据必须来自时做同样的事情在我的申请之外.
Transferable当我手动执行拖放操作时,我想过使用调试器来检查'文件' ,但是必须有更好的方法然后硬编码完整Transferable.
组件之间的拖放测试示例
import org.junit.Test;
import javax.swing.Action;
import javax.swing.JTextField;
import javax.swing.TransferHandler;
import java.awt.event.ActionEvent;
import static org.junit.Assert.assertEquals;
public class DragAndDropTest {
@Test
public void dragAndDropBetweenTwoTextFields() {
JTextField firstField = new JTextField();
JTextField secondField = new JTextField();
String testText = "Test text";
firstField.setText( testText );
firstField.selectAll();
Action copyAction = TransferHandler.getCopyAction();
copyAction.actionPerformed( new ActionEvent( firstField, ActionEvent.ACTION_PERFORMED, "Copy" ) );
Action pasteAction = TransferHandler.getPasteAction();
pasteAction.actionPerformed( new ActionEvent( secondField, ActionEvent.ACTION_PERFORMED, "Paste" ) );
assertEquals( "Text is not copied", …Run Code Online (Sandbox Code Playgroud) 我正在尝试ListView在Android(冰淇淋三明治)中实现拖放.因此,当拖动的对象到达边缘时ListView,我ListView在相关方向上滚动.问题在于,当我们滚动时,有时适配器会View根据需要创建新的s,而这些'new' 先前View没有收到ACTION_DRAG_STARTED事件,因此不会收到DragEvent更新.有什么方法可以将事件发送到这些视图吗?
概述:
我有一个使用jquery.event.drag和jquery.event.drop的页面.我需要能够拖放到不断添加到dom中的元素,即使在拖动开始之后也是如此.
问题:
当dragstart事件触发时,它会检查可用的放置目标并将它们添加到拖动对象.
我遇到的问题是我在dragstart事件触发后动态添加drop目标,因此用户无法删除这些动态添加的drop目标.
例:
http://jsfiddle.net/blowsie/36AJq/
题:
如何更新拖动以允许在拖动开始后删除已添加到dom的元素?
我正在研究一些HTML5拖放功能.我将draggable="true"属性添加到我的元素中它很有效,直到元素宽度超过300px.
高达300px宽,拖动时显示的"重影"图像看起来很好.
在300px宽以上(例如在301px处),"重影"图像从鼠标位置开始具有渐变渐变.
<div draggable="true" style="width:300px">Item 1</div>
<div draggable="true" style="width:301px">Item 2</div>
Run Code Online (Sandbox Code Playgroud)
上面的"第1项"看起来不错,上面的"第2项"看起来很可怕.我做了一个jsFiddle来说明这一点.(在Chrome和Firefox中测试过.)

有什么方法可以禁用它,所以我得到了漂亮的未装饰鬼影像?我特意想要拖动400px宽的div.
在编写接受文件输入的Web应用程序时,我想使用drag'n'drop,但我不想在页面上只有一个小的dropzone.我认为如果你可以放在页面的任何地方会更方便.幸运的是,window.ondrop事件会在页面的任何地方触发,但我想要一些奇特的效果来直观地向用户显示拖放是可能的.
要做到这一点,所需要的只是检测文件被拖入窗口的时间,以及何时将其拖出,以触发向用户显示应用程序已启用拖动的效果.事实证明拖拽事件并不那么方便.我假设window.ondragenter当用户进入页面时只会触发一次.然后当你离开窗户时,它会触发window.ondragleave.错误.当鼠标移动到页面中的子元素时,它会不断触发.
我查看了事件对象中可用的属性,试图找到任何可以隔离我需要的东西,但没有任何效果.我得到的最好的是能够改变背景颜色body.并且只有页面上没有其他内容.
大量的文件上传网站做对了.例如,Imgur和WeTransfer.他们的网站都是spahetti编码和压缩到不可读的地步,我通过谷歌搜索找不到任何关于这个主题的内容.
那么怎么做呢?
我正在尝试在android studio中创建一个简单的拖放图像.我可以让图像在屏幕上拖动,一旦我释放它就会消失.在控制台中,我收到"报告丢弃结果:false"
这是我的代码:
ImageView mImageView;
String mString;
private android.widget.RelativeLayout.LayoutParams mLayoutParams;
mImageView.setOnLongClickListener(new View.OnLongClickListener(){
@Override
public boolean onLongClick(View v){
ClipData.Item item = new ClipData.Item((CharSequence)v.getTag());
String[] mimeTypes = {
ClipDescription.MIMETYPE_TEXT_PLAIN
};
ClipData dragData = new ClipData(v.getTag().toString(), mimeTypes, item);
View.DragShadowBuilder myShadow = new View.DragShadowBuilder(mImageView);
v.startDrag(dragData, myShadow, null, 0);
return true;
}
});
mImageView.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
switch(event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
mLayoutParams = (RelativeLayout.LayoutParams)v.getLayoutParams();
Log.d(mString, "Action is DragEvent.ACTION_DRAG_STARTED");
// Do nothing
break;
case DragEvent.ACTION_DRAG_ENTERED:
Log.d(mString, "Action is DragEvent.ACTION_DRAG_ENTERED"); …Run Code Online (Sandbox Code Playgroud)