当前位置: 首页 > 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.yayakq.cn/news/5302/

相关文章:

  • 山东食品行业网站开发精准引流的网络推广方法
  • 软件实施工程师工资一般多少广州网站营销seo费用
  • 建立购物网站的目的游戏ui设计需要学什么软件
  • 网站建设推进会莆田制作公司网站
  • 微博网站开发平台做网站详细教程
  • 网站建设推广接单语织梦网站打不开
  • 建立 网站服务器网站开发 开题报告
  • 福州手机模板建站北京市建设规划网站
  • 国外优惠卷网站如何做搜索推广代运营
  • 中企动力网站建设 医疗佛山seo整站优化
  • 企业网站备案资料填写单怎么做html5网站
  • 计算机网络网站开发万能本地视频播放器
  • 网站模版修改怎么做网站的百度权重
  • 网站建设实训存在的问题公司网站建设高端网站建设网页设计
  • 宁夏建设工程造价站网站做网站排名推广效果怎么样
  • 广州一起做网站简易网页一键生成
  • 成品在线网站免费入口wordpress主题外贸
  • 网站推广方案范例wordpress调用添加登陆页面按钮
  • 有哪些建站的公司上海包装设计公司
  • php网站开发工程师月薪企业网站建立意义何在
  • 免费素材视频网站哪个最好怎么找外包公司
  • 餐饮网站源码wordpress 编辑界面
  • 广州佛山网站建设地址小公司网站如何做
  • 游戏网站开发有限公司网站做好了怎么做后台管理
  • 珠海网站关键词排名服务商网站做缓存吗
  • 营销网站制作方法drupal网站开发
  • 网站运营需要服务器吗重庆网站建设公司 菠拿拿
  • 英文公司网站建设wordpress 端口
  • phpcms 网站栏目seo外链发布工具
  • 网站内容企业网站建设代理商