Форум программистов, компьютерный форум, киберфорум
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
TooSober
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 4
#1

Как сделать вкладку невидимой в QTabWidget? - C++ Qt

05.05.2015, 20:21. Просмотров 1685. Ответов 6
Метки нет (Все метки)

Пишу проект, до меня писали его год, в нём QTabWidget используется активно.
Необходимость вкладки скрывать возникла, переписывать код QStackWidget или что-то другое используя - хочется не очень.
Возник вопрос - как сделать вкладку невидимой в QTabWidget? Сам не нашёл (туповат, быть может).
Возможно ли это в принципе?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2015, 20:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать вкладку невидимой в QTabWidget? (C++ Qt):

Как сделать QTabwidget прозрачным! - C++ Qt
Как сделать QTabwidget прозрачным!

Сделать активноым вкладку QDockWidget - C++ Qt
Доброе время суток! Есть QMainWindow, в нем есть ковырнадцать QDockWidget-ов, некоторые из них находятся на одной панели и свернуты в...

Как на QTabWidget прикрутить индикатор оставшихся символов, QLabel к примеру - C++ Qt
Здравствуйте. Можно конечно сделать лимит таким образом: void on_edit_textChanged() { if (edit.text().length() > MAX_LENGTH) { ...

Как создать новую вкладку в tabWidget`e? - C++ Qt
При нажатие кнопки необходимо создать новую вкладку. Вот мой код, который компилится но ничего не добавляется. void...

QTabWidget - C++ Qt
#include <QtGui> int main(int argc, char *argv) { QApplication app(argc, argv); QPushButton *push1 = new...

QTabWidget - C++ Qt
На виджет, у которого фон задан градиентом, я размещаю элементы, в числе которых QTabWidget. Как сделать так, чтоб фон у QTabWidget стал...

6
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.05.2015, 20:51 #2
QWidget::visible не работает?
0
yarko
64 / 64 / 16
Регистрация: 31.03.2015
Сообщений: 253
06.05.2015, 10:04 #3
Напрямую сделать никак. Вкладками управляет сам QTabWidget и доступа к ним нету. Можно канешно поискать по типу в child(), но это очень плохая идея и зависит от внутренней реализации табвиджета (которая может менятся без уведомления).
Здесь либо писать свой табвиджет, либо выкручиватся другими елементами.
1
alexey_rage
586 / 386 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
06.05.2015, 10:46 #4
Могу только предложить вариант сделать вкладки прозрачными через:
C++ (Qt)
1
setStyleSheet("QTabBar:tab{background-color: transparent; color: transparent; }" );
Это единственный вариант, который приходит в голову.
1
Байт
Диссидент
Эксперт C
16843 / 11108 / 1745
Регистрация: 24.12.2010
Сообщений: 21,828
06.05.2015, 11:03 #5
А может быть как-то через removeTab - insertTab, отдельно сохраняя сами виджеты?
1
TooSober
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 4
06.05.2015, 11:41  [ТС] #6
Цитата Сообщение от Байт Посмотреть сообщение
А может быть как-то через removeTab - insertTab, отдельно сохраняя сами виджеты?
Похоже что так делать и придётся, а как появится время - писать свой TabWidget, с блэкджеком и сокрытием вкладок)

Добавлено через 3 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
QWidget::visible не работает?
Работает, но не так как нужно - скрывает содержимое вкладки, саму её оставляя. Другими словами - появляется пустая вкладка вместо той, что была до этого.
0
Sph
158 / 42 / 10
Регистрация: 25.08.2014
Сообщений: 341
07.05.2015, 11:48 #7
Невидимыми их сделать никак нельзя, сам столкнулся с такой проблемой. Решение было найдено через удаление-добавление заново, сохраняя при этом ссылку на виджет.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//копируем
QWidget *t_1,*t_2,*t_3;
t_1 = ui->tab_1;
t_2 = ui->tab_2;
t_3 = ui->tab_3;
//удаляем ВАЖНО! удалять от последней к первой иначе сбивается нумирация
ui->Tab->removeTab(3);
ui->Tab->removeTab(2);
ui->Tab->removeTab(1);
//далее добавляем-удаляем по условиям
if(бла-бла-бла)
{
for(int i = 3; i > 0; i--)
    {
        ui->Tab->removeTab(i);
    }
    ui->Tab->addTab(t_3, "Бла-блабла закладонька");
}
Более адекватного решения я не нашел.
2
07.05.2015, 11:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 11:48
Привет! Вот еще темы с ответами:

QT QTabWidget - C++ Qt
Используйте теги для вставки кода в свои сообщения! #include <QApplication> #include <QTableWidget> #include <QStringList> ...

QTabWidget :) - C++ Qt
Добрый день , уважаемые форумчанины , недавно я начал изучать библиотеку Qt, и сегодня уже - столкнулся со своей первой проблемой ....Суть...

QOpenGLWidget+QTabWidget - C++ Qt
Здраствуйте, у меня возникла проблема c памятью. Создаю виджеты, наследники QOpenGLWidget и QOpenGLFunctions и помещаю их в QtabWidget,...

Выравнивание в QTabWidget - C++ Qt
Здравствуйте. Как можно выровнять по центру содержимое табов, которое выводится по нажатию вкладки. Добавляю так: tab->addTab(new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.