- 博客(257)
- 资源 (5)
- 收藏
- 关注
原创 Qt控件美化的工具
Editor for qt stylesheet (qss). Real-time preview, and user can define varibles in qss.该软件是使用PyQt5实现的。支持切换不同的系统 theme,如 xp 主题,vista 主题等(不同 theme 下 qss 效果会略有差异)1、“Qt Style Sheets Reference”查看Qt样式表的用法。2、“Qt Style Sheets Examples” 查看Qt样式表的实例。Qss代码高亮,代码折叠。
2025-02-22 16:21:48
349
原创 QMetaObject::invokeMethod和QObject的信号槽机制比较
信号槽机制是 Qt 框架中的一种通信机制,用于在对象之间传递消息。信号槽机制的核心思想是将对象的方法(槽)与事件(信号)关联起来,当信号被触发时,对应的槽函数会被自动调用。是一个静态函数,用于在运行时动态调用对象的方法。它利用 Qt 的元对象系统(Meta-Object System)来实现方法的调用。动态调用:两者都可以在运行时动态调用对象的方法。线程安全:两者都支持跨线程调用,可以通过实现线程间的同步。
2024-11-13 15:29:17
564
1
原创 QObject中QThreadData里面的postEventList和QObjectPrivate里面的postedEvents
public:// 其他成员变量和方法public:// 其他成员变量和方法:是一个全局的事件队列,用于暂存所有即将发送到该线程中对象的事件。它是线程安全的,允许多个线程向同一个线程发送事件。:是一个局部的事件队列,用于暂存所有即将发送到该QObject实例的事件。它确保每个对象都能独立处理自己的事件。理解这两个成员变量及其工作流程,有助于更好地掌握 Qt 的事件处理机制,特别是在多线程环境中的事件传递和处理。
2024-11-13 14:49:00
1142
原创 qt中属性的各枚举值含义
提供了一系列标志位,用于描述属性的不同特性。通过这些标志位,开发者可以更精确地控制属性的行为,从而更好地满足应用的需求。这些标志位在设计时、运行时和脚本环境中都有重要的作用。
2024-11-11 15:25:13
898
原创 标准C++中的cast
底层类型转换,不考虑类型关系,可能导致未定义行为。const_cast:用于添加或移除const或volatile属性。:通用类型转换,适用于基本类型、继承关系中的转换等。:用于多态类型之间的安全转换,特别适用于涉及继承层次结构的情况。选择合适的类型转换操作符可以提高代码的安全性和可维护性。
2024-11-11 08:34:58
392
原创 Qt 中的智能指针之QSharedPointer
Qt 中的智能指针上一篇博客中介绍了 C++11 标准中的提供的智能指针。在 Qt 中也提供了类似的替代功能,并且比 C++11 标准中提供的功能还要强大,所以如果我们使用 Qt 作为基础库,那么就没有必要使用C++11 的智能指针。Qt 的智能指针包括:QSharedPointerQScopedPointerQScopedArrayPointerQWeakPointerQPoi...
2019-07-19 17:37:50
5506
转载 qt常见问题
1所有能够接受和发送消息的class必须存在有消息循环的线程环境中。2对象的消息处理默认环境是是存在于创建这个对象的线程环境中的。对于第二点如何理解比如subthread::subthread(){connect(this,sigA,this,slotA);}subthread::run(){printf tidexec();}void slot...
2019-07-19 15:42:32
364
转载 gcc常见编译参数介绍
1) 常见编译参数介绍gcc可以说是个伟大的编译器集合。支持c, c++, object-c, java, fortran, pascal, ada等一大堆语言,同时支持几乎所有32位以上的cpu和部分16位、8位cpu。因此几乎所有开源操作系统、商业unix操作系统、嵌入式开发都使用gcc做编译器。风河也使用gcc来编译vxworks的代码。下面介绍些最常用的编译参数(仅
2015-05-14 14:37:41
1605
转载 Linux中socket 错误编码表 errno
最近在网络编程使用的过程中,发现errno会经常使用。因此决定在此做个留用,以备以后使用。。。 虽然errno是非线程安全的,但是可以通过几种机制保证其安全。。 最近在使用的过程中获得了errno,程序无法执行,也不知道如何解决问题。因此,理解每一个返回的errno整数值的含义是很重要的。。这个我们可以通过strerror函数来实现。。strerror(返回整数er
2014-03-11 10:42:51
1267
转载 cocos2d-x 适应不同分辨率 .
相同平台不同分辨率CCFileUtils::setSearchResolutionsOrder()支持文件分布策略,你可以像如下一样查询设置路径std::vector resDirOrders; resDirOrders.push_back("ipadhd"); resDirOrders.push_back("ipad"); CCFileUtils::shared
2013-10-28 16:31:56
784
转载 cocos2dx动画Animation介绍
一、帧动画你可以通过一系列图片文件,像如下这样,创建一个动画:[cpp] CCAnimation *animation = CCAnimation::create(); //从本地文件系统中加载图片文件到CCSpriteFrame中区,然后添加到CCAnimation中 for (int i = 1; i { char szImageFileName[1
2013-10-28 10:40:49
1005
转载 cocos2dx动画Animation介绍
一、帧动画你可以通过一系列图片文件,像如下这样,创建一个动画:[cpp] CCAnimation *animation = CCAnimation::create(); //从本地文件系统中加载图片文件到CCSpriteFrame中区,然后添加到CCAnimation中 for (int i = 1; i { char szImageFileName[1
2013-10-28 10:38:08
10818
转载 cocos2d-x场景切换时内存过高导致crash 解决方法
最近在做一个cocos2d-x的项目时,遇到一个问题,就是在pc上运行都是ok的,可是在ipad和andriod上面,在场景切换时时常会挂掉,用苹果自带的Instruments工具检测时,发现在场景正常运行时,内存大概保持在三四十兆,但是在场景切换时,一瞬间会达到七八十兆,遇到一些素材比较多或者层比较多的场景,则会达到一百多兆。大家知道在ipad1上面,内存最大是128M,那么这个程序如果在ipa
2013-10-16 17:05:15
748
转载 Cocos2d-x 程序是如何开始运行与结束的
问题的由来怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个 Scene HelloWorldScene,然后在 HelloWorldScene 里面写相关逻辑代码,添加我们的层、精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如
2013-09-29 12:05:58
1213
转载 Cocos2d-x 内存管理浅说
使用过 Cocos2d-x 都知道,其中有一套自己实现的内存管理机制,不同于一般 C++ 的编写常规,而在使用前,了解其原理是有必要的,网上已经有很多对内部实现详细解说的文章。而对于使用者而言,并不需要对其内部有很深的了解,注重其“机制”,而非内部实现,在这里只是简单的聊一聊它的管理方式以及使用,固为浅说。无用对象 与 管理对象Cocos2d-x 将会在下一帧自动清理无用的对象,什么是无用
2013-09-27 16:20:15
587
转载 深入理解 Cocos2d-x 内存管理
如果 Cocos2d-x 内存管理浅说 做为初步认识,而 Cocos2d-x 内存管理的一种实现做为进阶使用,那么本文将详细的分析一下 Cocos2d-x 的内存管理的设计实现和原理。知其然,知其所以然 ~或者说:嗯,它这么做,一定是有原因的,体会设计者的用意,感同身受,如果是你,将会如何设计!~~我觉得 最好的学习方式是以自己的语言组织,说与别人听 ~ 这样对自己:更容易发现平时容易
2013-09-27 16:07:46
666
转载 cocos2d-x 编译 Anroid版本遇到的问题以及解决办法
这几天都在苦逼的编译程序Android版本,到昨天晚上终于能编译通过且正常运行,现在把这几天遇到的问题和大家分享一下:一 无法替换cocos2d-x本身自带的libxml2 为什么需要自己编译libxml2: 由于我以前解析xml使用的是Tree的方式,在Win32以及GMO上能够正常运行,但是在ndk下编译的时候遇到问题了,原来cocos2d-x使用的libx
2013-09-14 11:19:38
672
转载 Cocos2d-X内存管理研究
半夜没事干,研究内核,作为我cocos2d-x的第一篇教程.cocos2dx是一个树形结构的引擎,具体结构我暂时不分析,这里只讲内存管理.网上的分析都是说个纯理论,我深入代码内核,给大家详细讲解.最开始我们寻找一下这棵树的最大的根节点CCZone.class CC_DLL CCZone{public: CCZone(CCObject *pObject = NULL);
2013-09-13 17:38:37
953
转载 cococs2d场景的分析
关于场景:使用CCDirector replaceScene 替换场景,每个节点会调用CCNode自带的三个方法:OnEnter OnEnterTransitionDidFinish onExit这三个方法在他们的super避免触摸输入问题和内存泄露:[cpp] view plaincopyprint?void
2013-09-13 17:30:12
672
转载 cocos2d-x场景效果切换
Cocos2d-x提供了很多场景间切换的效果1.使用方法:ccTime t = 1.2; CCScene * pScene = CCScene::node(); CCLayer *pLayer = new book_page1(); pLayer->autorelease(); pScene->addChild(pLayer); CCTransiti
2013-09-13 15:52:25
673
转载 cocos2d-x场景切换时内存过高导致crash 解决方法
最近在做一个cocos2d-x的项目时,遇到一个问题,就是在pc上运行都是ok的,可是在ipad和andriod上面,在场景切换时时常会挂掉,用苹果自带的Instruments工具检测时,发现在场景正常运行时,内存大概保持在三四十兆,但是在场景切换时,一瞬间会达到七八十兆,遇到一些素材比较多或者层比较多的场景,则会达到一百多兆。大家知道在ipad1上面,内存最大是128M,那么这个程序如果在ipa
2013-09-13 15:43:58
628
转载 cocos2d-x屏幕自适应解决办法
最近在写一个项目,要求pc,ipad,andriod平台上都可以运行,所以选择用cocos2d-x来开发。我们的资源大小是1024*768的,在pc上和苹果上都是没有问题的,可是到了andriod上,问题就来了。andriod上有有各种各样的分辨率,那么程序在所有的分辨率上都可以正常运行显示呢?针对这个问题,我想了好几种方法:(1)弄多套资源因为这个项目里面有很多动画资源,如果要弄多套资源
2013-09-13 15:39:18
1019
转载 cocos2d-x坐标系
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了。所以玩cocos2d,一上来就先把各种与坐标有关的东西搞清楚。 基本的两个坐标系:屏幕坐标系和GL坐标系。屏幕坐标系x轴朝右,y轴朝下。默认原点在左上角。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。 在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函
2013-09-11 09:28:21
559
转载 Cocos2d-x学习(二十四):vs2010使用vld检测内存泄露
[+]安装简介配置1配置include2配置第三方库a先配置第三库所在路径b配置第三方库使用cocos2d-x不仅可以做到跨平台运行,还可以做到跨平台编译调试(当然只是编译对应平台下的应用了)。众所周知,cocos2d-x是用c++编写的,而c++中最让人头疼的莫过于指针和内存泄露的问题,在windows下,cocos2d-x支持在vs下开发,这样,平时
2013-09-04 11:06:29
1009
转载 Cocos2d-x 2.0 TestCpp之场景切换动画深入分析
大家好,今天我们来学习一下Cocos2d-x中的场景切换效果,我们在玩一些2D的RPG游戏时,常常会遇到场景的转换,这时候当前场景的画面会以百叶窗翻页或者是缩放消失的动画效果切换到新的场景。Cocos2d-x提供了大量可以直接使用的场景切换效果,我们本节将深入分析一下这些效果的实现原理。 我们知道,Cocos2d-x提供了大量的精灵动画效果,红孩儿用了“三板斧”才将这些精
2013-09-03 19:13:49
1403
转载 cocos2d anchor point 锚点解析
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position 也就是图片的中心点 另外一个是anchor point。只要我们搞清楚他们的关系,自然就迎刃而解。他们的关系是这样的: actualPosition.x = positi
2013-09-03 16:36:46
871
转载 【cocos2d-x官方文档】导演,场景,层,以及精灵的介绍
Director Scene Layer and Sprite导演,场景,层,以及精灵的介绍Scenes场景场景(对应的是CCScene类,由CCScene类实现器功能)更多是app中一个独立的工作流程。一些人可能会称其为“屏幕”或者“舞台”。你的游戏可以包含多个场景,但是在给定的同一时间段中,只能有一个场景是活跃有效的。 例如,游戏中可以有以下几个场景:简介场景,菜单场景
2013-09-03 15:47:58
799
转载 [boost]用BOOST_FOREACH简化遍历操作
成天写迭代器,写的手指都疼,BOOST_FOREACH可以方便的遍历STL容器.只需要头文件:#include 然后遍历容器vector/list/set/deque/stack/queue都是类似的:vectorint32_t> _v;BOOST_FOREACH(int32_t value,_v){//这里就可以访问value}同时元素还支持引用,co
2013-08-28 16:06:03
1629
转载 boost::ref学习
在C++的算法和函数之间,以类对象作为参数的情况很非常常见的问题,一般情况下传值语义是可行的,但也有很多特殊情况,作为参数的函数对象拷贝代价过高(具有复杂的内部状态),或者不希望拷贝对象(内部状态不应该被改变),甚至拷贝是不可行的(noncopyable、单件)。 boost.ref应用代理模式,引入对象引用的包装器概念解决这个问题。它位于名字空间boost,为了使用ref组件,需要包含
2013-08-23 14:10:44
696
转载 BOOST_TYPEOF和BOOST_AUTO
头文件里定义了两个宏:BOOST_TYPEOF和BOOST_AUTO,分别用于仿真C++新标准的typeof和auto关键字,可以在编译期自动推导表达式的类型。它们不仅能够推导C++语言内建的int、double、数组、函数指针等等类型,也支持标准库中的容器类型,使程序员再也不需要写复杂的类型定义就能够轻松声明变量。这两个宏完全模仿了typeof和auto关键字的用法,除了因为宏的语法
2013-08-23 14:03:56
624
转载 不生成core文件原因
1)没有足够的空间,文件系统写的核心文件。2) The ulimit for core is set to 0 in the account where the program is running. 2)为核心的ulimit设置账户中为0该程序正在运行。This disables core file creation.这将禁用的核心文件的创建。3) The process sets
2013-08-21 09:40:59
1507
转载 关于SIGPIPE信号
我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试. 但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个
2013-08-19 20:08:15
581
转载 Linux:Ldd命令介绍及使用方法
1、首先ldd不是一个可执行程序,而只是一个shell脚本 2、ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它
2013-08-14 10:06:23
1006
转载 linux中的PATH环境变量
关于PATH的作用:PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……
2013-08-14 10:05:47
850
转载 多核CPU开几个线程最好
影响最佳线程数的主要因素:1、IO2、CPU根据公式:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量一般来说是IO和CPU。IO开销较多的应用其CPU线程等待时间会比较长,所以线程数量可以开的多一些,相反则线程数量要少一些,其实有两种极端,纯IO的应用,比如proxy,则线程数量可以开到非常大(实在太大了则需要考虑线程切换的开销),这种应
2013-08-13 09:27:07
5559
1
转载 Boost库编译后命名方式
from http://www.cnblogs.com/dementia/archive/2009/04/10/1433217.htmlBoost官网的《Geting Started On Windows》(http://www.boost.org/doc/libs/1_38_0/more/getting_started/windows.html)提到了Boost库的命名,摘录如下:以 l
2013-08-07 16:20:26
638
转载 Android 编译boost动态库
有个Android项目上需要使用到boost标准c++库,Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一,所以想将其移植到android系统上进行编译。直接从网上下载 boost1.52版本,然后写makefile。。。进行编译,,碰到无数的编译错误。求助于google网络,终于发现一个好东东:一个通过NDK编译boost代码的git项目:
2013-05-08 11:12:55
769
转载 ISC DHCP 分配IP流程分析
本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。作者:gfree.wind@gmail.com博客:linuxfocus.blog.chinaunix.net 概述在Linux的世界中,ISC DHCP被广泛应用。因为ISC DHCP的版权
2013-01-10 15:04:40
2014
转载 【原创】高性能服务器本质论
作者:CppExplore http://www.cppblog.com/CppExplore/和http://blog.youkuaiyun.com/cppexplore同步发布一 服务器分类从软件性能角度,高性能服务器分:cpu密集型服务器/IO密集型服务器(1)CPU密集型:该类服务器没有对io的访问/没有同步点,性能瓶颈在于对cpu的充分利用。典型的如转发服务器/代理服务器/协议转换
2012-11-30 11:41:54
777
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人