eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

Modify Branding of FreeCAD

Posted on 2016-05-09 22:18 eryar 阅读(1447) 评论(2)  编辑 收藏 引用

Modify Branding of FreeCAD

eryar@163.com

This article describes the Branding of FreeCAD. Branding means to start your own application based on FreeCAD. That can be only your own executable or splash screen till a complete reworked program. Based on the flexible architecture of FreeCAD it’s easy to use it as base for your own special purpose program.

本文主要描述如何修改FreeCAD的Branding,从而使自己能基于FreeCAD灵活的架构快速开发出自己的应用程序。通过修改FreeCAD的Branding甚至启动画面,从而使程序看上去更像是自己开发的。

Branding信息主要在文件MainCmd.cpp和MainGrui.cpp中,这两个工程生成了FreeCAD可执行文件。

wps_clip_image-13903

可以通过修改相关字符串,可以给可执行程序一个自己的名字,或者版本信息等的自定义,还有启动画面的自定义。

 

int main( int argc, char ** argv )
 {
   
// Name and Version of the Application
   App::Application::Config()["ExeName"= "FooApp";
   App::Application::Config()[
"ExeVersion"= "0.7";
 
   
// set the banner (for loging and console)
   App::Application::Config()["CopyrightInfo"= sBanner;
   App::Application::Config()[
"AppIcon"= "FooAppIcon";
   App::Application::Config()[
"SplashScreen"= "FooAppSplasher";
   App::Application::Config()[
"StartWorkbench"= "Part design";
   App::Application::Config()[
"HiddenDockWindow"= "Property editor";
   App::Application::Config()[
"SplashAlignment" ] = "Bottom|Left";
   App::Application::Config()[
"SplashTextColor" ] = "#000000"// black
 
   
// Inits the Application 
   App::Application::Config()["RunMode"= "Gui";
   App::Application::init(argc,argv);
 
   Gui::BitmapFactory().addXPM(
"FooAppSplasher", ( const char** ) splash_screen);
 
   Gui::Application::initApplication();
   Gui::Application::runApplication();
   App::Application::destruct();
 
   
return 0;
 }

图片数据通过使用Qt的资源系统来编译到FreeCAD中去的。所以你需要写一个.qrc文件,将资源加到这个类似XML的qrc文件中。在程序中使用资源,需要在main()中添加下面一行:

Q_INIT_RESOURCE(FooApp); 

如果你有XPM格式的图片,则可以直接使用:

Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen); 

改后效果如下图所示:

wps_clip_image-1054

Feedback

# re: Modify Branding of FreeCAD  回复  更多评论   

2016-08-05 13:46 by 啦啦啦
请教一下, App::Application::Config()["ExeName"] = "FreeCAD中文名";中文字符,会乱码,这个要怎么解决了?

# re: Modify Branding of FreeCAD  回复  更多评论   

2016-08-05 19:18 by eryar
@啦啦啦
static std::map<std::string,std::string> &Config(void){return mConfig;}
这个用的是std::string,涉及到编码问题了。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理