SUMMARY
This article demonstrates how you can create your own custom type of tab and access it from Katana's main Tabs menu.
MORE INFORMATION
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 are some Python examples illustrating the above:
Katana 8.0
from Katana import UI4
from PySide6 import QtWidgets
class MyCustomTab(UI4.Tabs.BaseTab):
def __init__(self, parent):
UI4.Tabs.BaseTab.__init__(self, parent)
label = QtWidgets.QLabel('This is MyCustomTab')
label.setObjectName('label')
label.setStyleSheet('font-weight: bold; '
'font-size: 18pt; '
'font-style: italic;')
hLayout = QtWidgets.QHBoxLayout()
hLayout.setObjectName('hLayout')
hLayout.addStretch()
hLayout.addWidget(label)
hLayout.addStretch()
vLayout = QtWidgets.QVBoxLayout()
vLayout.setObjectName('vLayout')
vLayout.addLayout(hLayout)
self.setLayout(vLayout)
PluginRegistry = [
('KatanaPanel', 2.0, 'MyCustomTab', MyCustomTab),
('KatanaPanel', 2.0, 'Custom/MyCustomTab', MyCustomTab),
]
Katana 7.5 and older
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.setObjectName('label')
label.setStyleSheet('font-weight: bold; '
'font-size: 18pt; '
'font-style: italic;')
hLayout = QtWidgets.QHBoxLayout()
hLayout.setObjectName('hLayout')
hLayout.addStretch()
hLayout.addWidget(label)
hLayout.addStretch()
vLayout = QtWidgets.QVBoxLayout()
vLayout.setObjectName('vLayout')
vLayout.addLayout(hLayout)
self.setLayout(vLayout)
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.
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:
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