Russian Qt Forum
Ноябрь 14, 2024, 21:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: закрытие таба в QTabWidget  (Прочитано 9828 раз)
Larry
Гость
« : Июнь 06, 2011, 17:04 »

Добрый день, форумчане! Подскажите пожалуйста в чем может быть ошибка...Есть QTabWidget и при закрытии его вкладок закрываются все, которые находятся справа. Закрываю вкладку
Код:
QTabWidget::removeTab(index);
вставил вывод индекса в консоль и видно, что при закрытии любой вкладки слот вызывается столько раз сколько всего вкладок в QTabWidget.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Июнь 06, 2011, 19:32 »

Ну вы побольше кода-то выложите, а лучше программу.
Записан
Larry
Гость
« Ответ #2 : Июнь 06, 2011, 19:48 »

сегодня уже не получится, но завтра с утра сразу выложу...
Записан
Larry
Гость
« Ответ #3 : Июнь 07, 2011, 10:20 »

Код:
Вот кусок кода где происходит добавление вкладок в таб

[code]void CLevEd::slotTileCreate()
{

QString strImagename = QFileDialog::getOpenFileName(this,
tr("открыть изображение"), NULL,
tr("Изображение(*.jpg; *.png; *.bmp; *.gif)"));
if(strImagename.isEmpty())
return;

QString str;
str = strImagename.section('/', -1);

CDlgTileParameter *ptr_dlg = new CDlgTileParameter(str);

if(ptr_dlg->exec() == QDialog::Rejected)
return;

QSize tileSize = ptr_dlg->getSize();
// создание и настройка вида
m_teView = new CTileEdit(m_lwTilesList);
m_teView->setImage(strImagename);
m_teView->setTileSize(tileSize);

m_twView->addTab(m_teView, str);

connect(m_twView, SIGNAL(tabCloseRequested(int)), this, SLOT(slotCloseTab(int)));
}
а здесь происходит закрытие
Код:
void CLevEd::slotCloseTab(int index)
{
qDebug() << tr("вкладка №-") << index;
m_twView->removeTab(index);
}

где m_teView - это наследованный класс QGraphicsView
     m_twView - QTabWidget[/code]
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Июнь 07, 2011, 10:47 »

При каждом добавлении таб-а вешаешь слот
Код
C++ (Qt)
connect(m_twView, SIGNAL(tabCloseRequested(int)), this, SLOT(slotCloseTab(int)));
Этот слот нужно вешать единожды при создании QTabWidget-a.
Записан

Qt 5.11/4.8.7 (X11/Win)
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Июнь 07, 2011, 10:55 »

Да, либо единожды, либо Qt::UniqueConnection.
Записан
Larry
Гость
« Ответ #6 : Июнь 07, 2011, 10:56 »

спасибо, ща попробую:)
Записан
Larry
Гость
« Ответ #7 : Июнь 07, 2011, 11:33 »

Спасибо большое еще раз, все работает! Появился еще один вопрос по QListWidget и решил задать его здесь. Во вложении на рисунке видно, что в QListWidget добавление пиктограмм происходит не по всей ширине(справа остается область достаточная для добавления еще одного изображения), почему может так происходить и что надо сделать, чтобы пиктограммы добавлялись по всей ширине списка?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Июнь 07, 2011, 11:53 »

Какой flow() у QListWidget?
И с лейаутом всё в порядке? Непонятный правый отступ там какой-то.
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #9 : Июнь 07, 2011, 12:01 »

flow() пытался ставить как слева на право, так и сверху вниз(в этом случае внизу отступ был),все оставалось без изменений.
С лайоутом все нормально, то я выставлял фиксированный размер для списка...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Июнь 07, 2011, 12:16 »

С лайоутом все нормально, то я выставлял фиксированный размер для списка...
И зачем  Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #11 : Июнь 07, 2011, 12:29 »

пробовал:), но ничего так и не помогло...непонятно как сделать чтобы отображалось нормально...
Записан
Larry
Гость
« Ответ #12 : Июнь 07, 2011, 13:04 »

больше никаких вариантов нет?
Записан
Larry
Гость
« Ответ #13 : Июнь 07, 2011, 16:57 »

перепробовал уже все варианты и не пойму как это исправить...помогите please!!!
Записан
Larry
Гость
« Ответ #14 : Июнь 08, 2011, 08:36 »

А какой еще можно использовать виджет для этих же целей?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 23.