2013-08-25 6 views
3

Вот мой конструктор:Как получить фиксированную высоту QHBoxLayout?

DiskUsage::DiskUsage() { 
    pathLineEdit = new QLineEdit; 
    generateButton = new QPushButton(tr("Generate")); 

    pathGroupBoxLayout = new QHBoxLayout; 
    pathGroupBoxLayout->addWidget(pathLineEdit); 
    pathGroupBoxLayout->addWidget(generateButton); 

    pathGroupBox = new QGroupBox(tr("Path")); 
    pathGroupBox->setLayout(pathGroupBoxLayout); 

    chartGroupBox = new QGroupBox(tr("Chart")); 

    mainLayout = new QVBoxLayout; 
    mainLayout->addWidget(pathGroupBox); 
    mainLayout->addWidget(chartGroupBox); 

    setLayout(mainLayout); 
} 

Как я могу получить pathGroupBoxLayout (который является QHBoxLayout) фиксированная высота? Я хочу, чтобы при вертикальном изменении окна изменялся только размер chartGroupBox, но не путьGroupBoxLayout.

ответ

3

только что установленный вертикальныйПриложение вашей группыБокс на фиксированный.

вы можете использовать

pathGroupBox->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); 

для больше возможностей и информации проверки this link

+0

Он работает, спасибо! –

0

Не уверен, что я вас правильно понимаю. Кажется, вы немного ошибаетесь. PathGroupBoxLayout - это макет внутри вашего путиGroupBox. Я не регулирую размер вашего путиGroupBox. Вы не можете и не хотите «исправлять» размер вашего путиGroupBoxLayout.

Если вы хотите, чтобы ваш путьGroupBox не изменялся, вы даете ему (а не макет) фиксированный размер. pathGroupBox-> setFixedHeight().

+0

Хорошая идея, но я должен предоставить аргумент для этого метода ... Я хотел бы автоматически сам размер, а затем никогда изменить размер больше. Поэтому я должен предоставить текущий размер setFixedHeight, но когда я использую pathGroupBox-> height(), групповое окно становится огромным. –

Смежные вопросы