自定义控件的拖动

Qt编写可拖拽的自定义控件 qt实现的可自定义拖拽控件 阅读详情

自定义控件的拖动

 


  //添加事件

  this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.DragEnd);

  this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.DragMove);

 
  this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragBegin);   

  private Point p1;//拖动前鼠标的屏幕坐标

  private Point p2;//拖动后鼠标的屏幕坐标

  private bool _isDrag;//是否正在被拖动

  private bool _allowDragMove;

  ///

  /// 是否允许被拖动。

  ///

  public bool AllowDragMove

  {

  get

  {

  return this._allowDragMove;

  }

  set

  {

  this._allowDragMove = value;

  }

  }

  private void DragBegin(object sender, System.Windows.Forms.MouseEventArgs e)

  {

  if(e.Button == MouseButtons.Left & this.AllowDragMove)

  {

  this._isDrag = true;   

  //记录下拖动前的坐标 
this.p1 = this.PointToScreen(new Point(e.X, e.Y));

  }

  }   

  private void DragEnd(object sender, System.Windows.Forms.MouseEventArgs e)

  {

 
  if(e.Button == MouseButtons.Left & this._isDrag)

  {

  this._isDrag = false;

  //记录下拖动后的坐标

  this.p2 = this.PointToScreen(new Point(e.X, e.Y));

  //计算位移

  int x = p2.X - p1.X;

  int y = p2.Y - p1.Y;   

  //移动控件位置

  this.Left += x;

  this.Top += y;

  }

  }   

  private void DragMove(object sender, System.Windows.Forms.MouseEventArgs e)

  {

  if(this._isDrag)

  {

  //记录下拖动后的坐标

  this.p2 = this.PointToScreen(new Point(e.X, e.Y));

  //计算位移

  int x = p2.X - p1.X;

  int y = p2.Y - p1.Y;   

  //移动控件位置

  this.Left += x;

  this.Top += y;   

  //把拖动后的顶点作为新的拖动前顶点

  p1 = p2;

  }

  }  

自定义控件 ——可拖动测量尺子 前言: 最近做的一个项目,有个界面是 输入框输入数值的,后来产品觉得键盘输入麻烦,就换成了这样子,这是前几天Ui小伙子设计的界面: 分析: 其实简单的画一个测量尺子刻度控件并不会太难,其次就是被5和10 阅读详情

相关推荐

Qt自定义控件——把自己的控件变成可拖拽的

在Qt中,自定义控件是一种强大的工具,它使开发者能够创建符合特定需求的用户界面元素。但是,有时候我们希望这些自定义控件能够具有更多的交互性,比如使其可拖拽。通过使自定义控件可拖拽,用户可以更灵活地操作界面,提高用户体验。本文将介绍如何在Qt中将自定义控件变成可拖拽的,为您提供实现可拖拽功能的步骤和示例代码。通过本文的介绍,我们了解了如何在Qt中将自定义控件变成可拖拽的。首先,我们使用Qt的事件处理机制来捕获鼠标事件,包括鼠标按下、移动和释放事件。

m0_62599305的博客 1793

Qt自定义控件拖拽

该文档详细阐述了在Qt中实现自定义控件拖拽功能的步骤和关键点,包括拖放基本原理、事件处理、Item和Container类的属性设置及操作、以及动画效果的添加。通过代码示例和事件处理函数的实现,提供了实现拖拽功能的完整解决方案

Mmcom的博客 4029

Qt/C++编写自定义控件 - 通用拖动

最后,通过move函数将控件移动到新的位置,这里我们使用了x() + dx和y() + dy来计算新的位置。通过自定义控件类并处理鼠标事件,我们可以实现各种自定义交互效果,为应用程序增加更多的交互性和可定制性。本文将介绍如何使用Qt和C++编写一个通用的拖动控件,允许用户通过鼠标拖动控件在窗口中移动。在构造函数中,我们开启了鼠标跟踪功能,以便在鼠标移动时能够捕捉到事件。当你按住鼠标左键并拖动控件时,控件会随着鼠标的移动而移动。首先,我们需要创建一个自定义控件类,继承自Qt的QWidget类。

ByteProwl的博客 360

android可拖动的控件,Android拖动控件的实现,自定义可拖动的LinearLayout

工作内容;1.拖动控件2.自定义可拖动的LinearLayout学习分享:一、拖动控件的实现步骤:【前提:控件在RelativeLayout中,或者在GridLayout中】1.按下图搞懂几个坐标视图宽度 view.getWidth();视图高度 view.getHeight()橘色线:view.getLeft()蓝色线:view.getRight()红色线:view.getTop()粉色线:vi...

weixin_36366239的博客 2862

QT实现自定义控件拖拽(附完整源码)

QT实现自定义控件拖拽(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1539

Qt/C++编写自定义控件7-自定义可拖动多边形

前言 自定义可拖动多边形控件,原创作者是赵彦博(QQ:408815041 zyb920@hotmail.com),创作之初主要是为了能够在视频区域内用户自定义可拖动的多个区域,即可用来作为警戒区域,也可用来其他的处理,拿到对应的多边形坐标集合,本控件的主要难点是如何计算一个点在一个多边形区域内,何时完成一个多边形区域,支持多个多边形。 实现的功能 1:自定义随意绘制多边形 2:产生闭合形状后可单...

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 3329

Android自定义控件之拖动条

首先奉上控件的截图,楼主的手机是小米5,。 下面说一下思路: 这个控件的主体就是一条细长的线,线的两端为圆形,中间有一个彩色的小圆指示当前进度,随着下面的seekbar的拖动或者手指的触摸,小圆的位置和控件的颜色会发生变化。 弄清楚了思路,就知道接下来该怎么办了,绘制这个控件还是很简单的,大概分为以下几步: 1、设置自定义控件的相关属性; 2、编写自定义控件类,继承andro

anonymousCoder的博客 3154

QT自定义3D图形控件,支持轴拖动。

QT自定义3D图形控件,支持轴拖动。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1818

Android拖动,缩放,自定义内容,控件制作(可拖动缩放RelativeLayout定制)

通过继承并定制RelativeLayout,实现了一个可被拖动,并且大小可以随时改变的布局控件。因为继承自RelativeLayout,自定义的布局控件,可以包含任何其他控件,可以制作出,高度定制化的效果。

Robert Zhang 1万+

Qt/C++编写自定义控件——实现可拖动多边形

在应用程序中,你可以使用鼠标拖动多边形,并在界面上自由移动它这段代码演示了如何使用Qt和C++创建一个可拖动的多边形控件。接下来,我们需要定义一个新的类来表示我们的自定义控件。在Qt Creator中,我们可以选择创建一个新的Qt Widgets应用程序,并在主窗口中添加一个QWidget控件作为容器。在本文中,我们将使用Qt和C++编写一个自定义控件,实现可拖动的多边形。我们将展示如何创建一个具有自定义形状的控件,并实现鼠标拖动功能,以便用户可以在应用程序界面中自由移动多边形。

DevForge的博客 361

QT实现可拖拽排序的表格

QT实现可拖拽行排序的表格,研究了一天实现的自定义控件。 效果类似QQ好友分组的拖动排序功能,非常流畅,内含我对表格的常用初始化代码和样式设置。具体内容见博客分类“Qt实用技术”内文章。

Android拖动控件的实现,自定义可拖动的LinearLayout

工作内容; 1.拖动控件 2.自定义可拖动的LinearLayout 学习分享: 一、拖动控件的实现步骤: 【前提:控件在RelativeLayout中,或者在GridLayout中】 1.按下图搞懂几个坐标 视图宽度 view.getWidth(); 视图高度 view.getHeight()  橘色线:view.getLeft() 蓝色线:view.getRight()

风吹草低见牛羊 1万+

【UGUI】二、Text(TMP) 文本

Text(TMP)、导入中文字库

天行健,君子以自强不息 3365

qt实现自定义控件可以实现鼠标拖动控件及拉拽

看到一个博客问答好像写得不错,没有细看,可以qt实现自定义控件可以实现鼠标拖动控件及拉拽,先摘抄下来,后面详细研究下,原文链接:https://bbs.youkuaiyun.com/topics/390848708 仅供学习,转载请联系原博主,如有侵权请及时联系删除 qtdesigner源码中有 拖动原理: 利用QDrag类实现。 在开始拖动的时:把需要拖动的控件图形设置给QDrag实例,控件图形通过QPixmap::grabWidget获取。 然后把控件隐藏,这个时候鼠标移动就会有控件跟着动的效果了。 在Q.

lxj362343的博客 1万+

FPGA笔试题知识点汇总(21~40)

FPGA笔试题知识点汇总(21~40)

weixin_52487896的博客 5871

KEIL MDK 生成bin文件实战:C51与ARM双平台配置指南

本文详细介绍了在KEIL MDK开发环境中,为C51和ARM双平台自动生成BIN文件的实战方法。针对C51平台,通过srec_cat.exe工具编写批处理脚本并集成到KEIL;针对ARM平台,则利用fromelf.exe工具直接配置。文章还提供了通用脚本方案和路径、变量、版本兼容性等常见问题的避坑指南,帮助开发者高效完成嵌入式程序部署。

weixin_29188997的博客 346

Qt编写自定义控件7-自定义可拖动多边形

前言 自定义可拖动多边形控件,原创作者是赵彦博(QQ:408815041 zyb920@hotmail.com),创作之初主要是为了能够在视频区域内用户自定义可拖动的多个区域,即可用来作为警戒区域,也可用来其他的处理,拿到对应的多边形坐标集合,本控件的主要难点是如何计算一个点在一个多边形区域内...

chengye5264的博客 671

别再手动配IP了!用NI-USRP Configuration Utility快速搞定USRP 2954与LabVIEW连接

本文详细介绍了如何使用NI-USRP Configuration Utility快速配置USRP 2954与LabVIEW的连接,解决传统手动IP配置的繁琐问题。通过图形化工具自动完成设备发现、IP设置和连接验证,大幅提升软件无线电实验效率,特别适合信号收发应用场景。

weixin_27102543的博客 292

Android 自定义可拖动尺子控件

面试中经常会遇到一些让你写代码的要求,一朋友遇到回来问我怎么写一个尺子控件,我觉得有意思就写了一个可拖动的尺子控件

滑尧伟的博客 3644

手把手教你学Simulink——基于Simulink的机械臂正运动学仿真建模示例

机械臂正运动学概述正运动学的核心在于根据每个关节的角度值,通过坐标变换(如DH参数法或齐次变换矩阵)计算出末端执行器相对于基座的位置和姿态。常用的数学工具包括旋转矩阵、平移向量以及它们组合而成的齐次变换矩阵。仿真目标设计并实现一个机械臂正运动学模型。输入关节角度,输出末端执行器的位置和姿态。分析不同关节角度下的机械臂位置变化。假设我们有一个简单的3自由度(DOF)平面机械臂,其各关节的长度分别为l1l1​、l2l2​和l3l3​。在Simulink中,可以使用。

MHD0815的博客 359

YOLO26改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLO26中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLO26,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 252

winform 可拖动的自定义Label控件

效果预览:     实现步骤如下:   (1)首先在项目上右击选择:添加->新建项,添加自定义控件       (2)自定义的一个Label让它继承LabelControl控件,LabelControl控件是DevExpress控件库里面的一种,和Label控件差不多,想了解更多关于DevExpress控件,推荐到DevExpress控件论坛学习:http://ww...

炒饭君的博客 6286

保姆级教程:ABAP 通过 HTTP POST 调用 OData 服务创建业务数据的具体例子

笔者之前的文章发布之后,有朋友在评论区留言,询问 ABAP 除了 Web Service 之外,是否也支持 HTTP 呢?ABAP 这么强大的语言,支持 HTTP 当然不在话下。网上有很多在 ABAP 系统基于 CL_HTTP_CLIENT 工具类,通过 HTTP 协议和第三方系统交互的代码例子。本文介绍笔者项目中一个实际例子,实现的是在 ABAP 系统 A 通过 HTTP 调用 OData 服务,在 ABAP 系统 B 创建业务数据的需求。下面我们按照这个套路来一步步实现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 697

android 拖动条控件 方向盘控件 自定义控件

android 拖动条控件 方向盘控件 自定义控件。

qq_37630270的博客 190

PCL 三维重建 基于B样条曲线的曲面重建算法

本文将介绍如何使用B样条曲线进行三维点云数据的曲面重建。B样条曲线和曲面是一种强大的数学工具,在计算机图形学、CAD设计等领域中广泛应用。通过对点云数据进行曲面拟合和优化,最终得到精确的曲面模型。本示例展示了如何利用PCL中的B样条曲线拟合算法进行三维曲面重建,并对重建结果进行可视化。

纵马踏花向自由 658

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 用正则表达式突出显示字符串中查询到的单词的函数
下一篇: 做ASP小偷时.经常需要用到的函数.
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值