QRect::contains函数问题

Oskar_Sun Oskar_Sun 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
两个问题
#include "mywidget.h"
#include<QtGui>


MyWidget::MyWidget(QWidget *parent) :
QWidget(parent)
{
setMouseTracking(true);
LineOfRect=false;
}
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPen pen(Qt::red,4);
painter.setPen(pen);
QRect rect(30,30,200,200);
painter.drawRect(rect);
}

void MyWidget::setcursor()
{
if(LineOfRect)
{
setCursor(Qt::OpenHandCursor);
}
else{
setCursor(Qt::ArrowCursor);
}
}

void MyWidget::mouseMoveEvent(QMouseEvent *event)
{
QRect rect(30,30,200,200);
if(rect.contains(event->pos(),false))
{
LineOfRect=true;
}
else{
LineOfRect=false;
}
setcursor();
QString pos=QString("%1,%2").arg(event->pos().x()).arg(event->pos().y());
QToolTip::showText(event->globalPos(),pos,this);
}



QRect::contains 函数帮助文档中:
bool QRect::contains ( const QPoint & point, bool proper = false ) const
Returns true if the given point is inside or on the edge of the rectangle, otherwise returns false. If proper is true, this function only returns true if the given point is inside the rectangle (i.e., not on the edge).
1.当proper为false时,当point在rect的边缘上应该也返回ture,但是我在上面的代码中鼠标在rect边缘上的时候鼠标形状并没有改变,而是当鼠标在rect内部时cursor才改变形状,为什么?
2.如果if语句改成 if(rect.contains(event->pos(),false)&&(!(rect.contains(event->pos(),ture)))) 可以实现当鼠标在rect边框上cursor形状改变么?
...全文

相关推荐

qt 实现不规则窗口

qt实现不规则窗口 源码

半宛清愁

QT读取系统信息--磁盘管理器

char cmd[100] = "free -m"; FILE * f = popen(cmd,"r"); char prt[100]; QString str; QStringList str2; int total,used; fgets(prt,100,f); fgets(prt,100,f); printf("%s",prt); str.append(prt); str2 = str.split(" ",QString::SkipEmptyParts); total = str2.at(1).toInt(); used = str2.at(2).toInt(); QString str3(QString("total Memory : ") + QString::number(total) + "MB"); m_ui->label_4->setText(str3); double per = (used - 0.0)/total; m_ui->progressBar_2->setValue(per * 100); pclose(f);//内存查询完毕 memset(cmd,100,'0'); str = ""; str2.clear(); total = used = 0;//数据初始化 strcpy(cmd ,"df -hT"); f = popen(cmd,"r"); int length;

a903265446

qt实现类似QQ伸缩窗口--鼠标事件应用

QT实现一个窗体中包含左右两个窗体,通过鼠标事件,隐藏左边窗口,右边窗口伸展。在点击,显示左边窗口。

QQ_1695710968

CustomSwitchButton.rar

自定义QT开关按钮 全部是代码qpainter绘制而成

十七、

无刷直流电机模糊神经网络PID-模糊PID-传统PID三种控制对比Simulink仿真

内容概要:本文系统研究了无刷直流电机(BLDCM)在Simulink环境下的三种控制策略:传统PID控制、模糊PID控制以及模糊神经网络PID控制。研究基于三相桥式星型全控电路结构,构建了转速电流双闭环控制系统,并通过Matlab/Simulink搭建仿真模型,全面对比分析了三种算法在动态响应速度、稳态精度、抗干扰能力及系统鲁棒性等方面的性能差异。文章深入阐述了各控制方法的设计原理与实现机制,重点突出了模糊逻辑与神经网络在自适应调节PID参数方面的优势,验证了智能控制算法在提升电机控制品质上的显著效果。同时,文档提供了详实的仿真资源、参考文献和技术说明,有助于读者复现实验并深化对先进控制策略的理解与应用。 适合人群:具备自动控制理论基础和MATLAB/Simulink仿真能力的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员,特别适用于从事电机驱动系统设计、智能控制算法开发等领域的专业人士。 使用场景及目标:①用于教学与科研中对比分析传统PID、模糊PID与模糊神经网络PID在无刷直流电机调速系统中的控制性能差异;②为高性能电机控制器的设计与优化提供仿真验证平台,支持参数整定与控制策略选型;③辅助完成毕业设计、科研项目或工业应用中的控制算法评估与改进。 阅读建议:建议读者结合所提供的Simulink模型与参考文献,逐步复现仿真过程,重点关注不同控制器的参数整定方法、响应曲线特征及其在负载扰动下的表现。可进一步拓展研究方向,如引入无位置传感器控制、滑模观测器或模型预测控制等先进控制技术,以深化对现代电机智能控制体系的理解与创新能力。

欢多天天写代码
评论 1
收藏 已收藏
分享
返回顶部
Oskar_Sun
Qt 21,503 成员 26,693 内容