Russian Qt Forum
Ноябрь 26, 2024, 06:50
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar (Прочитано 2637 раз)
Владислав
Гость
Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
:
Май 23, 2013, 14:20 »
Здравствуйте!
В сеттеры QMetaType::QWidgetStar и QMetaType::QObjectStar передаются неверные указатели!
Проверял так:
class CGui : public QObject
{
Q_OBJECT
Q_PROPERTY(QWidget* from1 READ from1 WRITE setfrom1)
private:
QWidget * from1wi;
QWidget* from1()
{
return from1wi;
};
void setfrom1(QWidget* _v)
{
from1wi = _v;//
};
...
}
И, если сделать
from1wi = new QWidget;
setProperty( "from1", QVariant( QMetaType::QObjectStar, from1wi ) );
, то в аргумент метода setfrom1 придёт неверный указатель!!!
Проверял на qt 4.6.4
«
Последнее редактирование: Май 23, 2013, 14:22 от Владислав
»
Записан
Bepec
Гость
Re: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
Ответ #1 :
Май 23, 2013, 14:25 »
Вы в QWidget* пытаетесь запихать QObject* тип. Или я неправ?
Записан
Владислав
Гость
Re: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
Ответ #2 :
Май 23, 2013, 23:46 »
это здесь опечатка, я для QWidget* проверял как
class CGui : public QObject
{
Q_OBJECT
Q_PROPERTY(QWidget* from1 READ from1 WRITE setfrom1)
public:
QWidget * from1wi;
private:
QWidget* from1()
{
return from1wi;
};
void setfrom1(QWidget* _v)
{
from1wi = _v;//
};
};
Посылаем
CGui cgi;
cgi.from1wi = new QWidget;
cgi.setProperty( "from1", QVariant( QMetaType::QWidgetStar, cgi.from1wi ) );
Ещё раз проверил, не поленился - в setfrom1 неверный указатель идёт!!!
«
Последнее редактирование: Май 23, 2013, 23:58 от Владислав
»
Записан
Bepec
Гость
Re: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
Ответ #3 :
Май 24, 2013, 07:11 »
В душе не чаю что там происходит
Просто записывайте и считывайте long.
Записан
Serr500
Гость
Re: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
Ответ #4 :
Май 24, 2013, 08:53 »
Цитировать
QVariant::QVariant ( int typeOrUserType, const void * copy )
Constructs variant of type typeOrUserType, and initializes with copy if copy is not 0.
Note that you have to pass the address of the variable you want stored.
Usually,
you never have to use this constructor, use QVariant::fromValue() instead
to construct variants from the pointer types represented by QMetaType::VoidStar, QMetaType::QObjectStar and QMetaType::QWidgetStar.
See also QVariant::fromValue() and Type.
Записан
Владислав
Гость
Re: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
«
Ответ #5 :
Май 24, 2013, 09:55 »
Благодарю вас за ответы, а Serr500 отдельное спасибо!
CGui cgi;
cgi.from1wi = new QWidget;
//cgi.setProperty( "from1", QVariant( QMetaType::QWidgetStar, cgi.from1wi ) );
cgi.setProperty( "from1", QVariant::fromValue( cgi.from1wi ) );
«
Последнее редактирование: Май 24, 2013, 10:02 от Владислав
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...