【问题标题】:Wt WDialog content doesn't fill free areaWt WDialog 内容未填充空闲区域
【发布时间】:2015-01-22 15:08:20
【问题描述】:

我需要显示一个包含确切内容的模式对话框,但我无法手动设置内容的高度。它使可滚动区域具有固定高度(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 但没有帮助。

【问题讨论】:

    标签: c++ wt


    【解决方案1】:

    您的应用程序似乎正在使用WBootstrapTheme,并且该主题为对话框主体设置了max-height: 400px;。 您可以使用自定义样式表覆盖该属性:

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

    将它包含到您的应用中并将您的自定义 css 类设置为对话框:

    wApp->useStyleSheet("stylesheet.css");
    dialog = new MyDialog();
    dialog->addStyleClass("my-dialog");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2022-06-21
      • 2020-11-25
      相关资源
      最近更新 更多