Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > работа с property [Qt]


Автор: ss 28.3.2017, 15:02
мне нужно вывести все свойства виджета как в дизайнере.
делаю так:

Код

QListView *o = new QListView();
auto metaObject = o->metaObject();

        for(int j = 0; j < metaObject->propertyCount(); ++j)
        {
            if(metaObject->property(j).isDesignable(o) && metaObject->property(j).isWritable())
            {
                {
             qDebug()  <<  metaObject->property(j).name();
                }
            }
        }


вот этот метод metaObject->property(j).isDesignable(o) должен выдавать T - если свойство отображается в дизайнере (дока). но добавляются еще пару лишних свойств например : класс QListView в паренте QWidget добавляются windowTitle,  windowIcon, windowIconText , windowOpacity. 
Как избавиться от этих лишних свойств ?

еще непонятно с таким методом if(metaObject->property(j).isStored(o) == false ) Эта проверка должна , по идее,  выдавать только свойства которые состоят из более простых например Geometry которое состоит из x, y, w, h; но оно не откидывает такие свойства

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)