У меня есть хороший виджет, который в основном выглядит как диалоговое окно с кучей QSliders на нем. Количество слайдеров варьируется в зависимости от ситуации, когда вызывается диалог (а не фактический QDialog, а только QWidget).Ничего не видно в QScrollArea
Поскольку разное количество слайдеров заставляет окно иметь разные размеры в разное время, теперь я хочу немного почистить детали, ограничив ползунки QScrollArea. Если я правильно понимаю, такая область прокрутки будет отображаться, однако многие слайдеры подходят к ее высоте, и можно было бы прокрутить вниз, чтобы увидеть остальное, если бы было больше.
Во всяком случае, я попробовал (несколько сложнее) процедуру так:
В конструктор пользовательского класса QWidget (m_variableName = переменная член):
CustomScrollBox::CustomScrollBox(QWidget* _parent){
setWindowTitle(...);
...
m_scrollArea = new QScrollArea(this);
m_scrollAreaBox = new QGroupBox(m_scrollArea);
m_layout = new QGridLayout();
m_scrollAreaBox->setLayout(m_layout);
m_scrollArea->setWidget(m_scrollAreaBox);
m_scrollArea->setFixedHeight(250);
m_bottomButton = new QPushButton(this); //probably irrelevant
...
[connect calls, etc.]
}
После конструктора, реал, ситуациями зависимый установка ползунков происходит:
void
CustomScrollBox::SetUpWidgets(){
for([however many sliders the situation calls for]){
CustomSlider* s = new CustomSlider(this, label); //just a QWidget consisting of a
//QSlider and a QLabel to
//the left of it
..
m_layout->addWidget(s, [grid dimensions as needed]);
}
...
[set text on bottom button, etc., and add it as well]
}
Этот процесс не вызывает ничего, чтобы показать на общем диалоге, для неподвижной полосы прокрутки слева кроме. Что, если возможно, является правильным порядком шагов инициализации, чтобы сделать эту работу? Я предполагаю, что я мог бы дать что-то не того родителя или установить макет в самое неподходящее время, но реорганизации, которые я пробовал до сих пор, не сработали ...
Я не знаю, что такое вуду, добавив этот VBoxLayout, но он, похоже, сделал трюк. +1, что, как и другие советы. – nicole