[PyQt] Storing a QFlags in a QSettings

Jerome Vuarand jerome.vuarand at gmail.com
Tue May 26 14:29:11 BST 2009


Hi,

I'm currently trying to modify an existing PyQt app so that it stores
the windowState of its main window when it exits. The information is
retrieved with the QWidget::windowState method, and restored with the
QWidget::setWindowState method. The state itself it an object of type
WindowStates, which is a QFlags.

When trying to save it with QSettings::setValue, I get the following
errors. When I try:

    settings.setValue("windowstate", self.windowState())

I get:

    TypeError: argument 2 of QSettings.setValue() has an invalid type

When I try:

    settings.setValue("windowstate", QtCore.QVariant(self.windowState()))

I get:

    QVariant::save: unable to save type 262.

Finally I realized there is a __int__ method in the WindowStates
object, which I guess is mapped to the C++ "operator int" method.
However, while I can save that value, I cannot rebuild the
WindowStates object from an int. There is no constructor taking an int
as parameter in QFlags.

So what is the correct way to save and restore a windowState ?

Note that I'm a noob at both Qt and Python.

Jérôme.



More information about the PyQt mailing list