crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Property browser
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Admin Дата 26.11.2007, 14:08
  Тему разделил, сообщения перенесены в новую тему: Property Browser (PropertySheet)
Admin Дата 24.11.2007, 19:46
  Выложил: Property browser
Admin Дата 24.11.2007, 19:08
  спасибо, выложу...
ViGOur Дата 24.11.2007, 18:42
 
Цитата(Admin @ 12.11.2007, 14:45) *
p.s. если решишь выложить, то авторство укажи. :)
;)
0xF Дата 24.11.2007, 18:14
 
// ** Пример использования
class cSomeClass {
private:

    float         fProperty;
    int           iProperty;
    float         vProperty[2]; // двухмерный вектор
    byte          cProperty[4]; // цвет
    std::string   sProperty;
    bool          bProperty;

    ...

public:
    ...
    // ** Основной порок - кривоватая система для описания свойств объекта, не было времени сделать что-нить более толковое :)
    QPropertyGrid::sPropertyDef* CreatePropertyDef( void ) {
         QPropertyGrid::sPropertyDef *def = new QPropertyGrid::sPropertyDef[ 7 ];

         def[0].name   = "Float property";
         def[0].type     = QPropertyGrid::T_FLOAT;
         def[0].pointer = &fProperty;
         def[0].minf     = -10.0f;
         def[0].maxf    = 10.0f;

         def[1].name   = "Int property";
         def[1].type     = QPropertyGrid::T_INT;
         def[1].pointer = &iProperty;

         def[2].name   = "2D Vector";
         def[2].type     = QPropertyGrid::T_VECTOR2;
         def[2].pointer = vProperty;
         memcpy( def[2].captions.xCaption, "min", 4 );   // ** Это вообще жуть :)
         memcpy( def[2].captions.yCaption, "max", 4 );

         def[3].name   = "Color property";
         def[3].type     = QPropertyGrid::T_COLOR;
         def[3].pointer = cProperty;

         def[4].name   = "String property";
         def[4].type     = QPropertyGrid::T_STRING;
         def[4].pointer = &sProperty;

         def[5].name   = "Bool property";
         def[5].type     = QPropertyGrid::T_BOOL;
         def[5].pointer = &bProperty;

         def[6].type     = QPropertyGrid::T_TOTAL; // Конец описания
    }

    ...
};

// ** Собственно связывание QPropertyGrid с объектом
QPropertyGrid:::sPropertyDef *def = someClassObject->CreatePropertyDef();
propertyGrid->SetObject( def );

delete[]def;


Код
Прикрепленный файл  QPropertyGrid.zip ( 8.78 килобайт ) Кол-во скачиваний: 916
ViGOur Дата 24.11.2007, 17:39
  А качестве аттача сюда можно выложить... :)
0xF Дата 24.11.2007, 16:12
  Давненько меня тут не было :)

Вобщем сделал я Property Grid, заточенный под мои нужды, правда, немного порочный :) Если надо, могу выложить код, только куда?
ViGOur Дата 12.11.2007, 16:34
 
Цитата(Гость @ 12.11.2007, 15:58) *
ViGOur
>>Чтобы не рисовались линии, тебе нужно переопределить:
>>void QTreeView::drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const;

Вот ещё метод :) http://doc.trolltech.com/4.3/stylesheet-examples.html в самом конце
Мда, а о таблицах стилей я не подумал, хотя перевожу их... :)
0xF Дата 12.11.2007, 16:02
  >>Если доделаешь, то может выложишь исходники? Я их на сайт повешу.
ОК :) У меня уже есть рабочий вариант, но я ещё хочу немного доработать функционал :)
Гость Дата 12.11.2007, 15:58
  ViGOur
>>Чтобы не рисовались линии, тебе нужно переопределить:
>>void QTreeView::drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const;

Вот ещё метод :) http://doc.trolltech.com/4.3/stylesheet-examples.html в самом конце
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.7.2025, 21:09