大佬教程收集整理的这篇文章主要介绍了编写自己的QT 编辑器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先你需要一个QT_32位版和QT_vs_plugin为了方便下载我都放在了我的百度网盘中
http://pan.baidu.com/s/1o6wsAuA
安装完成后可以在vs中看到QT5插件被安装好了
接下来我们按照平常的步骤创建的新的cocos工程取名为GameEditor,这时候我们在解决方案中右键添加新项目就可以添加一个QT项目取名为QTEditor
如下:
在这里把QTEditor设置为启动项目然后 视图->属性管理器
在QTEditor项目中右键添加现有属性表,将路径调整到cocos2d分别添加cocos2dx.props和cocos2d_headers.props
我是参照这篇教程添加配置http://www.cnblogs.com/marisa/p/4141862.html
这里其实就是原来的启动项目GameEditor中的属性要依次添加到QTEditor中
修改属性如下
按照教程配置完成后就可以在QTEditor中使用COcos了
接下来在QTEditor的构造函数中添加
Cocos的启动代码
如果这时候你成功看到cocos的程序恭喜你环境配置好了,
你需要在GLViewImpl的initWithRect中添加
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
@H_442_46@m_hwnd = glfwGetWin32Window(_mainWindow);
if (hParentWnd){
::SetParent(m_hwnd,hParentWnd);
//改变当前窗口的样式,去掉标题
SetWindowLong(m_hwnd,GWL_STYLE,GetWindowLong(m_hwnd,GWL_STYLE) & ~WS_CAPTION);
//设置位置
::SetWindowPos(m_hwnd,HWND_TOP,rect.origin.x,rect.origin.y,rect.size.width,rect.size.height,SWP_NOCOPYBITS);
}
在AppDelegate中添加
void AppDelegate::setParent(HWND hwnd,RECT rect)
@H_442_46@m_ParentHwnd = hwnd;
@H_442_46@m_ParentRect.left = rect.left;
@H_442_46@m_ParentRect.top = rect.top;
@H_442_46@m_ParentRect.right = rect.right;
@H_442_46@m_ParentRect.bottom = rect.bottom;
}
接下来我们需要用到CCQApplication这个类我们让AppDelegate继承于CCQApplication
并修改构造函数
AppDelegate(int argc,char *argv[]) : cocos2d::CCQApplication(argc,argv) {
@H_442_46@m_ParentHwnd = NULL;
@H_442_46@m_ParentRect.left = 0;
@H_442_46@m_ParentRect.bottom = 640;
@H_442_46@m_ParentRect.right = 960;
@H_442_46@m_ParentRect.top = 0;
};
使用QT设计师打开项目的qteditor.ui文件
我们需要在界面中添加三个DockWidget一个是放cocos的SceneWidget一个查看属性的AttributeWidget一个查看输出的LoWidget
但是你会发现控件无法被拖动,取消属性中的docked
这时候控件就可以按照我们的要求摆放了
将CCQApplication的timeupdate修改如下
void CCQApplication::timerupdate()
Director::geTinstance()->mainLoop();
//CCQGLView::geTinstance()->updateWindowSize();
}
然后将main修改为如下
AppDelegate app(argc,argv);
QTEditor w;
w.show();
RECT t;
QRect qr = ((QWidget*)(w.getUI().SceneWidget->children().at(4)))->rect();
//这里要注意WidgetContent的下标是4
t.left = qr.left();
t.right = qr.right();
t.top = qr.top();
qDebug("%d %d %d %d",qr.left(),qr.right(),qr.bottom(),qr.top());
//一个一个地查找出来的
app.setParent((HWND)((QWidget*)(w.getUI().SceneWidget->children().at(4)))->winId(),t);
return cocos2d::CCQApplication::geTinstance()->run();
这里的w.getUI().SceneWidget->children().at(4)是获取到SceneWidget的子对象SceneWidgetContent这样我们才能让cocos的渲染界面显示在正确的位置
Ok你将看到如下结果
恭喜你基础的编辑器搭建完成了
以上是大佬教程为你收集整理的编写自己的QT 编辑器全部内容,希望文章能够帮你解决编写自己的QT 编辑器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。