- 博客(41)
- 资源 (12)
- 收藏
- 关注
转载 ACE框架简介以及一个基于ACE的C/S服务程序实例
转载自:http://blog.csdn.net/suxinpingtao51/article/details/11800183前段时间参与一个C/S结构的系统的开发,使用C++,其中server端的系统要实现Linux和windows系统的跨平台。因为系统的结构和业务逻辑都不太复杂,所以开始就决定不使用类似ACE或Boost之类的库,而是自己实现。结果在实现过程中
2017-07-12 17:17:46
663
原创 QtAV编译及使用
最近使用QTAV加载视频,网上相关的资料不是很多,好容易折腾出来,一定要做好记录。。。。主要参考文章: https://github.com/wang-bin/QtAV/wiki/Build-QtAV 这个就是QtAV的原作者写的,其实里面关于各个平台编译注意的事项已经写的很清楚了,只不过都是英文,我一开始也没看,最后没搞定,又回头来看,其实也很简单,看的很明白,后悔没一开始定下心来去看,看来我
2017-07-11 16:17:36
10322
3
原创 QCalendarWidget 样式设置
修改日历的样式,使用QSS设置,做个记录图是借用的网友的,如图显示:需要修改的地方有大致这么5处,我们一个一个来说:1. 左右两边的箭头这个我试了qss还是没成功,因为这两个箭头跟我贴的图就重叠了,最后我就在代码中实现了,效果是一样的,如果有人知道在qss中实现,也麻烦告诉我一声代码:QToolButton *prevBtn = calendar->findChild(
2017-06-23 10:14:22
15112
6
转载 网络编程(IOCP)
本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本
2017-05-24 13:13:03
902
原创 QT渐变色
关于Qt的渐变色的设置: QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1)); //控制渐变色的走向 gradient.setColorAt(0.0, 0x57ADBC); //渐变的颜色1 gradient.setColorAt(1.0, 0x2
2017-01-22 10:04:51
1139
转载 Qt创建线程的几种方法
一、继承QThread继承QThread,这应该是最常用的方法了。我们可以通过重写虚函数void QThread::run ()实现我们自己想做的操作,实现新建线程的目的。前面已经介绍了Qthread,这里就不重复了。这种方法,我们每一次要新建一个线程都需要继承Qthread,实现一个新的类,有点不太方便。但是相对于Qrunnable,这种方法的好处就是我们可以直接调用对象的sta
2017-01-04 10:39:45
11050
原创 osg中模型零点的调整方法
osg中加载一个模型,模型自身的零点已经在3DMAX或者MAYA中设置好了,在模型自身,也有可能不在自身(距离一定位置的一个点),一般加载一个地形,零点基本都在模型的左下角,加入到osg场景中,也就是这个点将和场景的零点重合,注意:OSG是左手坐标系(向右是X正方向,屏幕向里是Y正方向,向上是Z正方向)。但是,如果是OSG自绘的模型呢,它的零点在什么地方,比如:osg::ShapeDrawable(
2016-12-29 14:51:16
2173
原创 osg添加骨骼模型
1.首先是环境,这个不是本文的重点,前提是你环境已经配置好 2.在cmake生成的工程中,有一个FBX的插件,编译此插件会得到一 个DLL(osgdb_fbxd.dll) 3.将上面编译的DLL放置在当前工程的输出路径下就可以了接下来是使用FBX加载模型,也可以参考OSG工程中的例子(osganimationviewer),不过例子中写的不是很明了,是win32工程,而且需要在工
2016-12-29 14:28:27
2048
1
转载 OCX打包cab及数字签名过程
转载:http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html关注:https://my.oschina.net/SmileWolf/blog/17206,关于OCX的开发过程及安全问题,以及打包签名OCX打包CAB并签名过程一、打包cab制作cab文件时需要将所有
2016-10-21 10:14:47
1107
原创 QTreeWidget
1.树结构的实现 关于这点网上例子很多,也很简单,简单说一下:这个也是自己在网上随便找的一个TreeWidget::TreeWidget() { tree = new QTreeWidget(this); tree->setColumnCount(2); QStringList headers; headers <<
2016-09-22 10:46:38
747
转载 C++访问ORACLE数据库
首先,参考资料是官方文档:https://docs.oracle.com/database/121/LNCPP/toc.htmOCCI要访问ORACLE数据库,需要几部分文件:include头文件,lib库文件,dll文件,其实基本步骤是怎么找到这些文件。获取这些文件,需要在oracle官网下载几个包:1:Instant Client Package - Basic: Al
2016-08-19 13:33:49
1868
原创 QTableWidget使用注意要点总结
关于tablewidget一些总结,常用的使用方法网上一大堆,都可以搜到,比如: /*---表头设置 begin---*/ //初始化表头内容 ui->tableWidget->setHorizontalHeaderLabels(m_lstHeaderData); //设置表头不可见 ui->tableWidget->verticalHeader()->setV
2016-08-04 16:49:42
9005
4
原创 QTableWidget
QTableWidget 中添加按钮控件,按钮对事件的响应处理,即在按钮的槽函数中得到tableWidgetde 行和列,处理有两种方法, 1. 使用MVC架构的委托来处理,很强大,想要什么都可以实现,不过我没有使用,只要是使用另一种方式也可以很简单实现我的需求 2. 在槽函数中通过获取信号的发送者指针,获取坐标,再获取行和列,下面附上代码void WarningInfo::onBtnClic
2016-08-02 14:58:36
574
原创 QSQLITE
QSQLITE使用方法QSqlDatabase类提供一个通过数据库连接访问数据库的接口。一个QSqlDatabase的实例代表了一个数据库连接用静态方法 addDatabase() 创建一个数据库连接(也就是QSqlDatabase的实例),指定驱动或者驱动种类(也就是你要访问什么类型数据库)以及连接名称。一个连接通过它的连接名称识别,注意,不是它连接的数据库名称。你可以有多个连接连到同一个数据库。
2016-07-14 12:06:29
4047
原创 ChartDirector中文乱码
ChartDirector中文乱码问题刚开始一直以为是字符编码的问题,最后统一都转成UTF-8还是乱码,刚开始以为设置QTextCodec ::setCodecForLocale(QTextCodec :: codecForName( "UTF-8" ) );这个就可以解决,搞了半天,还是没用,最后查资料得以解决,设置字体就可以1.饼状图有设置字体的函数setLabelStyle,可以设置“宋体”什
2016-07-13 15:04:00
2025
原创 窗口和视口的关系
窗口和视口的理解之前在VC中对窗口和视口的概念没有理解清楚,比较模糊,今天研究Qt又碰到这个问题,于是花了好长时间验证和查阅资料,最后总算是搞清楚了,再次整理,希望可以帮到别人。。个人理解:窗口相当于一块画板,在上面划分好坐标系就可以开始作画了,视口就相当于一个窗口,通过这个窗口去观察你的画板,当然这个视口需要设置大小,以及从哪个位置去观看画板,距离画板多远,可以看到图形变大变小。。。我觉得这些就是
2016-06-29 17:18:20
7628
原创 Qt 基本绘图技术
Qt 基本绘图关于Qt基本绘图简单介绍一下,也算是给自己加深印象,mark一下 首先要重写基类的paintEvent(QPaintEvent*) 事件,在paintEvent函数中就可以开始自己的绘图,如果需要对鼠标事件处理就重写相应的鼠标事件函数如:mouseMoveEvent(QMouseMoveEvent*),好了,废话不多说,这里只是简单的展示绘图,不涉及鼠标 下面是自己的一个示例代码,
2016-06-29 11:33:47
1215
原创 Qt 多线程
这两天在研究Qt的多线程,之前一直被搞的有点迷糊,一会儿是子线程执行,一会儿是主线程执行,刚开始以为子线程只能执行run函数中的带代码,现在发现并不然。。自己也是查了大量资料才有所收货的,有一篇文章写的还是不错的,http://blog.csdn.net/lutx/article/details/7353957,大家可以看看,我也是借鉴了这篇博客。1. 首先觉得自己忽略了一个问题,
2016-06-28 15:18:54
617
原创 Qt tcp socket编程
《学习笔记》QTcpSever用于监听,QTcpSocket用于连接客户端和服务端。客户端连接服务端很简单,connectToHost(QHostAddress("IP", 666);,填写IP和端口就可以,连接成功后,再关联信号readyRead()就可以读取服务端发送过来的数据了服务端首先监听某个端口,看是否有连接到该端口的机器,然后获取客户端连接的socket有两种方法:1:
2016-06-24 16:20:16
5757
1
原创 QT-IPC-内存共享
最近开始学习QT,刚实践了下qt的内存共享机制,就MARK下,获取也可以帮助有需要的朋友感觉内存共享也挺简单的,自己对共享内存做了简单封装,只需两个接口即可实现。。基本步骤:写数据: //1.设置共享内存的标志名key(存取数据的key必须相同) //2.分离共享内存和主进程 //3.创建共享内存 //4.共享内存加锁 //5.将进
2016-06-08 11:15:57
817
转载 VC 绘图映射模式之间的转换关系示意
在Windows应用程序中,只要进行绘图,就要使用GDI坐标系统。Windows提供了几种映射方式,每一种映射都对应着一种坐标系。例如,绘制图形时,必须给出图形各个点在客户区的位置,其位置用x 和y两个坐标表示,x表示横坐标,y表示纵坐标。在所有的GDI绘制函数中,这些坐标使用的是一种“逻辑单位”。当GDI函数将结果输出送到某个物理设备上时,Windows将逻辑坐标转换成设备坐标(如屏幕或打印机的
2016-06-01 17:33:41
3939
转载 VC 窗口焦点问题以及回车键,tab键的相关
转载自:http://blog.csdn.net/chenyujing1234/article/details/8958322看到这篇文章写得不错,就转了下,以备后用,标明了出处。建立一个基于对话框的应用程序,可以看到在CXxxApp的InitInstance()函数中: CDlgaDlg dlg; m_pMainWnd = &dlg
2016-05-31 11:51:06
4503
转载 修改窗口属性
说明:以下函数对于POPUP窗口有效,对于子窗口好像不行。 //最小化按钮有效::SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_STYLE) | WS_MINIMIZEBOX ); ::SetWindowPos(m_hWnd,NULL,0,0,0,0,SWP_NOMOVE|
2016-03-17 16:08:15
543
原创 安装VS2008失败原因MARK
之前安装VS一直都没出过什么问题,今天在别人电脑上安装VS2008,一直失败,修复卸载好几次都不行,百度了一下说什么跟office.h-cn文件有替换下,搞了下,还是不行,看来是我的错误跟别人的不一样,我的错误提示是“远程调试器安装失败”,不过道理是相通的,按照他们的方式,我也在安装目录下找“远程调试器”的安装文件,找到后又单独的exe安装文件,这时候点击只安装“远程调试器”,结果有了错误提示er
2016-01-12 21:05:26
574
原创 文章标题
关于使用橡皮筋技术绘图闪烁的问题之前在项目中用到,后来解决了,MARK一下 总体来说就是橡皮筋绘图和双缓冲绘图结合使用mousemove中代码:CRect rc;GetClientRect(rc);CDC memDC;memDC.CreateCompatibleDC(NULL);CBitmap memBitMap;memBitMap.CreateCompatibleBitmap(&dc, r
2016-01-05 13:13:12
403
转载 SetCapture()和ReleaseCapture()
查MSND,对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。”一开始我看这个解释误认为了只要在属于窗口里的一个线程调用了SetCapture(hWnd)把hWnd设为
2016-01-05 13:05:31
415
转载 boost常用库案例
原文地址:http://cjbskysea.blogbus.com/logs/61808617.html1.boost::anyboost::any是一种通用的数据类型,可以将各种类型包装后统一放入容器内,最重要的它是类型安全的。有点象COM里面的variant。使用方法:any::type() 返回包装的类型any_cast可用于any到其他类型的
2016-01-04 14:22:47
424
转载 C++界面库
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。 一. 开源C++界面库 1.RingSdk
2016-01-04 13:51:13
1202
转载 头文件相互包含的问题解决之
所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 一般情况下,C/C++要求所有的类型必须在使用前被定义,但是在一些特殊情况下,这种要求无法满足,例如,在类CMyView中保留了一个非模式对话框对象指针,该对象用于显示/修改一些信息。为了实现对话框"应用"按钮,把对话框做的修改立刻更新到view界面上,为此,需要在对话框类中需要保存view类的指针,这样
2015-12-29 18:36:06
2087
转载 GetWindowRect与GetClientRect 的区别
GetWindowRect 函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect); 在Visual Studio 2005中,函数原型为void GetWindowRect(LPRECT lpRect) const; 是属于CWnd类的函
2015-09-21 17:00:59
352
原创 tiny xml
从官网下载tinyxml源代码,加载其头文件tinyxml.h和库文件tinyxml.libxml内容如下<xml version="1.0" standalone=no> <!-- Our to do list data --> <ToDo> <Item priority="1"> Go to the <bold>
2015-09-16 14:23:02
548
原创 C++11(std::thread)
本节将详细介绍 std::thread 的用法。std::thread 在 头文件中声明,因此使用 std::thread 需包含 头文件。 头文件摘要 头文件声明了 std::thread 线程类及 std::swap (交换两个线程对象)辅助函数。另外命名空间 std::this_thread 也声明在 头文件中。下面是 C++11 标准所定义的 头文件摘要:参见 N3242=11-00
2015-09-01 17:07:36
771
原创 关于C++中的显示调用explicit
关于C++中的显示调用explicitC++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。 这样看起来好象很
2015-09-01 10:33:44
642
原创 关于宽字节和多字节之间的转换
关于宽字节和多字节之间的转换之前也遇到好多次乱码问题,但都没有整理过,每次都是重新翻阅资料,现在做个整理归纳,方便自己或者其他朋友以后查阅浏览多余废话就不说了,直接贴代码char* ConvertGBKToUtf8(const char *pszGBK){ int len = MultiByteToWideChar(CP_ACP, 0, pszGBK, -1, NULL, 0);
2015-09-01 10:23:48
596
原创 GetTickCount
GetTickCountGetTickcount函数:它返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法执行的时间,其函数原型是DWORD GetTickCount(void),返回值以32位的双字类型DWORD存储,因此可以存储的最大值是(2^32-1) ms约为49.71天,因此若系统运行时间超过49.71天时,这个数就会归0,MSDN中也明确的提到了:”Retrieves the
2015-09-01 10:18:47
1290
原创 STL—list
之前在程序里面使用了list容器,其中用到了erase()函数,之前一直没出现问题,这两天突然莫名奇妙。花了点时间,搞清楚了erase()函数的机理。 常用的删除容器中元素的方法是如下(方法1): list List; list::iterator iter; for( iter = List.begin(); iter != List.e
2015-09-01 09:57:50
333
转载 3K工资与8K工资的差距
3K工资与8K工资的差距,不仅仅是钱!曾有个月薪三千的女孩子,编的稿件漏洞百出,老板怒拍桌子,她却回了句:“一个月三千块工资,你还想怎么样!”琢磨她这话挺有意思,就像我们买了件便宜货,用不了两天就坏了,于是宽慰自己:就花那么点钱买的东西,你还想怎么样?当然,她的潜台词是,你给我八千,我自然就做得好好的。 但问题是,老板付薪水也是一分钱一分货,你必须在拿三千工资时,先体现出八千的价值,老板才愿意买单
2015-08-05 13:59:43
1500
原创 关于类中线程函数为什么是静态函数简单说明
C++类员函数其实默认参数包含this指针,这样成员函数才知道应该对哪个实例作用,线程函数必须接受void指针作参数,所以导致矛盾解,为了解决矛盾,我们可以使用static函数,它独立于实例,参数中不会有this指针,所以可以用于打开线程
2015-04-03 14:32:31
864
原创 静态函数与虚函数关系
逻辑角度说静态员函数绑定class旦定义应class改变;虚函数意义恰恰运行态选择调用哪class同名函数本质矛盾同使用实现角度说静态员函数本质与C函数致应内存固定址;虚函数应虚表索引值运行通索引值进行间接寻址两者兼容所论逻辑合理性实现行性说虚函数都必须非静态员函数
2015-04-03 14:24:34
681
原创 多线程相关信息
1、进程在程序中拥有独立的内存单元,多线程共享内存,大大提高了程序的运行效率2、进程个线程都是程序运行的独立单元,系统利用该基本单元实现对应用的并发性 3、线程的划分尺度比进程小,使得程序中多线程的并发性高4、多线程的意义在于一个应用程序中多个线程同时运行,但系统并没有将多个线程看成多个独立的应用,来实现类似于进程的调度和管理以及资源分配,是进程和线程的重要区别“绝对不要调
2015-04-03 14:24:15
517
QtWebEngineProcess.exe
2017-05-10
osg通过ffmpeg插件加载视频需要的全部DLL以及示例
2017-01-06
插件osgexp1.4版本-64位.exe
2016-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人