Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[SOLVED] how to get tab index when only text is known?



  • I have created several tabs. when the user clicks a tab, how to get the index number of that tab when only the Text of that tab is known. I would like to store the results in a QString.

    if there is no way of finding the index of a tab Text, then i guess i can store the tab Text in an array and search the array



  • assuming there is no duplicated tab name there, use

    @
    int tabIndexFound = -1;
    for(int i=0; i<tab->count(); ++i) {
    if(tabTextExpected == tab->tabText()) {
    tabIndexFound = i;
    break;
    }
    }
    // tabIndexFound is the number you want?
    @



  • yes the code will work. Gee i should have thought of that.

    for anyone else reading this topic that has the same problem, note the code below...

    @if(tabTextExpected == tab->tabText()) {@

    should be something like...

    @if(tabTextExpected == tab->tabText(i)) {@

    note the "i" in the above code.

    thank you joonhwan



  • Or just keep track of it yourself, by using a hash like this:
    @
    QHash<QString, int> m_tabIndices;
    @

    However, because it is unlikely you will have many tabs, I guess a linear search works just as well if not better. Still, in general, you should remember it does not scale very well.


Log in to reply