LINUX.ORG.RU

Делегирование поведения виджетов в qtdesinger'е

 custom widget, ,


0

1

Создал виджет(frame на котором label и lineEdit)
Но хотелось бы редактировать label и lineEdit из редактора форм(как если бы я накидали их на форму отдельно).
В общем, как правильно делегировать эти возможности редактирования?

★★★★★
Ответ на: комментарий от AF

Я создал плагин со своим виджетом, как уже описал раньше. Думал, что возможности отредактировать его через редактор форм.(например двойным кликом по области с label'ом(который на самом деле является частью моего виджета) начинается его редактирование и т.д.
Как мне делегировать эти возможности редактирования моему виджету?

deterok ★★★★★
() автор топика
Ответ на: комментарий от zJes

isContainer теперь возвращает true, но проблемы это не решило.

deterok ★★★★★
() автор топика
Ответ на: комментарий от AF

Прочитал, посмотрел несколько примеров и непонял толком как это провернуть с моими виджетами.
Если не сложно, кинь ссыль на какой-нибудь виджет совмещающей в себе например frame и spinBox.

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Извини, с QDesignerPropertySheetExtension похоже, был перебор. Это тяжелая артилерия. Вот тебе пример по-проще

class MyWidget
{
   Q_PROPERTY(int MaximumValueForMysSpinBox READ mySpinBoxMax WRITE setMySpinBoxMax)

int mySpinBoxMax();
void setMySpinBoxMax(int new_val);

private:
   QSpinBox spinBox;
}
Вот для такого виджета в дизайнере, в табличке свойств, должно появится свойство «MaximumValueForMysSpinBox». При этом mySpinBoxMax и setMySpinBoxMax должны устанваливать соответствующее свойства у spinBox.

Если ты хочешь менять значение спина прямо на форме, то твой плагин должен отдавать дизайнеру не указатель на экземпляр MyWidget, а указатель на специальный враппер. Этот враппер ты должен написать сам! Внутри этого враппера ты должен обрабатывать установку всех своих пропертей. И на основе полученных значений, подготовить XML, который будет сохранен дизайнером для твоего виджета.

AF ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.