Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了编写自己的QT 编辑器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

首先你需要一个QT_32位版和QT_vs_plugin为了方便下载我都放在了我的百度网盘中

http://pan.baidu.com/s/1o6wsAuA

安装完成后可以在vs中看到QT5插件被安装好了


接下来我们按照平常的步骤创建的新的cocos工程取名为GameEditor,这时候我们在解决方案中右键添加新项目就可以添加一个QT项目取名为QTEditor

如下:


在这里把QTEditor设置为启动项目然后 视图->属性管理器


在QTEditor项目中右键添加现有属性表,将路径调整到cocos2d分别添加cocos2dx.propscocos2d_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();

t.bottom = qr.bottom();

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,请注明来意。