juce viewport使用

一、設置內容組件
void PropertyPanel::init()
{
    messageWhenEmpty = TRANS("(nothing selected)");
 
    addAndMakeVisible (viewport);
    viewport.setViewedComponent (propertyHolderComponent = new PropertyHolderComponent());
    viewport.setFocusContainer (true);
}
二、設置大小
void PropertyPanel::resized()
{
    viewport.setBounds (getLocalBounds());
    updatePropHolderLayout();
}
三、佈局內容。
void PropertyPanel::updatePropHolderLayout() const
{
    const int maxWidth = viewport.getMaximumVisibleWidth();
    propertyHolderComponent->updateLayout (maxWidth);
 
    const int newMaxWidth = viewport.getMaximumVisibleWidth();
    if (maxWidth != newMaxWidth)
    {
        // need to do this twice because of scrollbars changing the size, etc.
        propertyHolderComponent->updateLayout (newMaxWidth);
    }
}
 

 

 

具體原理仍是沒如何弄明白,應當是監聽了子控件的大小變化。
相關文章
相關標籤/搜索