Wt WDialog контент не заполняет свободную область

Мне нужно показать модальное диалоговое окно с точным содержимым, и я не могу установить высоту содержимого вручную. Это делает прокручиваемую область фиксированной высоты (400), и я не могу расширить содержимое этой области. Читая HTML-код сгенерированной страницы и найдя этот div

<div id="omoz2q6" class="modal-body" style="box-sizing: border-box; position: absolute; width: 900px; left: 0px; height: 541px; top: 49px;"><div id="omoz2q3" style="height:540.0px;">

который отображается в браузере с высотой 400 пикселей.

Вот код диалога:

CHelpDialog::CHelpDialog( Wt::WString title, Wt::WString text )
{
    setWindowTitle( title );

    Wt::WText* helpText = new Wt::WText( text, Wt::XHTMLUnsafeText );
    contents()->addWidget( helpText );

    Wt::WPushButton* okButton = new Wt::WPushButton( L"OK" );
    okButton->clicked().connect( std::bind( [=] () {
        accept();
    } ) );
    footer()->addWidget( okButton );

    setMaximumSize( 900, 650 );
    setMinimumSize( 900, 650 );

    helpText->setHeight( 540 );

    std::cerr << "helpText height : " << helpText->height().value() << std::endl;
    std::cerr << "helpText maxHeight : " << helpText->maximumHeight().value() << std::endl;
    std::cerr << "contents maxHeight : " << contents()->maximumHeight().value() << std::endl;
    std::cerr << "dialog maxHeight : " << maximumHeight().value() << std::endl;
}

И здесь есть скриншот с проблемной областью, выделенной красным.

Знает ли кто-то, почему это так? Я пытался использовать content ()->setHeight( ...), Wt::WScrollArea, но это не помогло.

1 ответ

Решение

Кажется, что вы используете WBootstrapTheme для вашего приложения, и что наборы тем max-height: 400px; для тела диалога. Вы можете переопределить это свойство, используя пользовательскую таблицу стилей:

.my-dialog .modal-body
{
  max-height: none;
}

Включите его в свое приложение и установите свой собственный класс CSS в диалоговом окне:

wApp->useStyleSheet("stylesheet.css");
dialog = new MyDialog();
dialog->addStyleClass("my-dialog");
Другие вопросы по тегам