Modify Branding of FreeCAD

Modify Branding of FreeCAD

[email protected]

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可执行文件。

Modify Branding of FreeCAD_第1张图片

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

 

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); 

改后效果如下图所示:

Modify Branding of FreeCAD_第2张图片

你可能感兴趣的:(Modify Branding of FreeCAD)