Не очень понимаю, в чем ошибка кода? Размер полосы прокрутки и ее местоположение, совсем не те, что я задаю вот в этом коде:
/// Создание полосы загрузки файлов
void TLV::createProgressBar()
{
dockProgress = new QDockWidget(this);
dockProgress -> setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);
dockProgress -> setAllowedAreas(Qt::BottomDockWidgetArea);
dockProgress -> setGeometry(x(), height() - 40, width() - 20, 80);
h_layout = new QHBoxLayout(dockWidget);
h_layout -> setSpacing(6);
h_layout -> setMargin(11);
h_layout -> setContentsMargins(0, 0, 0, 0);
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(dockProgress -> sizePolicy().hasHeightForWidth());
progressBar = new QProgressBar(dockProgress);
progressBar -> setSizePolicy(sizePolicy);
progressBar -> setBaseSize(QSize(dockProgress -> width(), 23));
h_layout -> addWidget(progressBar);
//progressBar -> setGeometry(5, 30, dockProgress -> width(), 23);
}
Пример сделан подобно тому, что делал генератор QtDesigner, но данный кусок кода не работает!
а что получается, т.е. чем отличается поведение ожидаесое от реального?
надоело мучиться, поэтому проблему решил следующим образом: отказался от прикрепляемого виджета, вставляю просто полосу прокрутки. А здесь применение компоновщика работает в полной мере!
P.S. тему можно закрыть
закрывать не буду - задача не решена. когда-нибудь к ней вернемся
// Создание полосы загрузки файлов
void TLV::createProgressBar()
{
v_layout = new QVBoxLayout;
dockProgress = new QDockWidget(this);
dockProgress -> setObjectName(QString::fromUtf8("dockProgress"));
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(dockProgress -> sizePolicy().hasHeightForWidth());
dockProgress -> setSizePolicy(sizePolicy);
dockProgress -> setMinimumSize(QSize(50, 150));
dockProgress -> setBaseSize(QSize(300, 150));
QWidget* dockWidgetContents = new QWidget(dockProgress);
QVBoxLayout* v_layout2 = new QVBoxLayout(dockWidgetContents);
v_layout2 -> setContentsMargins(0, 0, 0, 0);
progressBar = new QProgressBar(dockWidgetContents);
progressBar -> setObjectName(QString::fromUtf8("progressBar"));
progressBar -> setMinimumSize(QSize(20, 20));
v_layout2 -> addWidget(progressBar);
dockProgress -> setWidget(dockWidgetContents);
v_layout -> addWidget(dockProgress);
gridLayout -> addLayout(v_layout, 1, 0, 2, 2);
}
А класс TLV, от кого произошел?
и кто такой dockWidget, он где объявлен?
а dockWidget?
Администраторы и модераторы, закройте, пожалуйста, тему - вопрос решен, решение выложено! Недочеты исправлены.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)