【问题标题】:QInputDialog doesn't show title and border in android applicationQInputDialog 在 android 应用程序中不显示标题和边框
【发布时间】:2014-04-13 11:40:41
【问题描述】:

我写了一个简单的槽函数来显示一个输入对话框。但它在android模拟器中显示如下。代码是:

void PriceChecker::showSettings()
{
    QInputDialog UrlDialog;
    QString baseUrl = UrlDialog.getText(m_pMainWidget, "Settings", "Enter BaseURL");    
}

有人能说出为什么会这样吗?

【问题讨论】:

    标签: android qt qt-necessitas


    【解决方案1】:

    它对所有正在显示的基于 QDialog 的小部件执行此操作。他们从来没有边框和标题栏...除了 QMessageBox。

    • 创建并显示QMessageBox -> 显示标题和边框
    • 创建并显示QInputDialog -> 这显示没有标题和边框
    • 创建并显示QDialog -> 这显示没有标题和边框

    我通过在QApplication::notify 中捕获QEvent::ShowToParent 事件并使要显示的对话框大小适合主框架大小来解决此问题,然后它会覆盖整个屏幕。至少控件不与主框架控件混用....

    注意:我提交了这个Qtbug:https://bugreports.qt-project.org/browse/QTBUG-39623

    【讨论】:

      【解决方案2】:

      ...要么是我的宿主应用程序的自定义样式的问题(因为我正在做一个插件),要么它在 windows 上是一样的;

      无论如何,它可以通过显式设置窗口标志来轻松解决,例如:

      QInputDialog d;
      Qt::WindowFlags f = d.windowFlags();
      f |= Qt::Dialog;
      d.setWindowFlags(f);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 2019-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多