Russian Qt Forum
Июля 01, 2025, 22:08
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ошибка в QT? Ошибка сеттеров для QWidgetStar QObjectStar (Прочитано 2773 раз)
Владислав
Гость
Ошибка в 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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...