标签: drag

拖动标记时会触发传单 popupclose 事件

在我的应用程序中,我向地图添加一个临时可拖动标记并打开其弹出窗口。我发现当拖动标记时,弹出窗口会关闭。为了解决这个问题,我按照强制传单弹出窗口添加了代码,以便在移动可拖动标记时保持打开状态

var marker = new L.Marker([setLat, setLng], {icon:questionIcon, draggable:true});
marker.bindPopup("popup content").addTo(map).openPopup();
marker.on('dragend', function(e) { 
    marker.openPopup();
});
Run Code Online (Sandbox Code Playgroud)

但是,我还想确保如果用户手动关闭弹出窗口(使用标准的右上角“x”),临时标记将从地图中删除。所以我添加了...

marker.on('popupclose', function(e) {
    map.removeLayer(marker);
});
Run Code Online (Sandbox Code Playgroud)

...但是,拖动标记时也会触发。因此,一旦用户尝试通过拖动标记来重新定位标记,它就会完全消失。

有没有办法区分这两个事件,以便我可以以不同的方式处理它们?或者回到最初的问题,在拖动标记时禁用 popupclose 发生吗?

popup drag leaflet

4
推荐指数
1
解决办法
7968
查看次数

android限制项目在一定范围内拖动 itemtouchhelper

我已经使用 RecyclerView 显示了项目列表,并且我有不同类型的项目(标题和项目),如下所示

Header 1
Item 1
Item 2
Header 2
Item 3
Item 4 
Item 5
Item 6
Header 3
Item 7
....
Run Code Online (Sandbox Code Playgroud)

我想限制交换项目在其部分标题内的位置。例如,项目 4 可以与项目 3、项目 5 和项目 6 交换,但不能超出其部分边界。我正在按照ItemTouchHelper此处的建议实现拖动机制的交换https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aafhttps://medium.com/@ipaulpro/drag- and-swipe-with-recyclerview-6a6f0c422efd 我重载了该canDropOver方法,如果您想交换例如项目 4 和标题 2,该方法会有所帮助,但不会阻止我将项目拖动到标题 1。有什么建议吗?

android drag android-recyclerview itemtouchhelper

4
推荐指数
1
解决办法
1171
查看次数

使用 Bevy 0.4 拖动精灵的可接受方法是什么?

在尝试 Bevy 时,我需要拖放精灵。不幸的是,这似乎不是现成的,或者我没有在文档中找到它。

实现这一目标最惯用的方法是什么?

到目前为止我所尝试的都在我的答案中,但我很乐意接受另一个更好/更快/更惯用的解决方案。

drag-and-drop sprite drag rust bevy

4
推荐指数
1
解决办法
3393
查看次数

用拇指拖动wpf窗口:它可以透明吗?

我一直在测试Blu,我注意到我可以拖动窗口.这个窗口是透明的.我尝试用拇指做同样的事,但我不知道如何让它变得透明.窗口的其余部分是透明的,但拇指不是.

有没有办法让拇指透明,还是应该使用其他技术?

我用这个事件:

 private void DragThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    {
        Canvas.SetLeft(this, Canvas.GetLeft(this) + e.HorizontalChange);
        Canvas.SetTop(this, Canvas.GetTop(this) + e.VerticalChange);
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

wpf slider drag

3
推荐指数
2
解决办法
5562
查看次数

可移动的窗口与pyqt4

只是一个简单的问题:我正在使用pyqt4来渲染一个简单的窗口.这是代码,我发布了整个事情,因此更容易解释.

from PyQt4 import QtGui, QtCore, Qt
import time
import math

class FenixGui(QtGui.QWidget):

    def __init__(self):
            super(FenixGui, self).__init__()

        # setting layout type
        hboxlayout = QtGui.QHBoxLayout(self)
        self.setLayout(hboxlayout)

        # hiding title bar
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        # setting window size and position
        self.setGeometry(200, 200, 862, 560)
        self.setAttribute(Qt.Qt.WA_TranslucentBackground)
        self.setAutoFillBackground(False)

                # creating background window label
        backgroundpixmap = QtGui.QPixmap("fenixbackground.png")
        self.background = QtGui.QLabel(self)
        self.background.setPixmap(backgroundpixmap)
        self.background.setGeometry(0, 0, 862, 560)


        # fenix logo
        logopixmap = QtGui.QPixmap("fenixlogo.png")
        self.logo = QtGui.QLabel(self)
        self.logo.setPixmap(logopixmap)
        self.logo.setGeometry(100, 100, 400, 150)

def main():

    app = QtGui.QApplication([])
    exm = FenixGui() …
Run Code Online (Sandbox Code Playgroud)

python pyqt draggable pyqt4 drag

3
推荐指数
1
解决办法
3478
查看次数

在JFrame中拖动JPanel

我加入JPanelJFrame一个JButton点击.它增加JPanel了框架.该按钮将继续添加JPanelto JFrameon click事件.没有限制.单击按钮时,我也会添加JPanels到a List.我这样做是因为添加了MouseMotionListenerfor循环来处理拖拽JPanel的问题.

我现在面临的问题是阻力.当我JPanel通过单击添加第一个并且如果我拖动它时,它正确地跟随鼠标光标坐标.当我添加一秒钟时JPanel,它也完全跟随鼠标.添加第二个后,如果尝试拖动第一个JPanel,第一个JPanel似乎遵循不同的坐标,初始位置将更改为其他位置.我不知道我在哪里犯了这个错误.请帮我解决这个问题.请仔细阅读以下代码.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class MyFrame extends JFrame {

    JButton jb;
    List<JPanel> mypanels = new ArrayList<JPanel>();
    public MyFrame() {
        jb = new JButton("Add Panel");
        jb.setBounds(10, 10, 100, 50);
        setSize(new Dimension(1000, 600));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        add(jb); …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jframe drag

3
推荐指数
2
解决办法
7211
查看次数

在QML中拖动元素时,如何实时获取鼠标坐标?

我有一个用Qt编写的程序,他使用QML.

我想知道在拖动元素期间是否可以实时知道坐标.

实际上,我使用替换光标的自定义图像,其位置使用光标的坐标(隐藏)更新.

我实际上可以通过"onPositionChanged"或者在点击"onClicked"之后恢复鼠标光标的位置.

我想在拖动过程中知道这些坐标,我尝试使用"onPressed"和"onPressAndHold",但没有成功,自定义光标的位置仅在点击发布时更新.

任何帮助将不胜感激,谢谢你提前.

mouse qt mouseevent drag qml

3
推荐指数
1
解决办法
8871
查看次数

set_at事件中的Google Map可编辑多边形过滤器拖动事件

我有一个可编辑的多边形,我想听一个顶点被拖动时的事件(调整多边形的大小)。通常将路径附加到'set_at'事件是好的,但是当整个多边形被拖动时会触发很多事件。

google.maps.event.addListener(polygon, 'dragend', function(){search();});
google.maps.event.addListener(polygon.getPath(), 'insert_at', function(e, e1){search();});
google.maps.event.addListener(polygon.getPath(), 'remove_at', function(e, e1){search();});
//this also fires a lot of events when ploygon is dragged
google.maps.event.addListener(polygon.getPath(), 'set_at', function(){search();});
Run Code Online (Sandbox Code Playgroud)

我要实现的是有一个类似“ shape_changed”的事件,它在拖动时不会触发事件。

javascript events google-maps polygon drag

3
推荐指数
1
解决办法
1559
查看次数

拖动时,JPanel子类"跳转"

我目前正在为我的一个小"油漆"程序编码; 到目前为止,您可以使用笔在其上绘图,放大至100倍,然后选择一种颜色.接下来我要添加的是(或者是)拖动JPanel子类的可能性,在该子类上选择要编辑的图像.基本上,通过按住鼠标右键,可以更改JPanel子类的位置,该子类位于JInternalFrame上.我有一个代码示例,它本身应该可以正常工作; 至少它对我有用.要复制该问题,只需启动DragPanelTest该类并在具有红色边框的组件上方拖动鼠标 - 该面板不会平滑拖动,而是始终来回跳转.

码:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.BorderFactory;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class DragPanelTest extends JPanel implements MouseMotionListener, MouseListener {
    Point oldDragPt;
    boolean dragEnabled;
    int newX;
    int newY;

    public static void main(String[] args) {
        System.out.println("Launching Test.java ...");

        JFrame frame = new JFrame("Title");
        JInternalFrame intFrame = new JInternalFrame("title", true, true, true, true);
        JDesktopPane deskPane = new JDesktopPane();
        DragPanelTest dragPanel …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel drag mousemotionlistener

3
推荐指数
1
解决办法
211
查看次数

当父项可拖动时,防止拖动子元素

我有以下HTML(反应)设置:

<div 
    onDragStart={
    (e) => { this.bound_handleDragStart.call(this, e) }}        
    draggable="true"
>
   <div>Stuff here</div>
   <div><input .../></div>
</div>
Run Code Online (Sandbox Code Playgroud)

此设置使整个外部div可拖动.

但是,如果在输入上开始拖动,我希望它被取消.

我已经尝试将onDragStart添加到输入中,将eventListener添加到输入并返回false,禁止在句柄拖动开始时传播,以及许多其他事情,但它们都不起作用.

作为一个不,当event.target返回外部div时,所以我无法找到一种方法来确定哪个孩子开始拖动.

我相信这可以做到并且不能太难?

我已经考虑过将拖动移动到所有内部div,但我不确定这是否能解决我的问题,或者创建一组全新的问题,而且我觉得这不是正确的方法

html javascript events drag reactjs

3
推荐指数
1
解决办法
1586
查看次数