关闭

一种不太完善的OpenStreetMap字典汉化方法

根据世界地名词典,对OpenStreetMap进行汉化,使用了下面的代码。不太完善,这里仅贴出来。 地名字典在我的资源世界地名大词典下载。...
阅读(199) 评论(0)

用C++Qt 与libfcgi快速开发后台 WebService

在与APP接口的后台WebService开发方面,估计很少有人直接使用C接口的libfcgi-dev进行开发的了。但是,这不代表此方法是不可行的。在强大的Qt库的支持下,原来使用C++开发webService也是非常方便的。这里我们以获取OpenStreetMap数据库中的地理信息为例子,看看现代C++的威力。 项目地址: https://code.csdn.net/goldenhawking/...
阅读(1131) 评论(3)

利用ZoomPipeline迅速实现基于线程池的全异步TCP点对点代理

在博文《一种基于Qt的可伸缩的全异步C/S架构服务器实现》中提到的高度模块化的类可以进行任意拆解,实现非常灵活的功能。今天,我们来看一看一个公司局域网访问英特网云服务器的点对点代理例子,这个简单的代理支持设置负责传输的线程个数,可以根据配置文件同时服务多个链接。...
阅读(765) 评论(1)

利用 MSYS2 及osgEarth 构建三维地球模型(2) osgEarth 与 Qt的结合

上一篇中,我们已经使用傻瓜化的 pacman -S 安装了 openSceneGraph 与 osgEarth 。为了在Qt中导入osgEarth 的窗口,需要安装 osgQt 模块。 注意,这个包分32位、64位,同时,也分 release, debug,下载下来还是不小的,需要好几个GB的空间。...
阅读(1119) 评论(3)

Qt 数据库操作与多语言支持的解决途径探讨

最近帮朋友使用Qt开发了一个毕业设计,题目要求实现繁简切换。对UI的元素进行国际化,大致牵扯到以下几个部分。 UI元素:如按钮、各种控件。 代码中的字符串:比如一些弹出消息等。 数据库内容:包括字段名、字段值。 这三个部分由易到难。数据库内容动态翻译,成为最难的一点,至今解决的很笨,很不满意。...
阅读(821) 评论(3)

Qt5 UI信号、槽自动连接的控件重名大坑

对Qt5稍有熟悉的童鞋都知道信号、槽的自动连接机制。该机制使得qt designer 设计的UI中包含的控件,可以不通过显式connect,直接和cpp中的相应槽相关联。然而,这种机制存在一个隐患,即控件重名,需要引起重视...
阅读(1630) 评论(3)

迁移到MSYS2 与 Qt 工具链注意的几个事情

MSYS64 是很不错的编译环境,但是,在应对 Qt -ActiveQt 工程方面,存在参数转译符为"/"导致的无法生成idl接口文件问题,且缺少 windows SDK midl.exe的支持。本文详细介绍了如何解决这些问题,使得MSYS64环境下,可以顺利的编译出 activeX 控件。...
阅读(1967) 评论(3)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(5) 小结

非计算机专业的工程师们大量使用本地开发工具,在不同的领域创造价值。与前端工程师不同,OpenStreetMap 对应的Web前端对他们是陌生的。 一直以来想利用业余时间做这样一个工具,使得非计算机专业的工程师们可以拥有一款支持漫游、标图、动画效果的轻量级地理信息插件,特别是掌握C++、C#等本地工具的工程师们可以不经学习即能获得GIS二次开发能力,目前看来,已经做到了. 经过不断试用与修改,这个查看器最终还是完成了设计、实现。查看器,顾名思义,没有编辑功能,只是一个以OpenStreetMap为底图的...
阅读(1843) 评论(3)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(4) 插件绘图

(相关的代码可以从https://github.com/goldenhawking/mercator.qtviewer.git直接克隆)    我们在前面的叙述中,介绍了插件的运作管理机制。在本章,将介绍插件具体实现过程中,绘图、交互的要点。   1、经度边界处理       地球是一个圆球,从格林威治皇家天文台所在的本初子午线开始,向西为负,向东为正,计量经度。到了太平洋上日期变更线附...
阅读(1046) 评论(0)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(3) 插件管理机制

本篇主要介绍了基于插件的OpenStreetMap瓦片查看器客户端的插件管理。首先,在进程创建时,通过初始化插件,确保每个动态链接库中的插件类可为各个独立的视图实例化一一对应的对象。而后,介绍了如何安排插件绘图、为插件送入UI交互消息,以及帮助插件之间、插件与宿主、插件与外部ActiveX宿主之间进行通信。...
阅读(1099) 评论(0)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(2)架构设计

(相关的代码可以从https://github.com/goldenhawking/mercator.qtviewer.git直接克隆)     本文的前序章节介绍了坐标系的基础知识。在这一章,我们将进行架构设计。架构是一个软件生命体的骨骼,为了实现灵活的功能扩展,首先要引入插件机制。     鉴于 Qt 框架本身提供了良好的面相对象插件接口开发能力,不妨就利用这个机制来实现我们的意图。...
阅读(1332) 评论(0)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(1)-墨卡托投影与坐标控制

本文接着上一篇文章,开始介绍如何把当前需要显示的视窗与OpenStreetMap地图联系起来。引入了几个坐标系,介绍了他们之间的换算关系。...
阅读(2543) 评论(6)

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(0)-引子

OpenStreetMap一般是使用Web服务发布瓦片和矢量数据的。本系列博文主要演示如何使用Qt 搭建一个简单的OpenStreetMap瓦片客户端,实现以下功能: 1、OpenStreetMap 服务器瓦片的自动下载与本地缓存。 2、基于Qt插件的接口开发技术,实现高度可扩展的图层。提供两个图层插件范例。第一个插件演示了使用底层QPainter实现绘图、量测功能;第二个插件演示了使用QGraphicsScene系列模型-视图架构在可变比例尺地图上进行静态、动态标注的技术。 3、基于事件、呼叫的图层...
阅读(2058) 评论(1)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(六) 整合各个模块实现功能

在前面的章节中,介绍了网络传输、任务线程池、数据库和集群四个主要功能模块。到现在为止,这些模块都还只是一种资源,没有产生实际的运行效果。对一个具备真实功能的应用来说,需要有一个整合的过程。整合方法很多,本例里以典型的客户 -客户通信来举例说明。在最上层,有一个本服务器进程的管理者,称作st_client_table,用于封装所有的服务功能。这个类在每个服务器进程中仅有一个实例。它主要的工作有: (1) 提供一个盛放、管理各个客户端节点类(st_clientNodeAppLayer实例)、各个集群服务器...
阅读(3154) 评论(1)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(五) 单层无中心集群

对40万用户规模以内的服务器应用,使用星形的无中心连接是较为简便的实现方式。分布在各个物理服务器上的服务进程共同工作,每个进程承担若干连接。为了实现这个功能,需要解决几个关键问题。跨服务器传输通道、流式解译,以及分布式的客户端哈希(留在下一章)。...
阅读(3825) 评论(3)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(四)数据库的多线程操作

四、数据库的多线程操作 在多线程服务中,数据库是...
阅读(3914) 评论(2)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(三) 流水线结构线程池设计

为了无阻塞地实现并发通信及处理,设计了一种流水线线程池模式。流水线结构保证了各个客户工作在大粒度上并行化,线程池技术保证了处理器资源的最大利用,可以显著提高系统的吞吐能力。另一个附加好处,是可以让VIP获得高级优先级。...
阅读(5377) 评论(5)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(二) 网络传输

二、网络传输模块 模块对应代码命名空间    (namespace ZPNetwork) 模块对应代码存储文件夹    (\ZoomPipeline_FuncSvr\network) 2.1 模块结构 网络传输模块负责管理监听器,并根据各个传输线程目前的负荷,把新申请接入的客户套接字描述符引导到最空闲的传输线程中执行“接受连接(Accept)”操作。该模块由如下几个类组成。...
阅读(8831) 评论(9)

一种基于Qt的可伸缩的全异步C/S架构服务器实现(一) 综述

本文向大家介绍一种基于Qt的伸缩TCP服务实现。该实现针对C/S客户端-服务集群应用需求而搭建。连接监听、数据传输、数据处理均在独立的线程池中进行,根据特定任务不同,可安排负责监听、传输、处理的线程数目,从而在高传输负荷、高计算符合上达成取舍。数据处理采用流水线结构,以避免少量客户的密集计算请求影响其他客户端的处理。本文对应的代码符合LGPL协议,可直接从Github签出。https://github.com/goldenhawking/zpserver...
阅读(11109) 评论(20)

Qt 多线程与数据库操作需要注意的几点问题

Qt的数据库操作自成一派,相对于复杂的 ADO \ODBC\DAO\OLEDB 等传统 C++ 访问数据库的方法,还是很先进的,充分体现了 OO 的理念。对数据库的封装,想法是很有意思的。设计者把进程内的数据库连接作为一种资源,每个连接有一个唯一的名字,可以通过全局的 addDatabase, removeDatabase, cloneDatabase 来增删,想用的时候,直接用全局的 database 来获取。这样的好处,是大大节省了开发者的负担。一个线程创建的数据库对象(如 addDatabase 的返...
阅读(7934) 评论(5)
26条 共2页1 2 下一页 尾页
    个人资料
    • 访问:308742次
    • 积分:4333
    • 等级:
    • 排名:第7359名
    • 原创:87篇
    • 转载:3篇
    • 译文:0篇
    • 评论:327条