Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
1

Инициализация своих виджетов

17.12.2012, 08:59. Показов 3064. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Заранее спасибо за пмощь. Проблема такая - при запуске приложения сначала создается много пустых окон и тут же уничтожаются и только потом создается нужное окно со моими виджетами. Что не так сделано?

mainwindow.h
C++ (Qt)
1
2
3
...
WidgetViewEditLine* widgets[100];
...
mainwindow.cpp
C++ (Qt)
1
2
3
...
widgets_empty[i] =new WidgetViewEditLine(this,labelName,b,textValue);
ui->GridForMandatoryLine->addWidget(widgets_empty[i]);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2012, 08:59
Ответы с готовыми решениями:

Инициализация массива виджетов QList<QTextBox>
QVBoxLayout *qvbTextEdits=new QVBoxLayout; QList&lt;QTextEdit&gt;* listTE=new...

Компоновка виджетов
Доброго времени суток. Делаю приложение для диплома и тут появилась неприятность. Необходимо...

Наложение виджетов
Здравствуйте, у меня есть 2 виджета. На один - устанавливается фоновая картинка, а на другой...

обновление виджетов
Подскажите как обновить виджет с Layout'том. Ну допустим QWidget win; QHBoxLayout *hBox = new...

34
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 13:14  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Чистый Посмотреть сообщение
тогда растолкуйте чего вы хотите добиться и зачем вам удалять создавать одни и те же виджеты, если можно менять их содержимое, так и до утечки памяти не далеко....
допустим изначально(для нового доумента-не открываемого)он создал у меня 20 виджетов, потом пользователь открыл документ и мне нужно внести другое содержимое в эти 20(из открываемого документа) и отрисовать например ещё +15 виджетов с информацией.
Раньше мне казалось сложным и непонятным как мне кусок данных взять и заполнить ими те виджеты(которые уже отрисованы),а для другой части отрисовать виджеты(+новые).Мне казалось что проще каждый раз отрисовывать по новому.
Сейчас мне так не кажется.
Простите, если я не понятно объясняю.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 13:26 22
А с какого рода документами ведется работа? почему требуется создавать такое большое количество виджетов?

Т.е. получается что после запуска программы пользователь может выполнять какие-то действия с пусты (созданным по умолчанию) документом, для этого и создаются начальные виджеты.
В процессе работы пользователь может открыть какой-то другой документ, для отображения которого потребуется другое количество виджетов.
И из-за этого и возникает вопрос
Я правильно понял?

Можно подумать о том, чтобы отображение документа свести в некотором константном количестве виджетов
И у них уже менять содержимое.
Повторю главный вопрос этого сообщения: с какого рода документами ведется работа? почему требуется создавать такое большое количество виджетов?
0
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 13:52  [ТС] 23
Цитата Сообщение от Kojt Посмотреть сообщение
А с какого рода документами ведется работа? почему требуется создавать такое большое количество виджетов?

Т.е. получается что после запуска программы пользователь может выполнять какие-то действия с пусты (созданным по умолчанию) документом, для этого и создаются начальные виджеты.
В процессе работы пользователь может открыть какой-то другой документ, для отображения которого потребуется другое количество виджетов.
И из-за этого и возникает вопрос
Я правильно понял?

Можно подумать о том, чтобы отображение документа свести в некотором константном количестве виджетов
И у них уже менять содержимое.
Повторю главный вопрос этого сообщения: с какого рода документами ведется работа? почему требуется создавать такое большое количество виджетов?
да,вы всё правильно поняли.Программа запускается и там уже что-то отрисовано и можно там заполнять эти строки и ещё кучу всего с ними делать.Пользователь может открыть новый документ и нужно будет отрисовать недостающие виджеты.
Хотяяя.Можно ведь отдельно создать этот открытый документ.Всё равно mdi будет...
Константно не получится - документы разные,внутри могут быть строки,а могут и не быть.
это документ с геофизической информацией.Там строки, которые разбиваются на разные куски.Там их не нужно именно 100.Это я их сделала - чтобы точно хватило(о контейнере не подумала).Вообще, чтобы для всего документа создать мне нужно max 500 своих виджетов.Вот для первой вкладки - часть информации из файла- нужно min 23 а max 35 виджетов (в зависимости от содержимого).min я сразу отрисовываю - потому как это константа, а вот maх разный

ладно.просто сделаю, что если пользователь окрывает документ, то он открывается в новой вкладке.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 13:59 24
А почему бы строки просто не вывести в QListWidget ?
1
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 14:06  [ТС] 25
Цитата Сообщение от Kojt Посмотреть сообщение
А почему бы строки просто не вывести в QListWidget ?
может так и сделаю, когда пойму чем это лучше.Не думала об этом, но теперь подумаю.Спасибо Вам большое за помощь.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 14:13 26
Если смотреть в сторону списков, то лучше эти строки загрузить в контейнер QStringList, его привязать к QStringListModel, а его в свою очередь к QListView
Тогда будет синхронизация с GUI удобная, не надо будет руками создавать элементы списка
1
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 14:16  [ТС] 27
Цитата Сообщение от Kojt Посмотреть сообщение
Если смотреть в сторону списков, то лучше эти строки загрузить в контейнер QStringList, его привязать к QStringListModel, а его в свою очередь к QListView
Тогда будет синхронизация с GUI удобная, не надо будет руками создавать элементы списка
они как раз лежат в QStringList. Спасибо и ещё раз спасибо за помощь. Торт бы Вам испекла.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 14:28 28
Высылайте почтой
Правда риск есть что приедет сухарик
0
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 14:31  [ТС] 29
Цитата Сообщение от Kojt Посмотреть сообщение
Высылайте почтой
Правда риск есть что приедет сухарик
жаль.
если сейчас отправить, то думаю почтой России придёт к марту)
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 14:34 30
Цитата Сообщение от flerris Посмотреть сообщение
если сейчас отправить, то думаю почтой России придёт к марту)
О том и говорю
0
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 14:41  [ТС] 31
Цитата Сообщение от Kojt Посмотреть сообщение
Если смотреть в сторону списков, то лучше эти строки загрузить в контейнер QStringList, его привязать к QStringListModel, а его в свою очередь к QListView
Тогда будет синхронизация с GUI удобная, не надо будет руками создавать элементы списка
мне нужно не просто строку отобразить - мне нужно для неё ещё textedit с частью этой строки и пару кнопок. Наличие одной из кнопок зависит от содержимого строки.Так что QListView не подходит. А вот QListWidget посмотрю.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 14:51 32
Я бы предложил сделать один QlineEdit и две кнопки
При нажатии на элемент списка в lineEdit вставляется необходимая часть
1
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
18.12.2012, 14:55  [ТС] 33
Цитата Сообщение от Kojt Посмотреть сообщение
Я бы предложил сделать один QlineEdit и две кнопки
При нажатии на элемент списка в lineEdit вставляется необходимая часть
я наконец-то Вас поняла. Названия элементов отображаются отдельно, а при выборе выводится информация.Какое отличное решение! Только боюсь начальнику моему не понравится.Попробуем.
0
73 / 69 / 1
Регистрация: 19.05.2010
Сообщений: 167
18.12.2012, 15:00 34
В дополнение к предыдущему, кнопки можно скрывать и показывать методами show и hide
0
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
19.12.2012, 13:51  [ТС] 35
Решилось всё указанием родителя при инициализации виджетов в моём виджете.Нееедеееелею искаала проблему!
0
19.12.2012, 13:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2012, 13:51
Помогаю со студенческими работами здесь

Раздвижение виджетов [Qt/C++]
Приветсвую всех:)! Вот такой у меня возник вопрос: как сделать раздвижение(т.е. с помощью полоски...

Выравнивание виджетов
Добрый день, хотелось бы понять, имеется QTAbWidget, внутри него QHBoxLayout, в него помещаются...

Отображение виджетов
Нужно накидать виджетов на форму, соединив их лейаутами, без дизайнера, не могу понять почему...

Удаление виджетов
Помогите пожалуйста,срочно нужно.В главном окне есть много разных...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru