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

微信手机网站搭建网站建设的一些知识

微信手机网站搭建,网站建设的一些知识,徐州手机网站建设,怎么注册企业视频号基于 Qt 的 QGraphicsView 绘图软件项目进行深入讲解#xff0c;分析其核心代码与功能实现#xff0c;帮助开发者理解 QGraphicsView 的用法。 项目概览 该项目实现了一个简单的绘图应用#xff0c;用户可以在界面中创建和编辑矩形、椭圆、直线、多边形和文本等图形对象。功…基于 Qt 的 QGraphicsView 绘图软件项目进行深入讲解分析其核心代码与功能实现帮助开发者理解 QGraphicsView 的用法。 项目概览 该项目实现了一个简单的绘图应用用户可以在界面中创建和编辑矩形、椭圆、直线、多边形和文本等图形对象。功能包括添加图形、设置属性颜色、字体、移动、缩放、旋转、组合、删除等。 项目概览 通过网盘分享的文件基于 QGraphicsView 的绘图软件 链接: https://pan.baidu.com/s/1g-thPifZmPKhLHJ8KFoL2w?pwdjkcf 提取码: jkcf核心代码讲解 1. 初始化与场景设置 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);// 创建 QGraphicsScene并设置范围scene new QGraphicsScene(-300, -200, 600, 400);// 将场景绑定到视图ui-View-setScene(scene);// 设置鼠标样式和拖拽模式ui-View-setCursor(Qt::CrossCursor);ui-View-setMouseTracking(true);ui-View-setDragMode(QGraphicsView::RubberBandDrag);// 初始化状态栏信息labViewCord new QLabel(tc(View 坐标));labSceneCord new QLabel(tc(Scene 坐标));labItemCord new QLabel(tc(Item 坐标));labItemInfo new QLabel(tc(ItemInfo: ));ui-statusBar-addWidget(labViewCord);ui-statusBar-addWidget(labSceneCord);ui-statusBar-addWidget(labItemCord);ui-statusBar-addWidget(labItemInfo); }QGraphicsScene定义绘图区域设置范围为 (-300, -200) 到 (300, 200)。QGraphicsView作为窗口的显示组件绑定场景 scene支持鼠标拖拽和实时追踪。状态栏显示鼠标坐标、选中项的信息便于交互。 2. 鼠标事件处理 鼠标移动事件 void MainWindow::on_mouseMovePoint(QPoint point) {labViewCord-setText(tc(View 坐标%1,%2).arg(point.x()).arg(point.y()));QPointF pointScene ui-View-mapToScene(point);labSceneCord-setText(tc(Scene 坐标%1,%2).arg(pointScene.x()).arg(pointScene.y())); }获取鼠标的视图坐标并将其转换为场景坐标通过状态栏实时显示。 鼠标单击事件 void MainWindow::on_mouseClicked(QPoint point) {QPointF pointScene ui-View-mapToScene(point);QGraphicsItem *item scene-itemAt(pointScene, ui-View-transform());if (item ! nullptr){QPointF pointItem item-mapFromScene(pointScene);labItemCord-setText(tc(Item 坐标%1,%2).arg(pointItem.x()).arg(pointItem.y()));labItemInfo-setText(item-data(ItemDesciption).toString() tc(, ItemId) item-data(ItemId).toString());} }根据鼠标位置获取场景坐标并检测该位置的绘图项。如果有绘图项显示其局部坐标和描述信息ItemId 和 ItemDescription。 鼠标双击事件 void MainWindow::on_mouseDoubleClick(QPoint point) {QPointF pointScene ui-View-mapToScene(point);QGraphicsItem *item scene-itemAt(pointScene, ui-View-transform());if (item nullptr) return;switch (item-type()){case QGraphicsRectItem::Type: // 矩形{QGraphicsRectItem *theItem qgraphicsitem_castQGraphicsRectItem*(item);setBrushColor(theItem);break;}case QGraphicsEllipseItem::Type: // 椭圆{QGraphicsEllipseItem *theItem qgraphicsitem_castQGraphicsEllipseItem*(item);setBrushColor(theItem);break;}case QGraphicsTextItem::Type: // 文本{QGraphicsTextItem *theItem qgraphicsitem_castQGraphicsTextItem*(item);QFont font QFontDialog::getFont(nullptr, theItem-font(), this, tc(设置字体));if (font.isValid())theItem-setFont(font);break;}} }鼠标双击弹出对话框根据绘图项类型设置填充颜色或字体。使用 qgraphicsitem_cast 将 QGraphicsItem 转换为具体类型。 3. 添加绘图项 添加矩形 void MainWindow::on_actItem_Rect_triggered() {QGraphicsRectItem *item new QGraphicsRectItem(-50, -25, 100, 50);item-setFlags(QGraphicsItem::ItemIsMovable |QGraphicsItem::ItemIsSelectable |QGraphicsItem::ItemIsFocusable);item-setBrush(QBrush(Qt::yellow));item-setZValue(frontZ);scene-addItem(item); }使用 QGraphicsRectItem 创建矩形。设置属性 可移动、可选中、可聚焦。填充颜色为黄色Z 值递增调整叠放顺序。 添加文本 void MainWindow::on_actItem_Text_triggered() {QString str QInputDialog::getText(this, tc(输入文字), tc(请输入文字));if (str.isEmpty()) return;QGraphicsTextItem *item new QGraphicsTextItem(str);QFont font this-font();font.setPointSize(20);font.setBold(true);item-setFont(font);scene-addItem(item); }使用 QGraphicsTextItem 创建文本用户通过对话框输入文字。设置字体大小为 20并加粗。 4. 操作绘图项 删除选中项 void MainWindow::on_actEdit_Delete_triggered() {int cnt scene-selectedItems().count();for (int i 0; i cnt; i){QGraphicsItem *item scene-selectedItems().at(0);scene-removeItem(item);} }遍历选中项列表逐个从场景中删除。 缩放与旋转 void MainWindow::on_actZoomIn_triggered() {ui-View-scale(1.1, 1.1); // 放大视图 }void MainWindow::on_actRotateLeft_triggered() {ui-View-rotate(-30); // 逆时针旋转视图 }放大视图的比例scale。顺时针/逆时针旋转视图rotate。 组合与解除组合 void MainWindow::on_actGroup_triggered() {QGraphicsItemGroup *group new QGraphicsItemGroup;scene-addItem(group);foreach (QGraphicsItem *item, scene-selectedItems()){group-addToGroup(item);} }void MainWindow::on_actGroupBreak_triggered() {QGraphicsItemGroup *group qgraphicsitem_castQGraphicsItemGroup *(scene-selectedItems().at(0));scene-destroyItemGroup(group); }使用 QGraphicsItemGroup 将多个绘图项组合方便整体操作。使用 destroyItemGroup 解除组合。 总结 该项目通过 Qt 提供的 QGraphicsView 框架实现了一个简单但功能丰富的绘图软件。其核心功能包括 绘图功能支持矩形、椭圆、多边形、文本等图形的添加与属性设置。交互功能支持鼠标操作、移动、缩放、旋转等。编辑功能支持组合、解除组合、删除、层次调整。
http://www.ho-use.cn/article/10816591.html

相关文章:

  • 珠海酒店网站建设公司建个网站需要多少钱
  • asp评价网站开发文档开发app需要多少资金
  • 怎么看一个网站用什么做的微信名字制作软件小程序
  • 网站便宜建设网站代运营
  • 网站模版建设网站开发设计图片
  • 网站设计详细设计dede网站不能运行php文件
  • 菏泽市建设局网站电话东营市房产信息网
  • 供求网站建设网站代理工具
  • 有谁知道知乎网站是谁做的以春天为主题的网站建设资源
  • 平舆专业网站建设网站开发周期
  • 网站更新方法值得信赖网页制作平台
  • 企业网站功能对比分析外发加工单表格模板
  • 商品网站策划书wordpress 亲子模板下载
  • 网站建设借鉴贵阳建设厅网站
  • 网站建立的做定制校服的网站
  • 婚礼做的好的婚庆公司网站天津建设网站c2成绩查询
  • 可以做设计兼职的网站有哪些工作室学会网站建设项目
  • 网站开发外文参考文献网站建设网络营销文章
  • 网站建设js是什么网站建设 项目文档
  • app开发与网站建设难度公司建立网站怎么做分录
  • 好域名做网站网站建设找至尚网络
  • 怎样做网站轮播做视频可以赚钱的网站
  • 网站建设推广软文网站空间一般多大
  • 上海做网站站优云一一十六厦门制作网站哪家好
  • 威县企业做网站数据库内容进 wordpress
  • 哪个网站可以做社工试题济宁做公司网站
  • 廊坊营销网站团队php网站开发教程 pdf
  • 世界上有一个wordpress站点小程序是怎么开发的
  • 微信网站建设 知乎青岛艺腾网站建设
  • 网站备案期间打不开WordPress如何加载SSL证书