Reputation: 6161
Why?
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).
The project is:
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();
}
Adding setGeometry(0, 0, 400, 300); in Widget constructor removes the issue. But the window will not be positioned beautifully at the center of the screen.
Upvotes: 16
Views: 36437
Reputation: 41
Try to use adjustSize()
Looks to be the problem: Why am I getting QWindowsWindow::setGeometry: Unable to set geometry warning with Qt 5.12.0
A possible solution: Qt Unable to set geometry
Upvotes: 1
Reputation: 41765
This warning happens (at least to me) when the size of the widget results to be very small.
Set a minimum size for your widget (so it will be automatically positioned), like:
// Widget constructor
QVBoxLayout* vLayout = new QVBoxLayout();
setLayout(vLayout);
setMinimumSize(200,200);
You should also parent your widget to a QMainWindow
, but will still work.
Upvotes: 35