1

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

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

申请窗口

当对话框出现在应用程序窗口中时

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

4

2 回答 2

0

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

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

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

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

于 2014-06-13T09:30:12.637 回答
0

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

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

QInputDialog d;
Qt::WindowFlags f = d.windowFlags();
f |= Qt::Dialog;
d.setWindowFlags(f);
于 2015-06-25T17:59:42.540 回答