为什么?
setGeometry: Unable to set geometry 22x22+320+145 on QWidgetWindow/'WidgetClassWindow'. Resulting geometry: 116x22+320+145 (frame: 8, 30, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 22x22, maximum size: 16777215x16777215).
该项目是:
project.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled5
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include <QVBoxLayout>
Widget::Widget(QWidget *parent) :
QWidget(parent)
{
QVBoxLayout *vLayout = new QVBoxLayout(this);
}
Widget::~Widget()
{
}
的main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
添加setGeometry(0,0,400,300);在Widget构造函数中删除该问题。但是窗口不会精美地定位在屏幕的中央。
答案 0 :(得分:15)
当小部件的大小非常小时,会发生此警告(至少对我而言)。
为小部件设置最小尺寸(因此它将自动定位),例如:
// Widget constructor
QVBoxLayout* vLayout = new QVBoxLayout();
setLayout(vLayout);
setMinimumSize(200,200);
您还应将您的小部件设为QMainWindow
,但仍可使用。
答案 1 :(得分:0)
尝试使用:ajustSize()
看起来是个问题: Why am I getting QWindowsWindow::setGeometry: Unable to set geometry warning with Qt 5.12.0
可能的解决方案: Qt Unable to set geometry