Intruder
IntruderЖел. 18, 2019, 6:47 Т.Ж.

QTabWibget удаление вкладки из стека QTabWidget

Всем доброго времени суток.
Что я делаю неправильно при удалении вкладки?

void MainTabWidget::on_MainTabWidget_tabCloseRequested(int index)
{
    removeTab(index);
    if(currentIndex() != -1){
        windowTitle = tr("Main window | ") + tabText(currentIndex());
    }else {
        windowTitle = tr("Main window");
        emit sendMenuToolsFlag(false);
    }
    emit sendWindowTitle(windowTitle);
    emit sendStatusBar(tabText(currentIndex()));
}

Но если я потом открою еще одну такую же вкладку (после удаления), то в стеке остается предыдущая, которая удаленная.
Вот так я создаю новую вкладку:

void MainTabWidget::actionOpenWrngObject()
{
    QString filename = QFileDialog::getOpenFileName(this, QString::fromUtf8("Open file"), QDir::currentPath(), "wiring data (*.xml *.XML *.Xml);;All files (*.*)");
    if(filename.isEmpty()){
        return;
    }
    QFileInfo fileInfo = filename;
    for (int ind = 0; ind < count(); ind++) {
        if(tabText(ind) == fileInfo.fileName()){
            setCurrentIndex(ind);
            return;
        }
    }
    objectwidget *newObjectWidgetPage = new objectwidget(this);
    newObjectWidgetPage->setWindowTitle(fileInfo.fileName());
    newObjectWidgetPage->setObjectName(fileInfo.fileName());
    newObjectWidgetPage->setFilename(filename);
    newObjectWidgetPage->import_data(&filename);
    if(!newObjectWidgetPage->error()){
        addTab(newObjectWidgetPage, newObjectWidgetPage->windowTitle());
        QString tabTitle = tr("Main window | ") +this->tabText(currentIndex());
        emit sendWindowTitle(tabTitle);
        emit sendStatusBar("Open file: " + filename);
        emit sendMenuToolsFlag(true);
        newObjectWidgetPage->add_actions(m_toolsActions);
        setCurrentWidget(newObjectWidgetPage);
        connect(this, SIGNAL(createNewWrngObject()), SLOT(show_selectDialog()));
        connect(this, SIGNAL(actionEditWrngObject()), newObjectWidgetPage, SLOT(action_edit()));
        connect(this, SIGNAL(actionDeleteWrngObject()), newObjectWidgetPage, SLOT(action_delete()));
    }else {
        newObjectWidgetPage->deleteLater();
        QMessageBox::critical(new QWidget(),tr("Error"),tr("The file is not valid!"));
        if(currentIndex() == -1){
            emit sendWindowTitle(tr("Main window"));
            return;
        }else {
            emit sendWindowTitle(tr("Main window | ") + tabText(currentIndex()));
            emit sendStatusBar(tabText(currentIndex()));
        }
    }
}

Заранее благодарю за помощь!

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

0

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
m
  • molni99
  • Қаз. 26, 2024, 1:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
m
  • molni99
  • Қаз. 26, 2024, 1:29 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:20ұпай,
  • Бағалау ұпайлары-10

C++ - Тест 003. Условия и циклы

  • Нәтиже:42ұпай,
  • Бағалау ұпайлары-8
Соңғы пікірлер
i
innorwallҚар. 10, 2024, 9:55 Т.Ж.
Linux жүйесінде файлдарды қалай көшіруге болады In dogs, it is used to facilitate synchronized cardioversion of atrial fibrillation buy priligy usa
i
innorwallҚар. 10, 2024, 9:03 Т.Ж.
Qt тілінде ойын қалай жазылады - 3-сабақ. Басқа объектілермен әрекеттесу priligy otc I routinely do not tell patients and or parents of patients with atopic dermatitis to avoid glutamates in food
i
innorwallҚар. 10, 2024, 4:31 Т.Ж.
QMYSQL драйверін құру (MariaDB) Windows 10 x64 QT 5.13.0 Mingw73_64 amazon priligy Conclusion This is the first study of the adverse effects of quetiapine ingestion by children under 7 years of age
i
innorwallҚар. 9, 2024, 11:14 Т.Қ.
ТОБЖ – Сабақ 002. Оптикалық талшық және оның түрлері can you buy priligy Uric acid reduction rectifies prehypertension in obese adolescents
Енді форумда талқылаңыз
i
innorwallҚар. 10, 2024, 8:22 Т.Ж.
добавить qlineseries в функции The information provided in Dosage Posology and method of administration of Tamoxifen Actavis is based on data of another medicine with exactly the same composition as the Tamoxifen Actavis …
9
9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
F
FynjyШілде 22, 2024, 4:15 Т.Ж.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Бізді әлеуметтік желілерде бақылаңыз