Wt WDialog 内容未填充空闲区域
Wt WDialog content doesn't fill free area
我需要显示一个包含准确内容的模态对话框,但我无法手动设置内容的高度。它使可滚动区域具有固定高度 (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;">
在浏览器中显示高度为 400px。
这是对话框的代码:
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;
}
这里有一张截图,其中有问题的区域被红色高亮显示。
smb知道为什么会这样显示吗?
我尝试使用 contents()->setHeight( ... ), Wt::WScrollArea 但它没有帮助。
您的应用程序似乎正在使用 WBootstrapTheme
,并且该主题为对话框主体设置了 max-height: 400px;
。
您可以使用自定义样式表覆盖 属性:
.my-dialog .modal-body
{
max-height: none;
}
将其包含到您的应用程序中并将您的自定义 css class 设置到对话框:
wApp->useStyleSheet("stylesheet.css");
dialog = new MyDialog();
dialog->addStyleClass("my-dialog");
我需要显示一个包含准确内容的模态对话框,但我无法手动设置内容的高度。它使可滚动区域具有固定高度 (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;">
在浏览器中显示高度为 400px。
这是对话框的代码:
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;
}
这里有一张截图,其中有问题的区域被红色高亮显示。
smb知道为什么会这样显示吗? 我尝试使用 contents()->setHeight( ... ), Wt::WScrollArea 但它没有帮助。
您的应用程序似乎正在使用 WBootstrapTheme
,并且该主题为对话框主体设置了 max-height: 400px;
。
您可以使用自定义样式表覆盖 属性:
.my-dialog .modal-body
{
max-height: none;
}
将其包含到您的应用程序中并将您的自定义 css class 设置到对话框:
wApp->useStyleSheet("stylesheet.css");
dialog = new MyDialog();
dialog->addStyleClass("my-dialog");