Название: Автоматическая генерация содержимого формы Отправлено: Logo от Сентябрь 09, 2004, 15:38 Работаю над созданием программы, которая генерирует содержание формы на основе конфигурационного файла. Генерирует элементы типа QLineEdit, QCheckBox и т. д. Возникает проблема с генерацией имен для этих элементов. Конечно, можно воспользоваться QPtrList, но в дальнейшем достаточно сложно обслуживать и контролировать эти элементы.
С другой стороны можно воспользоваться методами типа QBoxLayout, QGrid и т. д. Эти вещи позволяют творить дочерние элементы без уникальных имен и указателей на них. Например: QGrid *main = new QGrid( 2 ); //создает в две колонки new QLabel( "One", main ); new QLabel( "Two", main ); new QLabel( "Three", main ); new QLabel( "Four", main ); new QLineEdit( "Five", main ); Получается тема в виде набора элементов расположенных в две колонки. Получается замечательно, но у меня не хватает ума извлечь данные из какого-либо из этих элементов. Я подозреваю что есть методы контроля виджетов, но не знаю о них ничего. В общем, подскажите как извлечь данные из элементов из QGrid или как создавать уникальные имена, а то я сосем повис. Название: Автоматическая генерация содержимого формы Отправлено: EugeneVC от Сентябрь 09, 2004, 16:45 можно например так
QLabel *p=new QLabel( "One", main ); тоесть сохраняя указатели на эти элементы Название: Re: Автоматическая генерация содержимого формы Отправлено: rjaan от Сентябрь 09, 2004, 17:58 Цитата: "Logo" Получается замечательно, но у меня не хватает ума извлечь данные из какого-либо из этих элементов. Я подозреваю что есть методы контроля виджетов, но не знаю о них ничего. В общем, подскажите как извлечь данные из элементов из QGrid или как создавать уникальные имена, а то я сосем повис. Ну на счет ума это не к нам :wink: А вот по QT:Там идет наследованиеQGrid: public QFrame: public QWidget. Копай в этих двух наследуемых классов. Во первых тебе доступны по public и protection методы QFrame и методы по public QWidget, в том числе переопределенные методы QWidget в QFrame. Так что по идеи ты должен все вытянуть, то что позволяют эти методы в пределах области видимости этих двух наследуемых классов. В документации все есть... Так что можно такое забубенить... 8) Название: Автоматическая генерация содержимого формы Отправлено: Logo от Сентябрь 10, 2004, 12:41 Цитата: "EugeneVC" можно например так QLabel *p=new QLabel( "One", main ); тоесть сохраняя указатели на эти элементы Да, конечно я так пробовал, но как я могу автоматически создать необходимое количество указателей? rjaan, я воспользуюсь твоим советом и, затем, покажу что получилось. Всем спасибо за внимание :roll: Название: Автоматическая генерация содержимого формы Отправлено: EugeneVC от Сентябрь 10, 2004, 15:13 Цитата: "Logo" Цитата: "EugeneVC" можно например так QLabel *p=new QLabel( "One", main ); тоесть сохраняя указатели на эти элементы Да, конечно я так пробовал, но как я могу автоматически создать необходимое количество указателей? Цитировать Используя список с указателями, посмотри на QValueList |