Modify Branding of FreeCAD

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

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

 

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

改后效果如下图所示:

时间: 2024-10-23 10:07:09

Modify Branding of FreeCAD的相关文章

php出现Cannot modify header information问题的解决方法

做项目时都需要准备一个统一的出错提示函数,小编在函数执行里面,先处理出错的地址写入cookie以方便用户登陆以后可以直接跳转到要执行的这个页面,可是发现在服务器上测试时,竟然提示本地没有出现的错误: Warning: Cannot modify header information - headers already sent by.... 这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释: cookie本身在使用上有一些限制,例如:  1.呼叫setc

IE8中"HTML Parsing Error:Unable to modify the parent container element before the child

 一. 又涨见识了 IE8报下面错误,而且是我的机器不报,同事的机器报,试了4台,两个报,两个不报,IE版本都一样,没想明白 解决: 1.查看是否有未关闭的html标签,比如<table>而没有</table> (我就是这个原因) 2.是否在页面未加载完前js代码操作了body里的元素,将相关js代码移到</body>后面 网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/

PHP错误Warning: Cannot modify header information - headers already sent by解决方法_php实例

今天在测试以下代码时遇到该错误: 复制代码 代码如下: session_start(); $_SESSION['username']=$username; echo "<script language='javascript'>location.href='../admin.php';</script>"; exit(); 出现错误: 复制代码 代码如下: Warning: Cannot modify header information - headers a

why not use original list when will modify it in for statement

因为如果words被修改的话, for可能无法终止. 例如 >>> words = ['cat', 'window', 'defenestrate'] >>> for w in words: ...   if len(w) > 6: ...     words.insert(0, w) ...  ^CTraceback (most recent call last):   File "<stdin>", line 3, in <

-bash: ulimit: pipe size: cannot modify limit: Invalid argument

从root账号切换到oracle账号时,出现了"-bash: ulimit: pipe size: cannot modify limit: Invalid argument"提示,一般出现这个错误是因为在设置.bash_profile时,没有注意空格的缘故造成.例如(注意红色部分) 例1: if [ $USER = "oracle" ]; then   if [$SHELL = "/bin/ksh" ]; then     ulimit -p

mysql Can not modify more than one base table through a join view

问题描述 最近项目中用到了视图,用于查询数据.项目所使用的框架是spring+hibernate+ext.在查询某一产品的信息时老报 Can not modify more than one base table through a join view,我只是查询数据,又没有用视图去更新数据.而在查询其它产品信息时又不会出现这个问题,查询条件都是一样的.是在如下代码中报的错:String hql = "select count(*) from TransactionsInfo "+wh

PHP提示Cannot modify header information - headers already sent by解决方法_php技巧

本文实例讲述了PHP提示Cannot modify header information - headers already sent by解决方法,是进行PHP程序设计过程中经常会遇到的问题.本文对此以实例形式分析解决方法.分享给大家供大家参考.具体方法如下: 现来看看这段代码: <?php ob_start(); setcookie("username","test",time()+3600); echo "the username is:&qu

sql中update,alter,modify,delete,drop的区别和使用(整理)(转)

关于update和alter: 百度知道上关于update和alter有一个很形象的总结: 一个表有很多字段,一个字段里有很多数据. 一个家有很多房间,一个房间里有很多家具. update是用来将衣柜改成书架的. alter是用来将厨房改成厕所的.   把卧室改成厕所: alter table 你家 change 厨房 厕所 varchar(8); 在你的家里面加一个厕所: alter table 你家add 厕所 varchar(8);(8表示厕所8平米) 修改厕所大小: alter tabl

linux system-system function can not run correct after modify the enviroment?

问题描述 system function can not run correct after modify the enviroment? #include #include #include #include int main() { char *ptr = NULL; char path[1024] = {0}; char pathori[1024] = {0}; int ret = 0; ptr = getenv("PATH"); strcpy(pathori, ptr); pr