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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обращение к свойству виджета  (Прочитано 1652 раз)
begin
Гость
« : Сентябрь 28, 2010, 09:49 »

В программе есть окно. В нем добавлены несколько экземпляров различных созданных мной классов. Все созданные классы создавались как подклассы QWidget. Все эти экземпляры объединены в QStackedLayout. В каждом классе есть свойство, называемое stateOfCell. Проблема возникает тогда, когда я пытаюсь проверить значение этого свойства, то есть пишу:
(stackedLayout->currentWidget())->stateOfCell
При этом компилятор выдает ошибку:
‘class QWidget’ has no member named ‘stateOfCell’
Что делаю не так?
Записан
MoPDoBoPoT
Гость
« Ответ #1 : Сентябрь 28, 2010, 10:14 »

stackedLayout->currentWidget() возвращает указатель на объект типа QWidget, который, собственно, не имеет свойства stateOfCell (что ты под этим подразумевал, публичный член класса?).
Можно было бы приводить QWidget через qobject_cast к необходимому классу, но так как у твоих классов базовым является QWidget, а не какой-то твой с соответствующим свойством, то это проблемотично.
Надо все общие свойства для твоих классов выносить в отдельный базовый класс (который будет наследником QWidget). Можно конечно воспользоваться динамическими свойствами QObject (setProperty()/property()), но это костыль, ибо не для этой задачи предназначено.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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