Название: [Решено] Динамическое создание переменных Отправлено: 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 например), так ведь? Как это сделать? Нарисуйте в дизайнере формочку - содержимое таба, сохраните как класс в вашем приложении и создавайте динамически сколько угодно. Каждый раз вам нужно будет заполнить поля формы, и поместить форму внутрь таба. Чтобы обращаться удобно к каждому табу - все созданные формы помещайте,к примеру, в список. Ну это уже от логики вашей программы зависит. |