QRect::contains函数问题
#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;
qt实现类似QQ伸缩窗口--鼠标事件应用
QT实现一个窗体中包含左右两个窗体,通过鼠标事件,隐藏左边窗口,右边窗口伸展。在点击,显示左边窗口。
CustomSwitchButton.rar
自定义QT开关按钮 全部是代码qpainter绘制而成
科技中介服务机构如何构建轻量化、易操作的数智化服务工具?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


