GUI Question - Color Tabs, etc?

   4201   10   3
User Avatar
Member
43 posts
Joined: 8月 2013
Offline
Is it possible to do this any way in Houdini?

Would be nice to have the ability to color code tabs as you see fit?  

Cheers!

Attachments:
houdinitabs.png (130.3 KB)

User Avatar
Member
538 posts
Joined: 12月 2006
Offline
It is not possible
https://gumroad.com/alexeyvanzhula [gumroad.com]
User Avatar
スタッフ
5185 posts
Joined: 7月 2005
Offline
You can turn on “Color pane headers with Network Contents” to shade the pane tab itself, but you can't specify the color, nor does it color the entire pane. Edit > Prefs > General UI.
User Avatar
Member
8686 posts
Joined: 7月 2007
Offline
this is a great idea, I wouldn't mind a possibility to slightly tint tabs of an asset, could make complex assets like rigs more readable
Edited by tamte - 2018年8月21日 11:09:16
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
438 posts
Joined: 3月 2014
Online
Yes, please !

I've been looking for something like this for a long time. At least make it possible to highlight selected TAB's. It's so hard to see what TAB's are currently opened. There's only this tiny little single pixel line that is highlighted.

The Houdini GUI could really use some attention, it feels like I traveled 20 years back in time.

R.
User Avatar
Member
4595 posts
Joined: 2月 2012
Offline
Hi,

You could achieve (hack) this using Qt, by getting a Qt handle to the parameters pane and then either draw an outline or a transparent overlay that's pass-through to keyboard and mouse inputs so you can click through as if it didn't exist. You would define your own set of colors by specifying operator type -> tab name, etc.

It wouldn't be very easy though.

Here is a similar example that creates an outline for a locked camera that only shows up if the current view is locked which is much easier to create of course.

SESI's Qt integration opens up a lot of doors!

Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
900 posts
Joined: 2月 2016
Offline
It would be very useful, do you have an RFE number for this? I'd like support it.


Also, in this regard, I think it would be very helpful to have custom colors for the slider of the parameters. (and be able to set the with python)

Imagine a slider for a float parm that goes from white to black.
Or if you want to implement a custom cache manager, you could set the slider color green for cached data, and red data to cook.

Attachments:
color_sliders.JPG (26.3 KB)

User Avatar
Member
872 posts
Joined: 10月 2008
Offline
Make that a complete Houdini window colorability! It sounds like a joke but it would be genuinely helpful. I've more than once had several shots open only to work on the wrong one. Or open an old file to check something and then close the wrong one. Or killing the wrong houdini session. I'd be nice to differentiate between them more easily. I know we can read the file name at the top but when there's something like show/dep/subdep/user/seq/shot/folder/folder/yourstarsign/type/version/showname_seq_shot_dep_elem_version_product.hip it gets confusing quickly

Oh, and with a pid too!
Edited by Soothsayer - 2021年10月1日 09:14:33
--
Jobless
User Avatar
Member
256 posts
Joined: 9月 2012
Online
tamte
this is a great idea, I wouldn't mind a possibility to slightly tint tabs of an asset, could make complex assets like rigs more readable

I second that
Vincent Thomas   (VFX and Art since 1998)
Senior Env and Lighting  artist & Houdini generalist & Creative Concepts
http://fr.linkedin.com/in/vincentthomas [fr.linkedin.com]
User Avatar
Member
17 posts
Joined: 3月 2022
Offline
@animatrix_ could you kindly provide the code snippet for drawing a line? I aim to create a script that marks the locked pane by drawing a line, as I usually hide Network Controls. The current code I'm using draws a line on top of the pane, but it occasionally draws it outside the pane and onto the Main Application Window, rather than where I intend it to be.

def set_border_for_cursor_panetab(value, color):
    app = qtw.QApplication.instance()
    cursor_widget = app.widgetAt(qtg.QCursor.pos())
    cursor_widget_parent = cursor_widget.parent()
    if value:
        margin = hou.ui.scaledSize(2)
        cursor_widget_parent.setContentsMargins(0, margin, 0, 0)
        cursor_widget_parent.setStyleSheet("QWidget { background: %s; }" % color)
    else:
        cursor_widget_parent.setContentsMargins(0, 0, 0, 0)
        cursor_widget_parent.setStyleSheet("")
Edited by timurproko - 2024年5月16日 09:02:47
User Avatar
Member
4595 posts
Joined: 2月 2012
Offline
timurproko
@animatrix_ could you kindly provide the code snippet for drawing a line? I aim to create a script that marks the locked pane by drawing a line, as I usually hide Network Controls. The current code I'm using draws a line on top of the pane, but it occasionally draws it outside the pane and onto the Main Application Window, rather than where I intend it to be.

def set_border_for_cursor_panetab(value, color):
    app = qtw.QApplication.instance()
    cursor_widget = app.widgetAt(qtg.QCursor.pos())
    cursor_widget_parent = cursor_widget.parent()
    if value:
        margin = hou.ui.scaledSize(2)
        cursor_widget_parent.setContentsMargins(0, margin, 0, 0)
        cursor_widget_parent.setStyleSheet("QWidget { background: %s; }" % color)
    else:
        cursor_widget_parent.setContentsMargins(0, 0, 0, 0)
        cursor_widget_parent.setStyleSheet("")

I do it like this:

class ViewportOutlineWidget(QtWidgets.QWidget):

    thickness = 0
    def __init__(self, thicknessValue=2):
        QtWidgets.QWidget.__init__(self, hou.qt.mainWindow(), QtGui.Qt.WindowStaysOnTopHint)
        

        self.thickness = thicknessValue
        self.setParent(hou.qt.floatingPanelWindow(None), QtGui.Qt.Window)
        self.update()

        p = self.palette()
        p.setColor(QtGui.QPalette.Window, QtGui.Qt.red)
        self.setPalette(p)


    def update(self):
        window = getSessionVariable("sceneViewerQtONE")
        s = window.size()
        p = window.mapToGlobal(QtCore.QPoint(0, 0))
        w = s.width()
        h = s.height()

        self.setGeometry(p.x(), p.y(), w, h)

        all = QtGui.QRegion(0, 0, w, h)
        inside = QtGui.QRegion(self.thickness, self.thickness, w - 2 * self.thickness, h - 2 * self.thickness)
        self.setMask(all.subtracted(inside))

So it's not lines but a hollowed out rectangle
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
  • Quick Links