Add Button to FEM Toolbar Tutorial/de: Difference between revisions

From FreeCAD Documentation
(Created page with "==Eine neue Symboldatei erstellen==")
(Created page with "==Die neue Symboldatei registrieren==")
Line 27: Line 27:
It must be placed in: {{incode|src/Mod/Fem/Gui/Resources/icons/}}.
It must be placed in: {{incode|src/Mod/Fem/Gui/Resources/icons/}}.


<span id="Register_the_new_icon_file"></span>
== Register the new icon file ==
==Die neue Symboldatei registrieren==


The new SVG icon file has to be registered for the GUI-button by inserting it in {{incode|src/Mod/Fem/Gui/Resources/Fem.qrc}}:
The new SVG icon file has to be registered for the GUI-button by inserting it in {{incode|src/Mod/Fem/Gui/Resources/Fem.qrc}}:

Revision as of 14:07, 7 May 2023

Other languages:
Tutorium
Thema
FEM
Niveau
Fortgeschritten
Zeit zum Abschluss
60 min
Autoren
JohnWang
FreeCAD-Version
0.19
Beispieldateien
None
Siehe auch
None

Einleitung

Der Arbeitsbereich FEM enthält Symbolleisten und Menüs. Diese Anleitung zeigt, wie eine Test-Schaltfläche zu einer Symbolleiste hinzugefügt wird. Sie zeigt auch, wie einem Menü ein Menüeintrag hinzugefügt wird.

Die Aufgabe lässt sich in vier Teile aufteilen:

  • Eine neue Symboldatei erstellen.
  • Die neue Symboldatei registrieren. src/Mod/Fem/Gui/Resources/Fem.qrc muss geändert werden.
  • Eine neue Befehlsklasse erstellen. src/Mod/Fem/femcommands/commands.py muss geändert werden
  • Einem Arbeitsbereich einen neuen Befehl hizufügen. src/Mod/Fem/Gui/Workbench.cpp muss geändert werden.

Eine neue Symboldatei erstellen

For the button we need an icon file. You can use any of your favorite tools to create it, but it must be in the SVG format. Here we will use the FEM_testButton.svg file as an example.

It must be placed in: src/Mod/Fem/Gui/Resources/icons/.

Die neue Symboldatei registrieren

The new SVG icon file has to be registered for the GUI-button by inserting it in src/Mod/Fem/Gui/Resources/Fem.qrc:

<file>icons/FEM_testButton.svg</file>

Create a new command class

A new command class has to be added to the src/Mod/Fem/femcommands/commands.py module.

Just copy/paste an existing command, then adjust the icon, menu text and tool-tip in __init__(self):

class _testButton(CommandManager):
    "The FEM_testButton command definition"

    def __init__(self):
        super(_testButton, self).__init__()
        self.menuetext = "test Button"
        self.tooltip = "This is a test button"
        self.is_active = "always"
        #self.do_activated = "add_obj_on_gui_selobj_noset_edit"

Don't forget to register the command at the bottom of the module file with the addCommand(...) method:

FreeCADGui.addCommand(
    "FEM_testButton",
    _testButton()
)

Note: Please see this discussion thread in the forum if icons are involved.

Add new command to workbench

We will add the new command to both the solve toolbar and the solve menu.

Search for the following code snippet in /Gui/Workbench.cpp and add the new command:

Gui::ToolBarItem* solve = new Gui::ToolBarItem(root);
     solve->setCommand("Solve");
     *solve << "FEM_SolverCalculixCxxtools"
            << "FEM_SolverCalculiX"
            << "FEM_SolverElmer"
+           << "FEM_testButton"
            << "Separator"

To add the command to the solve menu of the FEM workbench, search for the following code snippet in Workbench.cpp:

Gui::MenuItem* solve = new Gui::MenuItem;
    root->insertItem(item, solve);
    solve->setCommand("&Solve");
    *solve << "FEM_SolverCalculixCxxtools"
           << "FEM_SolverCalculiX"
           << "FEM_SolverElmer"
           << "FEM_SolverZ88"
+          << "FEM_testButton"
           << "Separator"

Result: You should have just successfully added a test button to a FEM workbench toolbar and menu. Now, you can compile FreeCAD and test your new button.

Related