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

网站建设需要的网络技术建设一个普通网站需要多少钱

网站建设需要的网络技术,建设一个普通网站需要多少钱,网站制作公司起名,dede网站后台模板目录 一、简介与设计 1.1 简介 1.2 设计 二、SvgWidget 2.1 鼠标滚轮事件 三、svgwindow 四、MainWindow 一、简介与设计 1.1 简介 1、SVG 的英文全称是 Scalable Vector Graphics,即可缩放的矢量图形。它是由万维网联盟(W3C)在 200…

目录

一、简介与设计

1.1 简介

1.2 设计

二、SvgWidget

2.1 鼠标滚轮事件

三、svgwindow

四、MainWindow


 

一、简介与设计

1.1 简介

1、SVG 的英文全称是 Scalable Vector Graphics,即可缩放的矢量图形。它是由万维网联盟(W3C)在 2000 年 8 月制定的一种新的二维矢量图形格式

 

2、SVG 的特点如下:

(1) 基于XML

(2) 采用文本来描述对象

(3)  具有交互性和动态性

(4) 完全支持 DOM

 

3、SVG 中画折线的标签如下

<polyline fill="none" stroke="#888888" stroke-width="2" points="100, 200, 100, 100"/>

polyline:表示绘制折线

fill:表示填充

stroke:表示画笔颜色

stroke-width:表示画笔宽度

points:表示折线的点

 

4、SVG 是一种矢量图形格式,比 GIF、JPGE 等栅格格式具有众多优势,如文件小;可任意缩放而不会破坏图像的清晰度和细节;图像中的文字独立于图像,文字保留可编辑和可搜寻的状态

 

5、Qt 的 XML 模块支持两种 XML 解析方法:DOM 和 SAX。DOM 方法将 XML 文件表示为一棵树,可以随机访问其中的节点,内存消耗较大。SAX 是一种事件驱动的 XML API,其速度快,但不便于随机访问任意节点

 

6、Qt 为 SVG 格式图片的显示与生成提供了专门的 QtSvg 模块,此模块中包含了与 SVG 图片相关的所有类,主要有 QtSvgWidget、QSvgRender 和 QGraphicsSvgItem

 

1.2 设计

界面

通过 QtSvgWidget 类和 QSvgRender 类实现一个 SVG 图片浏览器,显示以 ".svg" 结尾的文件以介绍 SVG 格式图片显示的方法

0b644129823646dca53b691a84c57507.png

结构

847f22a1383d4a4a9f0c2370d73fe760.jpg

 

建立项目

项目名:SVGTest

40ec05314c304efa95fb77c07e3f7771.png

 a4c4cda80db9430ab9f9965bab3876a0.png

1498c2004c8f47e79d9340bd8a017cb7.png

90b966bea97e4adfa2ef3898181e6a52.png

 

二、SvgWidget

2.1 鼠标滚轮事件

aac823775d154976be21485f947ad1ba.png

svgwidget.h

#ifndef SVGWINDOW_H
#define SVGWINDOW_H#include <QtSvg>
#include <QSvgWidget>
#include <QSvgRenderer>class SvgWidget : public QSvgWidget
{Q_OBJECT
public:SvgWidget(QWidget *parent = 0);void wheelEvent(QWheelEvent *);  //相应鼠标的滚轮事件,使SVG图片能够通过鼠标滚轮的滚顶进行缩放private:QSvgRenderer *render;            //用于图片显示尺寸的确定
};#endif // SVGWINDOW_H

svgwidget.cpp

#include "svgwidget.h"SvgWidget::SvgWidget(QWidget *parent) : QSvgWidget(parent)
{render = renderer();
}// 鼠标滚动事件
void SvgWidget::wheelEvent(QWheelEvent *e)
{const double diff = 0.1;             //(a)QSize size = render->defaultSize();  //(b)int width = size.width();int height = size.height();if(e->angleDelta().y() > 0)          //(c){//对图片的长、宽值进行处理,放大一定的比例width = int(this->width() + this->width() * diff);height = int(this->height() + this->height() * diff);}else{//对图片的长、宽值进行处理,缩小一定的比例width = int(this->width() - this->width() * diff);height = int(this->height() - this->height() * diff);}resize(width, height);                //利用新的长、宽值对图片进行resize()操作
}

(a) const double diff = 0.1; 

鼠标每滚动一次,图片大小改变的比例,这个可以写在配置文件里面

 

(b) QSize size = render->defaultSize();

这一句和后面两句用于获取图片尺寸

 

(c) if(e->angleDelta().y() > 0)

获取鼠标滚动的角度,e->angleDelta().y() > 0 表示鼠标向远离用户的方向滚动。滚轮每滚动 1° 相当于移动 8°,常见鼠标滚动一下的角度为 15°,所以滚动一下相当于移动了 120°(=15°*8)

 

三、svgwindow

0b2b3fb64b2647498c749d18e4dec084.png

 svgwindow.h

#ifndef SVGWINDOW_H
#define SVGWINDOW_H#include <QScrollArea>
#include "svgwidget.h"// SvgWindow继承自QScrollArea类,是一个带滚动条的显示区域。
// 它包含svgWidget类,当图片放大到超过主窗口大小时,能够通过滚
// 轮查看全貌
class SvgWindow : public QScrollArea
{
public:SvgWindow(QWidget *parent = 0);void setFile(QString);void mousePressEvent(QMouseEvent *);void mouseMoveEvent(QMouseEvent *);private:SvgWidget *svgWidget;QPoint mousePressPos;QPoint scrollBarValueOnMousePress;
};#endif // SVGWINDOW_H

svgwindow.cpp

#include "svgwindow.h"SvgWindow::SvgWindow(QWidget *parent) : QScrollArea(parent)
{//调用QScrollArea类的setWidget()函数设置滚动区的窗体,//使svgWidget成为SvgWindow的子窗口svgWidget = new SvgWidget;setWidget(svgWidget);
}void SvgWindow::setFile(QString fileName)
{//主窗口对文件进行选择或修改时,调用setFile()函数设置新的文件svgWidget->load(fileName);                     // 将新的SVG文件加载到svgWidget中进行展示QSvgRenderer *render = svgWidget->renderer();svgWidget->resize(render->defaultSize());      // 使svgWidget窗体按SVG图片的默认尺寸进行显示
}// 分别获得svgWindow的水平滚动条和垂直滚动条
void SvgWindow::mousePressEvent(QMouseEvent *event)
{mousePressPos = event->pos();scrollBarValueOnMousePress.rx() = horizontalScrollBar()->value();scrollBarValueOnMousePress.ry() = verticalScrollBar()->value();event->accept();
}//鼠标键被按下并拖拽鼠标时触发mouseMoveEvent()函数,
//通过滚动条的位置设置实现图片拖拽的效果:
void SvgWindow::mouseMoveEvent(QMouseEvent *event)
{//对水平滚动条的新位置进行设置horizontalScrollBar()->setValue(scrollBarValueOnMousePress.x() - event->pos().x() + mousePressPos.x());//对垂直滚动条的新位置进行设置horizontalScrollBar()->update();verticalScrollBar()->update();event->accept();
}

 

四、MainWindow

83bb3a25c89b4cc99e00c8681ed5f271.png

 mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include "svgwindow.h"class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();void createMenu();public slots:void slotOpenFile();private:SvgWindow *svgWindow;  //用于调用相关函数传递选择的文件名
};
#endif // MAINWINDOW_H

mainwindow.cpp 

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{setWindowTitle(tr("SVG Viewer"));createMenu();svgWindow = new SvgWindow;setCentralWidget(svgWindow);
}MainWindow::~MainWindow()
{
}// 创建菜单栏
void MainWindow::createMenu()
{QMenu *fileMenu = menuBar()->addMenu(tr("文件"));QAction *openAct = new QAction(tr("打开"), this);connect(openAct, SIGNAL(triggered()), this, SLOT(slotOpenFile()));fileMenu->addAction(openAct);
}//显示SVG
void MainWindow::slotOpenFile()
{QString name = QFileDialog::getOpenFileName(this, " 打 开 ", "/", "svg files(*.svg)");svgWindow->setFile(name);
}

 

 

 

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

相关文章:

  • 网站建设辅助网站备案好不好
  • 网站 美食频道 建设网站关键词怎样做优化
  • 做微网站用什么框架大鱼直播
  • 网站建设公司领导致辞深圳网站空间
  • 怎样制作公司网站天津网站备案去哪
  • 华升建设集团有限公司网站网站开发常用小图片
  • 通辽网站建设招聘wordpress点击弹出层插件
  • 网站建设都用哪些软件展示型网站设计
  • 网站开发榜单规则株洲新站seo
  • it培训网站哈尔滨最新通知
  • 成都三合一网站建设推荐个2021能看的网站
  • 建设一个什么网站赚钱中山seo外包
  • 网页设计公司网站制作做网站的商家怎么后去流量费
  • 唐山网站建设培训凡科登录入口app下载
  • 个人工作室网站怎么做有做全棉坯布的网站吗
  • 制作企业网站与app有什么不同青岛永诚网络有限公司
  • 对于网站建设的调查问卷wordpress时间中文版
  • 网站建设运营策划方案建站重庆
  • 临海做 网站男女做暧暧试看网站49
  • 大连网站建设设计北京网站建设迈程网络
  • 网站由哪三部分构成电子商务网站建设分析
  • 做订单管理网站用什么软件山西住房城乡建设厅网站
  • 免费网站入口网站免费进做网站要需要多少钱
  • 溧水114网站开发php网站开发文档模板
  • 做网站提成做网站国家大学科技园郑州
  • 棕色网站设计门户网站 建设 如何写
  • 杭州百家号优化google搜索排名优化
  • 建站行业消失了吗WordPress资讯站点源码
  • 网站开发方式哪四种珠海企业网站搭建制作
  • 租车网站建设方案宁波seo推广平台