Qt鼠标点击两个点并自动连接这两个点

在工作区添加两个控件(视为两个点),实现点击鼠标连接两个点,要求:鼠标点击第一个点存储坐标作为线段的起点,此时不画线,再点击第二个点,获取线段的终点,如果起点和终点有一个坐标相同直接相连,如果不同找两个调节点连成平行或垂直的线段。不清楚怎么用代码实现,添加按钮触发事件怎么添加?

2个回答

即然是增加了两个控件,那么就应该查这两个控件是如何响应鼠标点击的。
因为你没有说是什么控件,无法分析。

我也在想办法实现这个功能,目前的想法是,下根据两个控件的中心位置计算一个路径出来,然后在根据落点的位置对最后一段连线的位置做一下调整
,避免连线与控件边界重合

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt 怎么简便地处理多个控件的鼠标响应事件。

现在界面上有多个lineEdit,我要做的是点击任意一个都能调出数字键盘,并且键盘调出后的数字显示框显示点击的lineEdit中的值,当输入完成后并关闭键盘后,lineEdit中数值替换为键盘输入的值。 在lineEdit向键盘显示框传值时,可以用提升类的做法使用鼠标响应事件,在函数中this指针可以将当前点击的控件中的值传入调出的键盘中。但是从键盘向控件传值时应该怎么传值呢?(因为lineEdit很多,所以给每一个控件写一个函数来接收又过于繁琐)

关于QT点击button无响应的问题

请教一下大神,我在做课程设计,要做界面第一次接触QT。做的是一个简单的0-1背包问题,要求用蛮力法和动态规划法两种方法。先用VS写的代码,两种算法都能得到正确结果,然后移到qt creater做界面,动态规划法现在已经搞定,但是同样的方法,点击蛮力法的button以后就不动了,如果自己点标题就会显示(无响应)。请问这可能得原因是什么?急急急

qt滚动条同时控制QTreeWidget 和QGraphicsView两个窗口同时滑动

各位大神,我是初次接触QT,需要做一个在qsplitter中放两个控件(QTreeWidget 和QGraphicsView),用一个竖的滚动条控制这两个控件同步下滑,请给个思路。

Qt中,会同时触发两个事件吗?

比如说,我改变一个窗体的大小,那么我是不是会触发 这个窗体部件的 changed信号 和 重绘事件?

求问大神:Qt用label显示图片,如何实现第一次点击后显示矩形,第二次点击后再显示一个矩形,之前的不消失

求问大家,我用label显示图片,重写paintEvent来显示鼠标点击位置的一个矩形,在 mousePressEvent里用update()来实现随鼠标位置更新矩形,但是这样就会使之前的 矩形消失。 怎么样才能实现鼠标每点击一次,在鼠标位置显示一个矩形,且之前的不会消失。 代码如下: **QImageLabel.h** ``` class QImageLabel : public QLabel { Q_OBJECT public: QImageLabel(QWidget *parent = 0); virtual ~QImageLabel(); protected: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); private: QPoint currentpos; }; ``` **QImageLabel.cpp** ``` #include "QImageLabel.h" #include <QtWidgets> QImageLabel::QImageLabel(QWidget *parent): QLabel(parent) { currentpos.setX(0); currentpos.setY(0); } QImageLabel::~QImageLabel() { } void QImageLabel::paintEvent(QPaintEvent *event) { QLabel::paintEvent(event); //需要调用父类的paintEvent事件,否则Label都无法绘制 QPainter painter(this); painter.setPen(Qt::red); painter.drawRect(currentpos.x() - 30, currentpos.y() - 30, 60, 60); } void QImageLabel::mousePressEvent(QMouseEvent *event) { currentpos = event->pos(); update(); } ```

请问,qt窗口如何同时跟踪鼠标移动和鼠标滚轮滚动事件

如题,我写了wheelEvent 和 mouseMoveEvent ,因为要跟踪鼠标移动还写了setMouseTracking(true); 但是这个时候wheelEvent不触发,把setMouseTracking(true);注释掉wheelEvent就能触发,请问如何才能同时跟踪这两个事件,谢谢

qt quick如何将c++代码通过点击一个按钮实现一个弹出的对话框中?

新人现在需要在qt quick中实现通过点击按钮实现将c++代码(例如排序等)实现在一个弹出的对话框中,求完整代码,万分感激

QT功能实现:槽函数中定义计算公式,点击按钮可以计算出相应的值,并赋值给linetext,如何实现?有实例说明更好,谢谢!

槽函数中定义计算公式,点击按钮可以计算出相应的值(类似于jtxt.Item(1).Text = Int((result(4) - 0.2) * 120 / 0.6)),并赋值给linetext,如何实现?有实例说明更好,谢谢!

请教大家两个关于QT的问题,解决一个算一个~

① QTreeWidget里面用setItemWidget() 添加的小部件用什么命令居中: 如图,按钮偏上。用setTextAlignment() 方法的话却又只能调整文字的方位 按钮用什么方法调? ![图片说明](https://img-ask.csdn.net/upload/201906/05/1559705761_220319.png) ② QtDesigner里面主窗口好像不能提升了,测试过非主窗口可以提升: 如图,“提升”按钮不能点击,我要做一个无Windows边框的窗体, 但是要可以自由移动,所以自己写了一个类继承于QWidget,重写了 几个鼠标点击、移动的方法,这种情况要自由移动怎么处理? ![图片说明](https://img-ask.csdn.net/upload/201906/05/1559705781_710003.png)

qt 中 怎么把一个QGraphicsScene实时映射到另一个QGraphicsScene上?

1、我有两个QGraphicsScene (A和B),在向A中添加(删除或移动)Item的时候,想实时显示到B中,不知道有什么方法实现没有?求各位大神指教。 2、目的:想实现类似游戏中小窗口地图的功能。 3、使用的是QT自带的demo(自己改造了):diagramscene。 刚使用qt不久,查了很多资料都没有有效解决方案;哪位大神遇到过类似问题,请不吝赐教啊。就剩这么多 分了

Qt Qtablewiget 鼠标移上去整行变色

如何用Qtabwidget实现类似以下效果![图片说明](https://img-ask.csdn.net/upload/201704/02/1491096087_4148.png) 就是鼠标放上去整行颜色都改变,我是用QTablewidgetItem的setbackgroundcolor方法来做的,利用itementer信号,然后找到那一行,每一列的qtablewidgetitem都用setbackgroundcolorlai来改变的,现在遇到一个问题,就是说如果鼠标离开Qtabwidget范围当前的行颜色应该变回白色,怎么监听鼠标离开这个QTablewidget范围呢 希望能得到解答 困扰好几天了 先谢谢啦

qt的重绘事件的显示问题

用重绘事件显示一段硬盘信息,希望每次update都只显示当次的信息,结果第二次update后第一次绘画的也会留在上面,以后每次update也就只会显示两个信息,以下是我的重绘事件的全部处理代码 ``` QPainter painter(this); for(int i = 0;i < statListString.count();++i) { painter.drawText(0,90 + 16 * i,statListString.at(i)); } ``` 可以看到每次重绘的开始地点是一样的,但是结果第一次后呢是![图片说明](https://img-ask.csdn.net/upload/201506/25/1435197564_635815.png),第二次后的每次就是![图片说明](https://img-ask.csdn.net/upload/201506/25/1435197592_913850.png),希望有经验的大神指教

在鼠标钩子中,如何实时获得鼠标的屏幕坐标?

在鼠标钩子的WM_LBUTTONDOWN消息中,我想获得鼠标点击瞬间的坐标。注意,是鼠标点击瞬间。 我现在知道有两种方法 1、GET_X_LPARAM(lparam)和GET_Y_LPARAM(lparam). 这种方法获取的是相对于钩子的鼠标坐标,但是钩子不像窗体,没有自己的坐标吧。我获取到的坐标要么很大,要么是负数。。。然后我尝试用钩子句柄来转换,ClientToScreen((HWND)hMouseHook, &pt)。得到的pt值也不是鼠标的屏幕坐标啊。 2、GetCursorPos 我现在用的临时方法就是这个。不过这里有一个问题。这个不是鼠标点击瞬间的坐标,而是我执行GetCursorPos时候,鼠标的坐标。由于我代码中,点击完会移动鼠标到指定的位置。所以获取的坐标时而准确,时而不准确。 请大牛赐教啊!!!

用qt写的五子棋界面,请问为什么第一行和第一列 不能落棋子? 大佬 bai'tuo

# ![图片说明](https://img-ask.csdn.net/upload/201903/10/1552210863_538638.jpg) ChessWidget::ChessWidget(QWidget *parent) : QWidget(parent) { ui.setupUi(this); this->setFixedSize(800, 660); this->setAutoFillBackground(true); QPalette palette; palette.setColor(QPalette::Window, QColor("#B1723C")); this->setPalette(palette); for (int i = 0; i < 15; ++i) { for (int j = 0; j < 15; ++j) { chess[i][j] = empyt; } } } ChessWidget::~ChessWidget() { } void ChessWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true);//反走样 QPen pen; pen.setColor(QColor("#8D5822")); pen.setWidth(7); painter.setPen(pen); QBrush brush; brush.setColor(QColor("#EEC085")); brush.setStyle(Qt::SolidPattern); painter.setBrush(brush); painter.drawRect(10, 10, 620, 620); QPainter painters(this); painters.setRenderHint(QPainter::Antialiasing, true); int i, j; for (i = 0; i <= 15; ++i) { painters.drawLine(20, 20 + i * 40, 620, 20 + i * 40); painters.drawLine(20 + i * 40, 20, 20 + i * 40, 620); } brush.setStyle(Qt::SolidPattern); for (i = 0; i < 15; ++i) { for (j = 0; j < 15; ++j) { if (chess[i][j] == BLACK) { brush.setColor(Qt::black); painters.setBrush(brush); painters.drawEllipse(QPoint((i) * 40 + 20, (j ) * 40 + 20), 20, 20); } else if (chess[i][j] == WHITE) { brush.setColor(Qt::white); painters.setBrush(brush); painters.drawEllipse(QPoint((i) * 40 + 20, (j) * 40 + 20), 20, 20); } } } } void ChessWidget::mousePressEvent(QMouseEvent *e) { int x, y; if (e->x() >= 20 || e->x() <= 620 || e->y() >= 20 || e->y() <= 620) { x = (e->x()-20)/40; y = (e->y()-20)/40; if (chess[x][y]==empyt) { chess[x][y] = player++ % 2 + 1; } } update(); } ``` ``` ``` ``` ``` ```

QT键盘事件,如何确定组合键被按下了

如题,小弟目前在vs2010+QT4.0的环境下,想捕获组合按键fn+F4 fn+F3是否被按下,想请教下这个如何实现?我在网上没查到fn的按键码?

请问Qt该怎样才能做出在Tab栏显示进度条的效果?

请问Qt该怎样才能做出在Tab栏显示进度条的效果(类似某些浏览器那样)?

QT5.11 ribbon界面问题

从github 上下载了( https://github.com/czyt1988/SARibbon) 博主的ribbon库, 想请教以下两个问题。 1.面板底部 字体太小了,想要把字体变大。 测量操作和参数配置这两个字体都很小,想要增加2个字号。 面板底部的说明是QWidget的标题栏,不知道要怎么修改内容。 ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585099437_289230.png) 2.左上角 Application按钮 “文件 ” 的位置。上图Applicationbutton是仿照office2017做的,我想要仿照office2007 应该怎么做呢? office2007如下图所示: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585099675_458564.jpg) 感谢各位大佬

linux下怎么捕捉qt写的窗体界面的变化?

两个qt窗体程序,a窗体上定时刷新一组数据列表,b需要抓取变化前后的数据并在b窗体上显示出来。 windows下似乎可用hook实现,而我不太懂linux的消息(?)机制,希望得到大神们的建议和指教,谢谢啦!

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例
立即提问