首页 > 其他分享 >QT鼠标拖拽方式

QT鼠标拖拽方式

时间:2024-06-10 17:31:14浏览次数:24  
标签:控件 QT 按钮 拖拽 图像 QPixmap QImage 鼠标

创建按钮,然后添加图片

因为按钮是直接继承了ui类的,所以在ui界面直接把按钮进行拖拽就好

给按钮添加上图片

QPixmap 和image的区别:

  1. QPixmap

    • QPixmap主要用于在屏幕上显示图像,通常用于GUI界面中的图像显示。
    • QPixmap优化了对显示设备的访问,因此在显示图像时具有更好的性能。
    • QPixmap可以直接与QWidget一起使用,例如在标签、按钮等控件中显示图像。
  2. QImage

    • QImage是Qt中的通用图像类,可以用于处理图像数据,如读取、写入、处理图像像素等。
    • QImage可以处理各种图像格式,包括位图、矢量图等,而不仅仅是用于显示。
    • QImage可以用于图像的像素级操作,例如修改像素值、转换格式、进行图像处理等。

创建按钮类,然后继承所创建的按钮类的类型,因为我用的是toolbutton添加图片,所以继承的是toolbutton

先把按钮提升为窗口控件

原因:

提升为窗口控件鼠标点击按钮才能获取对应的窗口坐标,因为鼠标点击返回的是相对应的控件本体的相对坐标,没有提升的时候,点击返回的是0,0.并且这样鼠标可以直接使用event->pos进行计算而不是先拿到屏幕坐标然后再转化为窗口坐标。

右键->提升为->填写名称,然后点击添加->勾选为全局变量->点击提升就完成了

名字要和你创建的按钮的类名一致 例如:我toolbutton创建的对应的那个类名叫CButton,这里的名字就填CButton,这里只是用pushbutton做示例

这里需要用到向量进行移动 算的是鼠标前后移动的单位向量

鼠标按下时候的位置

通过鼠标移动函数进行检测

标签:控件,QT,按钮,拖拽,图像,QPixmap,QImage,鼠标
From: https://blog.csdn.net/HSJDBN/article/details/139536665

相关文章

  • QT 图片从屏幕桌面拖进窗口
    设置在Widget构造写接受拖拽事件函数这样才能使用后面的函数重写鼠标拖拽函数都是继承的widget的函数实现内部方法Drag部分://URLs是统一资源定位符(UniformResourceLocators)的复数形式。在计算机术语中,URLs用来标识和定位互联网上的资源,如网页、图片、视频等。它由若......
  • PyQT5之QSS基础/子控件选择器
    fromPyQt5.QtWidgetsimport*importsysclassBasicQCSS(QWidget):def__init__(self):super().__init__()self.setWindowTitle("QSS样式/子控件选择器")btn1=QPushButton(self)btn1.setText("按钮1")b......
  • 在使用鼠标和外设时遇到困难
    我希望允许用户点击他选择的潜艇(这些潜艇已经定位:),然后他在屏幕上点击另一次,潜艇就会出现在那里。出于某种原因,无论我点击什么或在哪里,都会出现相同的潜水艇(4号潜水艇),而且在我移动鼠标后,其中一些潜水艇会消失。此外,我还创建了一个循环,该循环应运行5次,但在一次迭代后,我的代码就......
  • 【QT5】<总览五> QT多线程、TCP/UDP
    文章目录前言一、QThread多线程二、QT中的TCP编程1.TCP简介2.服务端程序编写3.客户端程序编写4.服务端与客户端测试三、QT中的UDP编程1.UDP简介2.UDP单播与广播程序前言承接【QT5】<总览四>QT常见绘图、图表及动画。若存在版权问题,请联系作者删除!一、QThre......
  • View->可拖拽滑动的ImageView + Fling惯性滑动效果 + 回弹效果
    XML文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent&quo......
  • Qt 读取excel文件
    在Qt中,你可以使用QtXlsxWriter库来对Excel文件进行操作。QtXlsxWriter是一个开源库,用于在Qt应用程序中生成和编辑Excel文件。以下是如何使用QtXlsxWriter库在Qt中对Excel文件进行操作的步骤: 添加QtXlsxWriter库到你的Qt项目中。可以通过在.pro文件中添加以下行来包含QtXls......
  • PyQT5窗口样式设置
    importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*classWindowPattern(QMainWindow):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)self.resize(500,300)self......
  • PyQT5之设置窗口控件风格
    设置窗口控件风格QApplication.setStyle(...)窗口可以显示三种风格:['windowsvista','Windows','Fusion']importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*#print(QStyleFactory.keys())classWindow......
  • Qt 子线程调用connect/QMetaObject::invokeMethod 不调用槽函数问题
    在使用invokeMethod进行跨线程调用的时候,发现invokeMethod在某些情况下不能正常调用.经过查各种资料发现invokeMethod底层的调用逻辑是通过Qt事件循环处理,所以子线程需要显示的调用QEventLoop::exec()或者QCoreApplication::processEvents()执行信号槽处理.首先有一个QDemoObje......
  • mqtt-emqx:设置遗嘱消息
    【pom.xml】<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency><grou......