Intruder18 декабря 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
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 5:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 12:50
EVA25 декабря 2023 г. 21:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев14 апреля 2024 г. 12:35
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 22:57