当前位置: 首页 > news >正文

县总工会网站建设情况做网站先付款

县总工会网站建设情况,做网站先付款,广东外贸网站建设企业,品牌故事经典案例1.概要 创建一个矩形&#xff0c;当鼠标进入这个矩形的时候&#xff0c;这个矩形边线变色&#xff0c;且鼠标变成手型 2.代码 #include <QApplication> #include "customRectWidget.h" /** qt 6.7版&#xff0c; 创建一个矩形&#xff0c;当鼠标进入这个矩形…

1.概要

创建一个矩形,当鼠标进入这个矩形的时候,这个矩形边线变色,且鼠标变成手型

2.代码

#include <QApplication>
#include "customRectWidget.h"
/** qt 6.7版, 创建一个矩形,当鼠标进入这个矩形的时候,这个矩形边线变色,* 且鼠标变成手型,且这时候按下鼠标,鼠标可以上下拖动这个矩形,* 当鼠标松开的时候停止移动,但鼠标离开矩形的时候,矩形颜色恢复,完整代码举例;* 强调一下,鼠标进入矩形内,颜色变化,鼠标变成手型,不是鼠标进入矩形所在的控件就有上述变化。
*/
int main(int argc, char *argv[]) {QApplication app(argc, argv);CustomRectWidget widget;widget.show();return app.exec();
}
#ifndef CUSTOMRECTWIDGET_H
#define CUSTOMRECTWIDGET_H#include <QWidget>
#include <QMouseEvent>class CustomRectWidget : public QWidget {Q_OBJECTpublic:explicit CustomRectWidget(QWidget *parent = nullptr);protected:void paintEvent(QPaintEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;void enterEvent(QEnterEvent *event) override;void leaveEvent(QEvent *event) override;void setIsChange(const QPoint &mousePos);
private:QRect rect;bool dragging;QPoint dragStartPoint;QColor hoverColor;QColor normalColor;bool isChange;bool isMouseInsideRect(const QPoint &mousePos) const;
};#endif // CUSTOMRECTWIDGET_H

 

#include "customRectWidget.h"
#include <QPainter>
#include <QCursor>
#include <QDebug>CustomRectWidget::CustomRectWidget(QWidget *parent): QWidget(parent), rect(50, 50, 200, 100), dragging(false), hoverColor(Qt::red), normalColor(Qt::black) {setFixedSize(300, 300);// 启用鼠标追踪,以便在鼠标没有按下时也能接收mouseMoveEventsetMouseTracking(true);
}void CustomRectWidget::setIsChange(const QPoint &mousePos){bool value = isMouseInsideRect(mousePos);if(value==isChange){return;}update();isChange = value;
}void CustomRectWidget::paintEvent(QPaintEvent *event) {Q_UNUSED(event)QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);QColor borderColor = normalColor;if (isMouseInsideRect(mapFromGlobal(QCursor::pos()))) {borderColor = hoverColor;}painter.setPen(QPen(borderColor, 3));painter.setBrush(Qt::white);painter.drawRect(rect);
}void CustomRectWidget::mousePressEvent(QMouseEvent *event) {setIsChange(event->pos());if (isMouseInsideRect(event->pos())) {dragging = true;dragStartPoint = event->pos();}
}void CustomRectWidget::mouseMoveEvent(QMouseEvent *event) {setIsChange(event->pos());if (dragging && isMouseInsideRect(dragStartPoint)) {int dy = event->pos().y() - dragStartPoint.y();rect.moveTop(rect.top() + dy);dragStartPoint = event->pos();update(); // Trigger repaint with new position}
}void CustomRectWidget::mouseReleaseEvent(QMouseEvent *event) {Q_UNUSED(event)dragging = false;
}void CustomRectWidget::enterEvent(QEnterEvent *event) {Q_UNUSED(event)// We manually set the cursor in the mouseMoveEvent based on the rect position
}void CustomRectWidget::leaveEvent(QEvent *event) {Q_UNUSED(event)// Cursor will be reset to default when leaving the widget
}bool CustomRectWidget::isMouseInsideRect(const QPoint &mousePos) const {bool ret = rect.contains(mousePos);if(ret) {qDebug()<<"in";}else{qDebug()<<"not in";}return ret;
}

 3.运行结果

http://www.yayakq.cn/news/731598/

相关文章:

  • 网站建设业务开展方案wordpress精简代码
  • 著名网站设计师天猫网站是怎么做seo优化的
  • 台州建设网站公司免费引流推广工具
  • 网站空间管理系统网站能当做创业来做吗
  • 昆明网站做的好的公司如何在app上做网站
  • 公司建网站多少钱一个月手机端搜索引擎排名
  • 巴中网站建设有限公司php模板源码
  • 网站建设金手指15什么为网站建设提供基础素材
  • 网站外链隐形框架开放大学门户网站建设
  • 做网站需要哪些准备cdn wordpress ip统计
  • 手机端怎么网站建设连山网站建设
  • 成都网站公司网站建设设计师做私单网站
  • 临湘建设局网站二级域名搜索
  • 网站开发便宜上上海网站设计建设
  • 网站微信登录怎么做的云空间网站
  • 音乐网站 模板卖游戏辅助的网站怎么建设
  • 自己做视频网站有点卡阿里云主机 多个网站
  • 上海网站制作网站建设建筑公司发展愿景
  • 设计网站公司只找亿企邦微信运营商
  • 网站本地环境搭建网址搜索域名查询
  • 怎么网站设计.net网站如何优化
  • 做欧美市场的网站网站建设以及推广提案书
  • 中国风html5网站模板免费下载怎么帮自己做的网站申请地址
  • 小吃网站建设网络营销推广方案内容
  • 合肥网站建设哪个好网站建设维护方向
  • 中英文网站建设价格广州公司注册提供地址
  • 中律之窗网站建设网站建设图片轮播
  • 深圳网站建设创想营销网络推广软件工具
  • 嘉兴做网站seo企业站网站
  • 网站客户端制作多少钱什么网站做专利检索报告