Die nächsten zwei Posts enthalten die Testapplicationen.
Es wird ein MainWindow geöffnet, welches beim öffnen die Fenstergröße aus der Registry lesen und anpassen soll.
Beim schließen der Application soll das Programm die aktuelle Fenstergröße in die Registry schreiben.
Das schreiben stellt kein Problem dar, lesen geht hingegen nur, wenn die read-Funktion in der main.cpp aufgerufen wird (im Konstruktor funktionierts nicht).
Programm 1: read-Funktion in main.cpp (funktioniert)
Code: Alles auswählen
//main.cpp
#include <QApplication>
#include "mainwindow.h"
int main (int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainwindow;
mainwindow.show();
QCoreApplication::setOrganizationName("Testsoftware");
QCoreApplication::setOrganizationDomain("testsoftware.com");
QCoreApplication::setApplicationName("test");
mainwindow.readSettings();
return app.exec();
}
Code: Alles auswählen
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "ui_mainwindow.h"
#include <QMainWindow>
class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent=0);
~MainWindow();
void readSettings();
protected:
void writeSettings();
};
#endif //MAINWINDOW_H
Code: Alles auswählen
//mainwindow.cpp
#include "mainwindow.h"
#include <QSettings>
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent){
setupUi(this);
}
void MainWindow::readSettings(){
QSettings settings;
resize(settings.value("MainWindow/Size", sizeHint()).toSize());
}
void MainWindow::writeSettings(){
QSettings settings;
settings.setValue("MainWindow/Size", size());
}
MainWindow::~MainWindow(){
writeSettings();
}
Code: Alles auswählen
/********************************************************************************
** Form generated from reading ui file 'mainwindow.ui'
**
** Created: Tue 10. Mar 22:55:26 2009
** by: Qt User Interface Compiler version 4.5.0
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHeaderView>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(296, 331);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 296, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
Q_UNUSED(MainWindow);
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H