[PyQt] Styling an QMdiArea widget

Sarah Mount mount.sarah at gmail.com
Sun Apr 17 14:17:51 BST 2011


Hi everyone,

I have a main application window that I want to style with a style
sheet like this:


#mywidget {
    background : white;
    background-image : url(:/images/images/EfDChancoComposite.jpg);
    background-repeat : no-repeat;
}


When the project is created, the widget that I want to apply the CSS
to becomes an MDI area, so presumably the styling now needs to apply
to the MDI area, not the original widget, like this:


class MyMainWindow(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        self.mdi = QtGui.QMdiArea()
        self.mdi.setStyleSheet("QMdiArea { background : white;
background-image : url(:/images/images/EfDChancoComposite.jpg);
background-repeat : no-repeat; }")
        self.setCentralWidget(self.mdi)


...but that doesn't work! Is this because QMdiArea widgets can't be
styled with CSS, and if so, is it possible to use a QBrush to do this
(including the no-repeat directive)? Or, have I just misunderstood the
API?


Many thanks,

Sarah

-- 
Sarah Mount, Senior Lecturer, University of Wolverhampton
website:  http://www.snim2.org/
twitter: @snim2


More information about the PyQt mailing list