我有一个带有列表框和树视图的winform.
一旦我的列表框中填充了项目,我想从列表框中拖动它们(多个或单个)并将它们放在树视图中的节点中.
如果有人在C#中有一个很好的例子.
有一个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) 我有一个带有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都被传递到事件中.
我有一个充满可拖动对象的jquery对话框.可放置目标位于对话框之外.
当我启动拖动时,droppable会正确响应(视觉指示它是一个可放置的目标),并且在丢弃之后正确的事件触发,因此我可以正确处理掉落.
问题是拖动的对象仅在对话框中保持可见,并且不会"跳出".
我已经有可拖动从一个可滚动的div拖动到另一个没有问题的拖动,但从一个对话框到包含该对话框的页面它不起作用.对话框内容在任何拖动方向上滚动.
我的可拖动论点如下:
var draggableArguments={
revert: 'invalid',
helper:'clone',
containment: 'DOM',
zIndex: 999,
addClasses: false
}
theObject.draggable(draggableArguments);
Run Code Online (Sandbox Code Playgroud)
任何建议,以便我的可拖动对象可以跨越对话框边界?
谢谢.
我一直在编写OCR书籍扫描的东西(它通过读取页码重命名页面),并从我的基本CLI Python脚本切换到GUI.
我正在使用PyQT4并查看了大量关于拖放的文档,但没有运气.它只是拒绝接受这些文件!我正在将这些文章用于我的UI设计:
我注意到有很多方法可以设置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) 在PyQt 4中,我想创建一个QTreeView,可以通过拖放操作重新组织其结构.
我为QTreeView实现了自己的模型(QAbstractItemModel),因此我的QTreeView正确显示了数据.现在我想为树的节点添加拖放支持,以便能够将树内的节点从一个父节点移动到另一个节点,拖动复制等等,但是我找不到任何完整的教程如何实现这一点.我找到了很少的QTreeWidget教程和提示,但没有为自定义模型的QTreeView找到.有人能指出我在哪里看?
谢谢.
我试图将文件从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) 我正在努力与看似简单的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) 我想处理网页中的文件丢弃.如果用户拖动多个文件,则在OsX中有一个文件计数的红色圆圈计数器.它看起来像这样:

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

我可以改变这种行为吗?在safari中以同样的方式工作?
HTML Drag and Drop API定义了两个非常相似的事件,dragleave并且dragexit这些事件一起dragenter用于帮助跟踪当前的放置目标.
快速搜索没有发现任何当前和清晰的两个事件的文档,当一个应该使用另一个,以及浏览器支持,所以我想我会在这里问.
我将分享到目前为止我找到的资源:
dragexit而IE至少实现dragleave,主要区别在于事件的顺序:dragexit在相应之前触发dragenter,同时dragleave,令人困惑,之后触发.dragleave用IE语义定义,但后来(~2013)添加dragexit了Mozilla的语义.dragleave在Firefox 3.5(2009)中实现,最初是同义词dragexit,但后来(4.0,~2011?)将其更改为符合规范.dragexit具体说明