QInputDialog setGeometry: Unable to set geometry 问题
文章目录
-
- I - 问题背景
- II - 解决办法
- III - 参考链接
I - 问题背景
创建了一个 QMainWindow 并在上边创建了布局,尝试调用 QInputDialog 的 getInt 静态方法,结果运行时出现了以下警告
tui
QWindowsWindow::setGeometry: Unable to set geometry 120x30+860+477 (frame: 136x69+852+446) on QWidget/"QInputDialogClassWindow"
on "\\.\DISPLAY1". Resulting geometry: 122x108+860+477 (frame: 138x147+852+446) margins: 8 , 31, 8, 8 minisize: 122x108 maximum size
524287x108 MINMAXINFO maxSize=0,0 maxpos=0,0 mintrack=138,147 maxtrack=524303,147)
我这里的代码是
cpp
int defaultValue(1), minimumVal(0), maximumVal(ui->textEdit()->document()->blockCount()), step(1);
bool ok(false);
int line = QInputDialg::getInt(this, tr("Application Name"), tr("Input Name"), defaultValue, minimumVal, maximumVal, step, &ok);
网上参考了很多链接都没办法解决问题
比如 new 出来,父控件设置为 this
,设置最小尺寸 setMinimumSize 等等的
II - 解决办法
最终找到了解决方法 ,设置 Qt::Flags 为以下内容
cpp
(Qt::WindowCloseButtonHint|Qt::MSWindowsFixedSizeDialogHint)
完整代码如下
cpp
int defaultValue(1), minimumVal(0), maximumVal(ui->textEdit()->document()->blockCount()), step(1);
bool ok(false);
int line = QInputDialog::getInt(this, tr("Application Name"), tr("Input Name"), defaultValue, minimumVal, maximumVal, step, &ok,
Qt::WindowCloseButtonHint|Qt::MSWindowsFixedSizeDialogHint);
III - 参考链接
https://blog.csdn.net/koenlee/article/details/85554499
https://bugreports.qt.io/browse/QTBUG-73258
https://stackoverflow.com/questions/54307407/why-am-i-getting-qwindowswindowsetgeometry-unable-to-set-geometry-warning-wit