1.自定义信号和槽,参数要const &
从效果上杜绝了在被调用函数内部对传入的参数进行人为修改的情况
既使用了引用,又使用const限制了对参数的修改。
2.创建item的时候要为其指定场景;
3.剪贴板不能传递指针
例如:复制粘贴想传递item本身或者其指针,是不可以的。
4.?使用信号与槽 VS 直接修改成员变量
5.?release下运行正常,release下中止异常
6.对基类的属性进行修改时,尤其是涉及到item的x、y、w、h,对其set函数可以直接再调用系统函数,例:
void cItem::setItemX(int newX)
{
_x = newX;
setX(_x);
}
void cItem::setItemY(int newY)
{
_y = newY;
setY(_y );
}
7 for VS foreach
数组:for = foreach
链表:for < foreach
QElapsedTimer mstimer;
mstimer.start();
float time = (double)mstimer.nsecsElapsed()/(double)1000000;
QVariantMap classDemo::getMap(const QString &className)
{
QElapsedTimer mstimer;
mstimer.start();
QVariantMap map;
foreach(auto var,allList()){
auto cMap = var.toMap();
if(cMap.value("className").toString() == className){
map = cMap.value("value").toMap();
break;
}
}
float time = (double)mstimer.nsecsElapsed()/(double)1000000;
SCDebug<<"foreach speed:"<<time;
return map;
}
8 命名空间
自定义命名空间除了添加namespace 名字 {},还需要检查ui界面提升的类是否也添加了命名空间,添加了的话需要在类名前加 命名空间名::
9 qt添加splitter
需要打破父窗口布局,再多选创建splitter