标签: drag-and-drop

C#从列表框拖放到树视图

我有一个带有列表框和树视图的winform.

一旦我的列表框中填充了项目,我想从列表框中拖动它们(多个或单个)并将它们放在树视图中的节点中.

如果有人在C#中有一个很好的例子.

.net c# drag-and-drop winforms

11
推荐指数
1
解决办法
2万
查看次数

使用HTML/JavaScript检测本地文件拖放

有一个HTML textarea.当本地文件被拖放到textarea上时,我能够捕获该事件.但是如何获取被删除文件的名称?(最后要修改并插入textarea.)

在这种情况下,以下表达式返回None:

event.dataTransfer.files
event.dataTransfer.getData('text/plain')
Run Code Online (Sandbox Code Playgroud)

我为目前的目标平台Firefox 3做了一个简短的例子.

<script>
function init() {
    document.getElementById('x').addEventListener('drop', onDrop, true)
}
function onDrop(event) {
    var data = event.dataTransfer.getData('text/plain')
    event.preventDefault()
    alert('files: ' + event.dataTransfer.files + ' && data: ' + data + '.')
}
</script>

<body onload='init()'>
<textarea cols=70 rows=20 id='x'></textarea>
Run Code Online (Sandbox Code Playgroud)

html javascript firefox drag-and-drop

11
推荐指数
1
解决办法
2万
查看次数

ItemsControl拖放

我有一个带有DataTemplate的ItemsControl,它绑定到整数的ObservableCollection.

<ItemsControl Name="DimsContainer" ItemTemplate="{StaticResource DimensionsTemplate}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

并在Windows资源中:

<Window.Resources>
    <DataTemplate x:Key="DimensionsTemplate" >
        <TextBlock Text="{Binding}"
                       Padding="5"
                       VerticalAlignment="Center"
                       FontSize="32"/>
    </DataTemplate>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现在ItemsControl中拖放项目的能力(即能够重新排序整数).有没有人有一个如何做到这一点的简单例子?我连接了PreviewMouseMove,DragEnter和Drop事件.问题是我无法弄清楚如何确定拖动哪个项目以及拖动它的位置.似乎整个ItemsControl都被传递到事件中.

c# wpf drag-and-drop itemscontrol

11
推荐指数
1
解决办法
9232
查看次数

拖动Jquery拖出它的父jquery对话框

我有一个充满可拖动对象的jquery对话框.可放置目标位于对话框之外.

当我启动拖动时,droppable会正确响应(视觉指示它是一个可放置的目标),并且在丢弃之后正确的事件触发,因此我可以正确处理掉落.

问题是拖动的对象仅在对话框中保持可见,并且不会"跳出".

我已经有可拖动从一个可滚动的div拖动到另一个没有问题的拖动,但从一个对话框到包含该对话框的页面它不起作用.对话框内容在任何拖动方向上滚动.

我的可拖动论点如下:

var draggableArguments={
     revert: 'invalid',
     helper:'clone',
     containment: 'DOM',
     zIndex: 999,
     addClasses: false
    }

   theObject.draggable(draggableArguments);
Run Code Online (Sandbox Code Playgroud)

任何建议,以便我的可拖动对象可以跨越对话框边界?

谢谢.

jquery drag-and-drop jquery-ui-dialog

11
推荐指数
1
解决办法
8988
查看次数

PyQT4:将文件拖放到QListWidget中

我一直在编写OCR书籍扫描的东西(它通过读取页码重命名页面),并从我的基本CLI Python脚本切换到GUI.

我正在使用PyQT4并查看了大量关于拖放的文档,但没有运气.它只是拒绝接受这些文件!我正在将这些文章用于我的UI设计:

  1. http://tech.xster.net/tips/pyqt-drag-images-into-list-widget-for-thumbnail-list/

  2. http://zetcode.com/tutorials/pyqt4/dragdrop/

我注意到有很多方法可以设置PyQT4 GUI.哪一个效果最好?

哎呀,这是项目的源代码.

主要脚本:

import sys
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4.QtGui import QListWidget
from layout import Ui_window

class StartQT4(QtGui.QMainWindow):
  def __init__(self, parent = None):
    QtGui.QWidget.__init__(self, parent)

    self.ui = Ui_window()
    self.ui.setupUi(self)

    QtCore.QObject.connect(self.ui.listWidget, QtCore.SIGNAL("dropped"), self.picture_dropped)

  def picture_dropped(self, l):
    for url in l:
     if os.path.exists(url):
      picture = Image.open(url)
      picture.thumbnail((72, 72), Image.ANTIALIAS)
      icon = QIcon(QPixmap.fromImage(ImageQt.ImageQt(picture)))
      item = QListWidgetItem(os.path.basename(url)[:20] + "...", self.pictureListWidget)
      item.setStatusTip(url)
      item.setIcon(icon)

class DragDropListWidget(QListWidget):
 def __init__(self, type, parent = None):
  super(DragDropListWidget, self).__init__(parent)
  self.setAcceptDrops(True) …
Run Code Online (Sandbox Code Playgroud)

python drag-and-drop pyqt

11
推荐指数
1
解决办法
2万
查看次数

在PyQt中具有拖放支持的QTreeView

在PyQt 4中,我想创建一个QTreeView,可以通过拖放操作重新组织其结构.

我为QTreeView实现了自己的模型(QAbstractItemModel),因此我的QTreeView正确显示了数据.现在我想为树的节点添加拖放支持,以便能够将树内的节点从一个父节点移动到另一个节点,拖动复制等等,但是我找不到任何完整的教程如何实现这一点.我找到了很少的QTreeWidget教程和提示,但没有为自定义模型的QTreeView找到.有人能指出我在哪里看?

谢谢.

python drag-and-drop pyqt qtreeview

11
推荐指数
1
解决办法
1万
查看次数

拖放不适用于Mac

我试图将文件从Finder拖到我的SWT应用程序中.在Windows和Ubuntu上,以下代码可以工作:

public class DndTest {

    public static void main(final String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display, SWT.DIALOG_TRIM);
        shell.setText("Drag & drop test");
        shell.setSize(200, 200);
        final FormLayout layout = new FormLayout();
        shell.setLayout(layout);
        final Label lbl = new Label(shell, SWT.NORMAL);
        lbl.setAlignment(SWT.CENTER);
        lbl.setText("Drop files here");
        final FormData layoutData = new FormData();
        layoutData.left = new FormAttachment(50, -100);
        layoutData.top = new FormAttachment(50, -15);
        layoutData.right = new FormAttachment(50, 100);
        layoutData.bottom = new FormAttachment(50, 15);
        lbl.setLayoutData(layoutData);

        final DropTarget dt = …
Run Code Online (Sandbox Code Playgroud)

java swt drag-and-drop

11
推荐指数
1
解决办法
1672
查看次数

简单的拖放代码

我正在努力与看似简单的JavaScript练习,写一个香草拖放.我想我的'addeventlisteners'犯了一个错误,这里是代码:

var ele = document.getElementsByClassName ("target")[0];
var stateMouseDown = false;
//ele.onmousedown = eleMouseDown;
ele.addEventListener ("onmousedown" , eleMouseDown , false);

function eleMouseDown () {
    stateMouseDown = true;
    document.addEventListener ("onmousemove" , eleMouseMove , false);
}

function eleMouseMove (ev) {
    do {
        var pX = ev.pageX;
        var pY = ev.pageY;
        ele.style.left = pX + "px";
        ele.style.top = pY + "px";
        document.addEventListener ("onmouseup" , eleMouseUp , false);
    } while (stateMouseDown === true);
}

function eleMouseUp () {
    stateMouseDown = false;
    document.removeEventListener ("onmousemove" , eleMouseMove …
Run Code Online (Sandbox Code Playgroud)

javascript drag-and-drop draggable drag

11
推荐指数
2
解决办法
2万
查看次数

将多个文件删除到Safari会将文件计数器更改为0

我想处理网页中的文件丢弃.如果用户拖动多个文件,则在OsX中有一个文件计数的红色圆圈计数器.它看起来像这样:

在OsX中拖动文件

当我将它们拖到Safari上时,计数器变为0:

在此输入图像描述

我可以改变这种行为吗?在safari中以同样的方式工作?

javascript safari macos drag-and-drop

11
推荐指数
1
解决办法
223
查看次数

dragexit vs dragleave - 哪个应该用?

HTML Drag and Drop API定义了两个非常相似的事件,dragleave并且dragexit这些事件一起dragenter用于帮助跟踪当前的放置目标.

快速搜索没有发现任何当前和清晰的两个事件的文档,当一个应该使用另一个,以及浏览器支持,所以我想我会在这里问.

我将分享到目前为止我找到的资源:

  • HTML规范都有详细的时候应该是每个事件被解雇的描述,但它需要一些解密.
  • MDN文档(HTML拖放API和单独的dragexit/dragleave页面)没有多大帮助,说"当元素不再是拖动操作的直接选择目标时,会触发dragexit事件." /"当拖动的元素或文本选择留下有效的放置目标时,会触发dragleave事件." 并且没有提供有关dragexit的浏览器支持的信息(截至2017-03)
  • Dottoro的dragexit文档(谷歌的热门歌曲中的另一个)似乎已过时,声称"版本3.5中的dragexit事件在Firefox中已经过时了.请改用ondragleave事件."
  • Mozilla的bug 619703W3C bug 11568引用了这两个事件的历史:
    • 看起来像Gecko/Firefox最初实现,dragexit而IE至少实现dragleave,主要区别在于事件的顺序:dragexit在相应之前触发dragenter,同时dragleave,令人困惑,之后触发.
    • HTML5规范最初只dragleave用IE语义定义,但后来(~2013)添加dragexit了Mozilla的语义.
    • Gecko似乎已经dragleave在Firefox 3.5(2009)中实现,最初是同义词dragexit,但后来(4.0,~2011?)将其更改为符合规范.
    • caniuse表示HTML DnD API在现代浏览器中或多或少都受到支持,但没有dragexit具体说明

html5 drag-and-drop

11
推荐指数
1
解决办法
5517
查看次数