Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
fe120 |
8.2.2010, 22:28
Сообщение
#1
|
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0
|
Всем доброго времени суток.
Занимаюсь разбирательством с QMainWindows и QTabWidget. С первым впрочем все понятно. Со вторым же возникла следующая проблема: Необходимо по нажатию на кнопку closetab на самой табе соответственно и закрывать табу. Создание табы реализовано следующим образом: При такой реализации получается что табы успешно создаются по нажатию кнопки, а уничтожаются,при нажатии на closetab, несколько не понятно, а точнее уничтожаются все табы находящиеся после закрываемой,включая закрываемую. более чем уверен что ошибка кроется в моей невнимательности... На изображениях ниже показаны эти ситуации(сверху вниз) 1 - созданы 7 табов. 2 - наводим на кнопку closetab 4 табы 3 - после нажатия убираются табы 4 - 7 включительно. Раскрывающийся текст Link Ниже представлен полный код создания окна: Раскрывающийся текст так же интересует следующее: при removeTab(index) происходит ли delete виджета который добавлен на табу, или же нада вручную сперва удалять виджет, а только после ремовить табу. Заранее большое спасибо откликнувшимся на возникшую проблемку. |
|
|
|
|
Litkevich Yuriy |
8.2.2010, 23:01
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Добавь в функцию
Цитата(fe120 @ 9.2.2010, 1:28) Link void mainWidget::closeCompositionTab(int index) строку:Собери программу в режиме отладки с консолью. И посмотри что будет выводить в консоль.
|
|
|
|
|
fe120 |
8.2.2010, 23:14
Сообщение
#3
|
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0
|
хм..
вновь создал 7 табов, жму на закрытии 4-ой, в консоли следующее: тоесть при одном нажатии он множество раз прокручивает и удаляет таб который встал на индекс с номером 4 и так до тех пор пока не удалит все, что находятся правее удаляемого... проблемму засекли, решение не соображу |
|
|
|
|
Litkevich Yuriy |
9.2.2010, 2:21
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
fe120, А версия Qt какая?
Вот мой тест (все вкладки статические, созданы в дизайнере):
Qt_test_16.zip ( 2.78 килобайт )
Кол-во скачиваний: 289Проверил на Qt 4.5.3 и Qt 4.6.0 MinGW/Виндовоз 2к Багу НЕ подтверждаю |
|
|
|
|
fe120 |
9.2.2010, 12:20
Сообщение
#5
|
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0
|
и правду говорят утро вечера мудренее...
нашел абсолютно глупейшую ошибку... А что касательно 2 вопроса? Необходимо ли вручную удалять виджет привязанный к табе, для освобождения памяти? Или же любезный QTabWidget::removeTab(index), все организует сам? |
|
|
|
|
Litkevich Yuriy |
9.2.2010, 12:45
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(fe120 @ 9.2.2010, 15:20) Link Необходимо ли вручную удалять виджет привязанный к табе, для освобождения памяти? а что написано в доке про removeTab?
Или же любезный QTabWidget::removeTab(index), все организует сам? |
|
|
|
|
fe120 |
9.2.2010, 19:52
Сообщение
#7
|
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 6.1.2010 Пользователь №: 1354 Спасибо сказали: 1 раз(а) Репутация: 0
|
Ich verstehe =))
Link. |
|
|
|
|
Litkevich Yuriy |
9.2.2010, 20:16
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(fe120 @ 9.2.2010, 22:52) Link not deleted. вот и ответ на твой вопрос.
|
|
|
|
| Гость_Гость_* |
12.8.2010, 11:26
Сообщение
#9
|
|
Гости |
и какая же ошибка была?
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 7:41 |