Не могу обратится к свойствам объекта |
Здравствуйте, гость ( Вход | Регистрация )
Не могу обратится к свойствам объекта |
heiheshang |
9.4.2009, 9:43
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 9.4.2009 Пользователь №: 666 Спасибо сказали: 0 раз(а) Репутация: 0 |
У объекта есть проперти.
Q_PROPERTY( QStringList DefHeaders READ getDefHeaders WRITE setDefHeaders DESIGNABLE true USER true SCRIPTABLE true) В конструкторе объекта пытаюсь прочитать значения через getDefHeaders, показывает что нет значений, хотя в ui файле все заполнено и в дизайнере все показывается. В чем проблема ? |
|
|
Litkevich Yuriy |
9.4.2009, 9:51
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
heiheshang |
9.4.2009, 12:47
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 9.4.2009 Пользователь №: 666 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не понял что значит до создания формы ? Во время создания формы создается объект, как объект нарисуется если у него свойства не определены ?
|
|
|
igor_bogomolov |
9.4.2009, 13:19
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
В конструкторе объекта пытаюсь прочитать значения через getDefHeaders, показывает что нет значений, хотя в ui файле все заполнено Не понял что значит до создания формы ? Если пытаетесь читать значения getDefHeaders, до вызова setupUi(), то естественно ничего и не прочитаете. В лубом случае ищите ошибки у себя в коде, задача элементарная. Либо, выкладывайте исходники конструктора, гетера и сетера. |
|
|
heiheshang |
9.4.2009, 13:30
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 9.4.2009 Пользователь №: 666 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ну примерно так создаю форму
QFormBuilder fb; QWidget *form = fb.load(d); form->show(); читаю форму из файла. В какой момент происходит заполнение свойств ? |
|
|
Litkevich Yuriy |
9.4.2009, 13:46
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
попробуй перед show(), вызвать:
form->setupUi(); |
|
|
igor_bogomolov |
9.4.2009, 15:23
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
попробуй перед show(), вызвать: Там динамическая закрузка из формы. Повторно делать setupUi не надо. Я предпологаю, что heiheshang просто неправильно свойство запрашивает.form->setupUi(); 2 heiheshang Раз отказываетесь показать свой код, не знаю какие у вас там секреты, предлогаю вам простейший рабочий пример. Разбирайтесь по нему. Раскрывающийся текст
P.S. В данном примере, у меня на форме расположена единственная кнопка, с установленным свойством flat. Это свойство я и запрашиваю. Все работает, никаких проблем не возникает. |
|
|
heiheshang |
9.4.2009, 15:37
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 9.4.2009 Пользователь №: 666 Спасибо сказали: 0 раз(а) Репутация: 0 |
Откуда возмется этот метод ?
Его генерит метакомпилятор , а я динамически создаю форму у меня ui_...h файла нет |
|
|
kwisp |
9.4.2009, 15:41
Сообщение
#9
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
igor_bogomolov,
может вы немного не поняли вопроса. это скорее всего динамическое свойство Цитата button->property("flat").toBool() а heiheshang, пользует другой род свойство с помощью макросов с помощью этого на сколько я понимаю можно менять свойства класса выше по иерархии вот пример из ассистента
Сообщение отредактировал kwisp - 9.4.2009, 15:45 |
|
|
heiheshang |
9.4.2009, 15:44
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 10 Регистрация: 9.4.2009 Пользователь №: 666 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не отказываюсь я показывать.
В конструкторе объекта вызываю
Вот весь код. В вашем примере вы показываете форму , а потом обращаетесь к свойству, а мне надо прочитать свойства и отрисовать в самом объекте. Форма еще не показалась, я только ее генерю.
Причина редактирования: используйте тэг code
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 18:26 |