|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2013, 02:09 | #1 |
Регистрация: 14.06.2013
Сообщений: 9
|
Qt 5.1 Очистка формы
Суть программы в следующем:
Построить бинарное дерево, элементы дерева задаются рандомом. Я делал так: Первый элемент дерева толкал в лабел, созданный динамически, и размешал его по нужным координатам. Когда генерируется следующий элемент, то если он больше предыдущего, то достаиваем его в правую ветвь, если меньше, что в левую, если ветвь занята, то сравниваем её с текущим значением в ветви и опять двигаем на уровень ниже, и так пока не дойдем до конца ветви. Достройка осуществляется добавлением нового лебла на месте того, с которым сравнивали и смешением его координат на заданное число, в нужную сторону (вниз на уровень и либо влевоб либо в право) получается примерно следующая структура (связи между уровнями также отображаются с помощью лаблов с символами / и \) например последовательность символов 2 8 4 3 1 7 9 10 (повторения игнорируются) Код:
1. Как удалить эти динамически созданные лаблы при следующем запуске процедуры формирования и построения дерева? (новые лаблы размещаются прямо поверх старых).Есть ли какая-то функция для перерисовки, или перезагрузки формы из ui файла, созданного в дизайнере? 2. При другой последовательности значений (у нас же рандом), бывает так, что по одним и тем же координатам нужно поставить сразу 2 элемента, как этого избежать? Пример для наглядности: 5 2 8 4 3 1 7 9 10 Код:
|
07.12.2013, 02:10 | #2 |
Регистрация: 14.06.2013
Сообщений: 9
|
Блин все деревья съехали=( а я старался выравнивал=(
|
07.12.2013, 02:11 | #3 |
Регистрация: 14.06.2013
Сообщений: 9
|
О теперь норм=)
|
07.12.2013, 14:49 | #4 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Я бы на Вашем месте создал пустой проект (без привлечения дизайнера)
New Project -> Other Project -> Empty Qt Project Создал бы таблицу QGridLayout из элементов QLabel. При нажатии кнопки удалял бы текущий Layout со всем содержимым. Вот здесь код нашёл: http://stackoverflow.com/questions/7...ut-on-a-widget Код:
Вот так: Код:
Код:
Интересно стало... Пример написал До нажатия на кнопку: После нажатия на кнопку: Вот код примера. Надеюсь это поможет Правда не знаю, может дерево искривится сильно, если будет большое..., а может нет GenerationOfTree.pro Код:
Код:
Последний раз редактировалось 8Observer8; 07.12.2013 в 14:51. |
07.12.2013, 14:50 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
dialog.cpp
Код:
Код:
|
07.12.2013, 15:00 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
Я думаю, можно и с проектом с дизайнером этот способ использовать. Хотя не знаю подойдёт ли он для большого дерева.
|
09.12.2013, 08:43 | #7 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Обязательно именно так выводить? Варианты
Код:
Удаление уже выведенного - или хранить список лейблов в каком-нибудь векторе, или вообще засунуть весь текст в один многострочный лейбл и потом просто чистить текст.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очистка формы "текстовое поле" | Стремящийся | JavaScript, Ajax | 8 | 12.05.2012 20:41 |
Удаление динамических объектов / полная очистка формы | 095 | Общие вопросы Delphi | 3 | 23.04.2012 16:09 |
Пересоздание формы (очистка) | mental | Общие вопросы Delphi | 2 | 24.06.2011 15:59 |
Очистка содержимого формы и замена новым. | (((sheva))) | Общие вопросы Delphi | 2 | 12.05.2011 12:09 |
Очистка формы | Радмир4855 | Microsoft Office Excel | 2 | 13.05.2010 16:08 |