Track movable tabs in QTabWidget

1.7k views Asked by At

I have a question regarding QTabWidget: It has a property called movable, it allow one to mix tab positions. When a tab position is moved, its index is updated. Here is my problem. Lets say I have 4 tabs, each representing some object Foo but with different parameters. That means its important to me that I know exacly which object is at which position. When I close the tab I would like to destroy the proper Foo object so I need to keep track of him. When I move a tab it changes its index, so lets say I have the object I am interested in within tab 0 and I move it one place behind, that way it is now with index 1 not 0. How can I know that? How to get notified if indexes changes? I have a list of that objects as separate property. That way if one closes the tab I can destroy and then remove an item from the list with corresponding index (but only If i wont move the tabs, because then they change indexes). I havent posted any code examples because this is a very general problem, but if it is needed I can do it of course. I would aprichiate all help regarding this!

1

There are 1 answers

6
Pavel Strakhov On

For the things that you have mentioned you don't need to track tabs movement. When a widget's index matters (for example, if you have index of a tab to close and want to know which widget currently lies at that index), use QTabWidget::widget to convert index to widget and QTabWidget::indexOf to convert widget to index.

Tracking tab movements is rarely needed. You can get QTabBar objects with QTabWidget::tabBar and use its QTabBar::tabMoved signal.