我写了一个简单的槽函数来显示一个输入对话框。但它在android模拟器中显示如下。代码是:
void PriceChecker::showSettings()
{
QInputDialog UrlDialog;
QString baseUrl = UrlDialog.getText(m_pMainWidget, "Settings", "Enter BaseURL");
}
有人能说出为什么会这样吗?
我写了一个简单的槽函数来显示一个输入对话框。但它在android模拟器中显示如下。代码是:
void PriceChecker::showSettings()
{
QInputDialog UrlDialog;
QString baseUrl = UrlDialog.getText(m_pMainWidget, "Settings", "Enter BaseURL");
}
有人能说出为什么会这样吗?
它对所有显示的基于 QDialog 的小部件执行此操作。他们从来没有边框也没有标题栏……除了 QMessageBox。
QMessageBox
-> 这显示带有标题和边框QInputDialog
-> 这显示没有标题和边框QDialog
-> 这显示没有标题和边框QEvent::ShowToParent
我通过捕获事件QApplication::notify
并使要显示的对话框大小适合主框架大小来解决该问题,然后它会覆盖整个屏幕。至少控件不与主框架控件混用....
注意:我提交了这个 Qtbug:https ://bugreports.qt-project.org/browse/QTBUG-39623
...要么是我的主机应用程序的自定义样式的问题(因为我正在做一个插件),要么在 Windows 上是一样的;
无论如何,它可以通过显式设置窗口标志来轻松解决,例如:
QInputDialog d;
Qt::WindowFlags f = d.windowFlags();
f |= Qt::Dialog;
d.setWindowFlags(f);