Ich programmiere gerade eine Mdi Anwendung.
Ich bin dabei mit der Klasse QSettings rum zu spielen, also das speichern der Fenster Einstellungen(Größe und Position).
Es soll also die Position und Größe des Hauptfenster's und aller Unterfenster über ein QSettings Objekt gespeichert werden.
Bei meinem Hauptfenster klappt das, allerdings nicht bei meinem Unterfenster(Reisehelfer genannt).
Gibt es eine Gesamtübersicht aller Signale?
Vielleicht habe ich einfach nur die falschen Signale getestet.
Ich will dass das Unterfenster beim schliessen seine Größe und Position speichert über QSettings genau wie beim Hauptfenster.
Was mache ich falsch?
Kann mir einer erklären, was Zeile 23 und 24 in hauptfenster.py bewirken?
Hier ein Ausschnitt meiner aktuellen Sourcen,
Hauptfenster,
Code: Alles auswählen
#!/usr/bin/env python
#
#hauptfenster.py
#
import sys
from PyQt4 import QtCore, QtGui
from reisehelfer import *
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.workspace = QtGui.QWorkspace()
self.setCentralWidget(self.workspace)
self.connect(self.workspace, QtCore.SIGNAL("windowActivated(QWidget *)"),
self.updateMenus)
self.windowMapper = QtCore.QSignalMapper(self)
self.connect(self.windowMapper, QtCore.SIGNAL("mapped(QWidget *)"),
self.workspace, QtCore.SLOT("setActiveWindow(QWidget *)"))
self.createActions()
self.createMenus()
self.createStatusBar()
self.updateMenus()
self.readSettings()
self.setWindowTitle(self.tr("DSA 4 Meisterhilfe"))
...
def updateMenus(self):
pass
def readSettings(self):
settings = QtCore.QSettings("SettingHauptFenster", "DSA 4 Meisterhilfe")
pos = settings.value("pos", QtCore.QVariant(QtCore.QPoint(200, 800))).toPoint()
size = settings.value("size", QtCore.QVariant(QtCore.QSize(1200, 800))).toSize()
self.move(pos)
self.resize(size)
def writeSettings(self):
settings = QtCore.QSettings("SettingHauptFenster", "DSA 4 Meisterhilfe")
settings.setValue("pos", QtCore.QVariant(self.pos()))
settings.setValue("size", QtCore.QVariant(self.size()))
...
Code: Alles auswählen
#!/usr/bin/env python
#
#reisehelfer.py
#
import sys
from PyQt4 import QtCore, QtGui
class ReiseHelfer(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.connect(self, QtCore.SIGNAL("close(QWidget *)"), self.writeSettings)
self.setWindowTitle(self.tr("Reisehelfer"))
self.readSettings()
...
def readSettings(self):
settings = QtCore.QSettings("SettingUnterFenster", "DSA 4 Meisterhilfe")
pos = settings.value("pos", QtCore.QVariant(QtCore.QPoint(50, 50))).toPoint()
size = settings.value("size", QtCore.QVariant(QtCore.QSize(1100, 700))).toSize()
self.move(pos)
self.resize(size)
def writeSettings(self):
settings = QtCore.QSettings("SettingUnterFenster", "DSA 4 Meisterhilfe")
settings.setValue("pos", QtCore.QVariant(self.pos()))
settings.setValue("size", QtCore.QVariant(self.size()))
...