Russian Qt Forum
Май 03, 2024, 11:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Автоматическая генерация содержимого формы  (Прочитано 8587 раз)
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
Гость
« Ответ #1 : Сентябрь 09, 2004, 16:45 »

можно например так

QLabel *p=new QLabel( "One", main );

тоесть сохраняя указатели на эти элементы
Записан
rjaan
Гость
« Ответ #2 : Сентябрь 09, 2004, 17:58 »

Цитата: "Logo"

Получается замечательно, но у меня не хватает ума извлечь данные из какого-либо из этих элементов. Я подозреваю что есть методы контроля виджетов, но не знаю о них ничего.

В общем, подскажите как извлечь данные из элементов из QGrid или как создавать уникальные имена, а то я сосем повис.

Ну на счет ума это не к нам :wink:  А вот по QT:Там идет наследованиеQGrid: public QFrame: public QWidget. Копай в этих двух наследуемых классов. Во первых тебе доступны по public и protection методы QFrame и методы по public QWidget, в том числе переопределенные методы QWidget в QFrame. Так что по идеи ты должен все вытянуть, то что позволяют эти методы в пределах области видимости этих двух наследуемых классов.
В документации все есть... Так что можно такое забубенить... Крутой
Записан
Logo
Гость
« Ответ #3 : Сентябрь 10, 2004, 12:41 »

Цитата: "EugeneVC"
можно например так

QLabel *p=new QLabel( "One", main );

тоесть сохраняя указатели на эти элементы


Да, конечно я так пробовал, но как я могу автоматически создать необходимое количество указателей?

rjaan, я воспользуюсь твоим советом и, затем, покажу что получилось.

Всем спасибо за внимание :roll:
Записан
EugeneVC
Гость
« Ответ #4 : Сентябрь 10, 2004, 15:13 »

Цитата: "Logo"
Цитата: "EugeneVC"
можно например так

QLabel *p=new QLabel( "One", main );

тоесть сохраняя указатели на эти элементы


Да, конечно я так пробовал, но как я могу автоматически создать необходимое количество указателей?
Цитировать


Используя список с указателями, посмотри на QValueList
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.