Russian Qt Forum

Qt => Общие вопросы => Тема начата: PulSar.CE3194694 от Август 05, 2010, 12:13



Название: [Решено] Динамическое создание переменных
Отправлено: PulSar.CE3194694 от Август 05, 2010, 12:13
Как сделать так, чтобы программа сама создавала переменные? Обычно их программист создает, но в моем случае это не подойдет (или я думаю неправильно).
Пример:
Создал вкладку - QWidget * tab = new QWidget; В самой программе на панельке есть кнопка, при нажатии на которую в окне создается вкладка. Количество вкладок изначально не указано, их может быть очень много (сколько раз нажал - столько и вкладок). В созданную вкладку программа вписывает определенные данные №1. Далее снова нажимаем на кнопку, создается еще одна вкладка, а в ней появляются данные №2 (данные берутся не с потолка, конечно. Я их до нажатия кнопки в диалоге вбиваю). Тем не менее, так не получается. Когда я перелистываю все вкладки, то обнаруживаю, что все данные в них одинаковые - такие же, как последние, которые вбил. В моем понимании это случилось, потому что мы вновь раз за разом создаем одну и туже переменную (виджет) tab, куда последовательно вводим значения. Значит, чтобы в каждой вкладке были разные данные, нужно чтобы создавалась своя переменная (виджет) для каждой вкладки (не tab, а tab_2 например), так ведь? Как это сделать?

Заранее спасибо.


Название: Re: Динамическое создание переменных
Отправлено: lit-uriy от Август 05, 2010, 13:06
заведи себе список (QList) или словарь (QMap) туда и помещай данные.
Полезно посмотреть пример "Калькулятор", в нём много кнопок, а слот обработки нажатия кнопки один на все. Разберись, как там данная ситуация разруливается.


Название: Re: Динамическое создание переменных
Отправлено: lit-uriy от Август 05, 2010, 13:07
>>нужно чтобы создавалась своя переменная
для этого кучу переменных-указателей не надо, надо только кучу объектов QWidget


Название: Re: Динамическое создание переменных
Отправлено: Amigo_sa от Август 05, 2010, 15:37
Значит, чтобы в каждой вкладке были разные данные, нужно чтобы создавалась своя переменная (виджет) для каждой вкладки (не tab, а tab_2 например), так ведь? Как это сделать?
Нарисуйте в дизайнере формочку - содержимое таба, сохраните как класс в вашем приложении и создавайте динамически сколько угодно. Каждый раз вам нужно будет заполнить поля формы, и поместить форму внутрь таба. Чтобы обращаться удобно к каждому табу - все созданные формы помещайте,к примеру, в список. Ну это уже от логики вашей программы зависит.