我有一个关于QTabWidget的问题:它有一个名为movable的属性,它允许混合标签位置。移动选项卡位置时,将更新其索引。这是我的问题。假设我有4个选项卡,每个选项卡代表一些对象Foo但具有不同的参数。这对我来说很重要,我知道哪个对象处于哪个位置。当我关闭标签时,我想破坏正确的Foo对象,所以我需要跟踪他。当我移动一个标签时它改变了它的索引,所以我说我在标签0中有我感兴趣的对象,我把它移到后面一个地方,那样现在它的索引1不是0.我怎么知道呢?如果索引发生变化,如何获得通知?我有一个对象列表作为单独的属性。这样,如果一个关闭选项卡,我可以销毁,然后从列表中删除具有相应索引的项目(但只有如果我不移动选项卡,因为那时他们更改索引)。 我没有发布任何代码示例,因为这是一个非常普遍的问题,但如果需要,我当然可以这样做。我会对此提出所有帮助!
答案 0 :(得分:5)
对于您提到的内容,您无需跟踪标签移动。当窗口小部件的索引很重要时(例如,如果您有要关闭的选项卡的索引并想知道当前位于该索引的窗口小部件),请使用QTabWidget::widget
将索引转换为窗口小部件并将QTabWidget::indexOf
转换为要转换小部件索引。
很少需要跟踪标签移动。您可以使用QTabBar
获取QTabWidget::tabBar
个对象并使用其QTabBar::tabMoved
信号。