<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<FONT face="Arial, sans-serif"><FONT size=2>Thanks to David's hint (see), I've detected the cause of the “.cascadeSubWindows” oversizing of child sub-windows, and developed a work-around as here follows. </FONT></FONT><BR>
<FONT face="Arial, sans-serif"><FONT size=2>Problem had probably to do with MDI window size taken by PyQt4 in place of the Central Widget “mdiArea”.</FONT></FONT><BR>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Arial, sans-serif"><FONT size=2>See you, next time.</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2><FONT face="Arial, sans-serif"><FONT size=2>- P.M</FONT></FONT>.</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR> </P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>def _onCascade(self): #<-</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>"on Cascade command" #standard "Documentation String"</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#-- - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2># Prologue</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>def cascadeFit(self): #<-"Fit" function definition</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#--Register</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgL=[] #List</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgN=0 #Integer</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgGp=None #General purpose</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#--Action</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgL=self.mdiArea.subWindowList() #--get child-List,</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgN=len(rgL) # and child-count</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>if (rgN<1): return(rgN) #no sub-window: exit</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgW = self.mdiArea.width() #--get actually available room</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgH = self.mdiArea.height()</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#--compute cascade offset dimensions</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>if (rgN<2): #<-less than 2 sub-windows: no offset</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCx=0</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCy=0</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>elif (rgN>1): #<-more than 1 sub-window: get offset</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCx=rgL[1].x()</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCy=rgL[1].y()</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#></FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCx=rgCx*(rgN-1) #compute total cascade offset</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgCy=rgCy*(rgN-1)</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#<-loop resize all sub-windows, so to fit them into available room</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>for rgGp in rgL:</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgGp.resize(rgW-rgCx, rgH-rgCy)</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#></FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>return(rgN)</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#cascadeFit></FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#-- - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=- - - - -=</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2># Action</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#--call "cascade" method, as-is (rudimentary)</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>self.mdiArea.cascadeSubWindows()</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><BR><BR></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>rgN=cascadeFit(self) #"fit" all sub-windows into available room</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>return</FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=left><FONT face="Courier New, monospace"><FONT size=2>#_onCascade></FONT></FONT></P>
<P style="PAGE-BREAK-BEFORE: auto; PAGE-BREAK-AFTER: auto; MARGIN-BOTTOM: 0.25cm" align=center><BR><BR></P> </body>
</html>