Мой стиль программирования возможно и неправильный,может я не понял понял что-то.
Не хотел наехать на стиль программирования... Извиняй )))
То есть мне надо управлять шириной содержащегося на нем виджета(а точнее виджет лежит на лэйауте, а лэйаут соответственно на dockwidget). Так чью ширину мне изменять?
Насколько я понял выше, то надо было установить желаемую ширину/высоту для объекта класса QDockWidget. Следовательно, ему и надо задавать. Создаешь класс-наследник, в котором определяешь 2 переменные-члена:
int m_iPreferedWidth; //Желаемая ширина
int m_PreferedHeight; //Желаемая высота
Создаешь, соответственно, 4 функции-члена:
void setPreferedWidth(const int iWidth) const; //Работает для вертикального положения
int preferedWidth(void) const;
void setPreferedHeight(const int iHieght) const; //Работает для горизонтального положения
int preferedHeight(void) const;
Переопределяешь функцию sizeHint():
QSize sizeHint(void) const;
Причем она должна возвращать разное значение QSize для разной ориентации QDockWidget. Написал бы и код, но я пишу по памяти, Assistant Qt4.x.x. нету рядом, т.к. работаю с Qt 3.х.х.
Таком метод мне подсказали сами Trolltech, когда я им писал вопрос насчет желаемой высоты QDockWidget. Так что... Использовать тебе его или нет решать тебе. ))))
Насчет входа и выхода(инкапсуляции то бишь) действительно - коробочка меняй ширину, а виджеты внутри нее сами в соответствии с ней подстроятся.
Все верно, так и получится ))))
В дизайнере пробовал менять ширину. Не смотря на это компилируется все это хозяйство в окошко с фиксированной шириной. Похоже на баг, хотя точно не уверен.
Насчет этого не знаю, не пробовал и попробовать негде, разве кто еще это сделает )))