Q100098: How to create your own custom tab in the UI



This article demonstrates how you can create your own custom type of tab and access it from Katana's main Tabs menu.


To create a custom tab you will need to:
1. Define a class derived from UI4.Tabs.BaseTab with its own layout of widgets.
2. Register that class as a plug-in of type 'KatanaPanel'
Here is a Python example illustrating the above:
from Katana import UI4
from PyQt5 import QtWidgets

class MyCustomTab(UI4.Tabs.BaseTab):

    def __init__(self, parent):
        UI4.Tabs.BaseTab.__init__(self, parent)

       label = QtWidgets.QLabel('This is MyCustomTab')
        label.setStyleSheet('font-weight: bold; '
                            'font-size: 18pt; '
                            'font-style: italic;')

       hLayout = QtWidgets.QHBoxLayout()

       vLayout = QtWidgets.QVBoxLayout()


PluginRegistry = [
    ('KatanaPanel', 2.0, 'MyCustomTab', MyCustomTab),
    ('KatanaPanel', 2.0, 'Custom/MyCustomTab', MyCustomTab),

In order to see the tab type in the UI, save the Python code into a .py file and place this inside of a Tabs subfolder of a directory whose path is added to the $KATANA_RESOURCES environment variable.

Tab types registered this way will show up in the Tabs menu of Katana's main menu bar, and in the Add Tab menu of each pane in a Katana layout.
NOTE:  You can group tab types inside of those menus by using path-like tab type names, such as 'Custom/MyCustomTab'. However, please note that in Katana 3.0v1 upwards, tabs are also organised in separate sections by tab plug-in search path, this means that tab plug-ins loaded from different resource paths would not be grouped under the same submenu.

Every custom Tab folder is grouped together into a unique section. These sections can be assigned titles, which can be customized by placing a file named separatorTitle.txt in a Tabs folder within a KATANA_RESOURCES directory. For example, if you wanted "API Example Tabs" as a separator title you would simply put "API Example Tabs" in the separatorTitle.txt and the result would be as follows:

NOTE:  To have more than one custom Tab section you must have multiple unique directories assigned to KATANA_RESOURCES each with their own Tab folder. This is required because Katana only looks for the Tab folder, while only accepting one separatorTitle.txt per Tab folder, and can not identify sub folders. For more information on adding new paths to KATANA_RESOURCES, please see the Katana Resources Install Guide.

    We're sorry to hear that

    Please tell us why