BlinCT
BlinCTMarch 13, 2017, 4:51 a.m.

Определение активного или не активного таба

Qt

Всем привет. Возникла необходимость определение активности таба. То есть например у нас 3 таба. Каждый это отдельный класс в котором вешается определенный контент. В основном MainWindow мы табы через addTab вешаем на окно. А теперь, в каждом табе есть какая то функция, которая что то делает в том случаи если она получила сообщение что данный таб выбран нами и он активен. То есть в нашем случаи 1 активный а 2 нет. Если мы переключились на другой таб то новый стал активным(и мы с таба что то можем слать), а предыдущий уже не активный стал.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

3
Evgenii Legotckoi
  • March 13, 2017, 5:04 a.m.
  • The answer was marked as a solution.

Если имеется строгая последовательность добавления табов, то можно отталкиваться от индекса таба и кастовать виджет таба в нужный класс. А потом уже вызывать соответствующий метод. Естественно, стоит проверять, что указатель на объект не равен nullptr , то есть удалось скастовать объект.

В данном варианте подключаемся к сигналу currentChanged

void Widget::on_tabWidget_currentChanged(int index)
{
    switch (index) {
    case 1:
    {
        MyCustomWidget_1 *widget_1 = static_cast<MyCustomWidget_1*>(ui->tabWidget->widget(index));
        if (widget_1)
        {
            widget_1->executeSameFunction();
        }
        break;
    }
    case 2:
    {
        MyCustomWidget_2 *widget_2 = static_cast<MyCustomWidget_2*>(ui->tabWidget->widget(index));
        if (widget_2)
        {
            widget_2->executeOtherFunction();
        }
        break;
    }
    default:
        break;
    }
}
    BlinCT
    • March 13, 2017, 5:55 a.m.

    Вот так подправил

    switch (nTabIndex)
    {
        case 0:
        {
            if (m_pGeneralTab)
            {
                qDebug() << "m_pGeneralTab";    //Сообщаем внутрь таба что он выбран и делаем connect
            }
            break;
        }
        case 1:
        {
            if (m_pLoadCellTab)
            {
                qDebug() << "m_pLoadCellTab";
            }
            break;
        }
        default:
            break;
    }
    Но вопрос в том, если я выбираю другой там то разве в таком случаи придет сообщение в таб что он уже не активен?
      Evgenii Legotckoi
      • March 13, 2017, 5:59 a.m.

      Достаточно того, что активировался другой. Тогда уже выбранный раннее уже не будет активен. Соответственно в этом слоте и прописать код, который сделает всё необходимое для прочих не активных табов.

      Получен активный таб, соответственно другие табы не активны, разве этого не достаточно?

        Comments

        Only authorized users can post comments.
        Please, Log in or Sign up
        AD

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:50points,
        • Rating points-4
        m

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:80points,
        • Rating points4
        m

        C ++ - Test 004. Pointers, Arrays and Loops

        • Result:20points,
        • Rating points-10
        Last comments
        i
        innorwallNov. 11, 2024, 10:12 p.m.
        Django - Tutorial 055. How to write auto populate field functionality Freckles because of several brand names retin a, atralin buy generic priligy
        i
        innorwallNov. 11, 2024, 6:23 p.m.
        QML - Tutorial 035. Using enumerations in QML without C ++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
        i
        innorwallNov. 11, 2024, 3:50 p.m.
        Qt/C++ - Lesson 052. Customization Qt Audio player in the style of AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
        i
        innorwallNov. 11, 2024, 2:19 p.m.
        Heap sorting algorithm The role of raloxifene in preventing breast cancer priligy precio
        i
        innorwallNov. 11, 2024, 1:55 p.m.
        PyQt5 - Lesson 006. Work with QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
        Now discuss on the forum
        i
        innorwallNov. 11, 2024, 8:56 p.m.
        добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
        i
        innorwallNov. 11, 2024, 10:55 a.m.
        Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
        9
        9AnonimOct. 25, 2024, 9:10 a.m.
        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

        Follow us in social networks