Die Application wird gestartet, verschoben und angezeigt.
Befinden sich die Koordinaten allerdings ausserhalb des 1. Bildschirms, wird das Fenster nicht angezeigt.
Setze ich die Windowflag nicht, funktioniert alles prima.
Vereinfacht sieht das ganze so aus:
gui.h:
Code: Alles auswählen
#ifndef GUI_H
#define GUI_H
#include <QtGui/QCloseEvent>
#include <QtGui/QGridLayout>
#include <QtGui/QWidget>
class Gui : public QWidget
{
Q_OBJECT
public:
Gui();
private:
QGridLayout *gui_layout;
protected:
void closeEvent(QCloseEvent *e);
};
#endif
Code: Alles auswählen
#include <QtGui/QApplication>
#include <QtCore/QDir>
#include <QtCore/QSettings>
#include "gui.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Gui mw;
mw.setWindowFlags(Qt::Tool);
mw.show();
return app.exec();
}
Gui::Gui()
{
gui_layout = new QGridLayout;
QSettings settings(QApplication::applicationDirPath()+QDir::separator()+"Setup.ini", QSettings::IniFormat, this);
setLayout(gui_layout);
move(settings.value("PosX").toInt(), settings.value("PosY").toInt());
}
void Gui::closeEvent(QCloseEvent *e)
{
QSettings settings(QApplication::applicationDirPath()+QDir::separator()+"Setup.ini", QSettings::IniFormat, this);
settings.setValue("PosX", x());
settings.setValue("PosY", y());
e->accept();
}