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");