I am using a pygtk application and I have added a Treeview inside a ScrolledWindow. Now I want to freeze the first column (fix the column position), so that when scrolling the Treeview horizontally the column position is fixed and still visible (as it's done in excel for the row column).
So how I can freeze the Treeview column in pygtk?
The closest I've been able to get is a bit of a kludge.  I use Perl, not Python, so I'll just describe my technique.
Connect to the treeview's scroll-event signal and watch for direction=left/right (or smooth with get_scroll_deltas() returning non-zero for the X axis).  Be sure to return FALSE for vertical scrolling so that remains unaffected.  Then show/hide the columns after the fixed one(s) and return TRUE.
For example: when scrolling right, hide column 2, then 3, etc.  When scrolling left, show the highest number column that's hidden.
There are a couple drawbacks:

It's not as smooth as what you're looking for (columns can't be partially hidden).
Doesn't work with the scrollbar, only when tilting the mouse wheel.  Not all mice have tiltable wheels.
Freeze the first column in Treeview pygtk