<div dir="ltr">I solved the problem with someone's help.  i ended up calling setSizes outside the __init__ function and also calling app.processEvents() before calling QSplitter.sizes()<br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 1, 2015 at 5:19 PM, inhahe <span dir="ltr"><<a href="mailto:inhahe@gmail.com" target="_blank">inhahe@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">i've created a minimal example to show the issues I'm having.<div>here's the code: <a href="http://pastebin.com/RzEtFKDW" target="_blank">http://pastebin.com/RzEtFKDW</a></div><div>here's the output I get:</div><div><span class=""><div><br></div><div>self.width before setsizes: 640</div><div>nicks & text widths before setsizes: 100 100</div><div>splitter width before setsizes: 100</div><div>splitter.geometry.width before setsizes: 100</div><div>self.width after setsizes: 640</div><div>nicks & text widths after setsizes: 47 47</div><div>splitter width after setsizes: 100</div><div>splitter.geometry.width after setsizes: 100</div></span><div>sizes from channelwindow: [47, 47]</div><div>sizes from main: [47, 47]</div><div>sizes from keypress: [1208, 700]</div></div><div><div><br></div><div>nothing I get from QWidget.width() and QSplitter.sizes() in various conditions is consistent with anything else.</div><div>- the qsplitter's widgets take up all the horizontal space in the window, and the window's width() returns 640, yet the sum of the qsplitter's widgets' sizes' widths is 200</div><div>- after calling setSizes(), the widgets' width() calls return 47 and 47, which is wrong because a) the total doesn't add up to the total width they actually take (which is either 640 or 1208+700, depending on what result you believe), b) they're both the same (when the splitter handle is NOT in the middle of the page), and d) they're even less than the total was before calling setSizes() (while the total area taken by the left and right widgets doesn't change)</div><div>- when calling QSplitter.sizes() from the keypress event in the bottom QTextEdit, a) it returns a different result from when I call it from elsewhere, and b) those results are more believable but they don't agree with the result from self.width()  (self.width() is the width of the whole window)</div><div>it might seem as though this is because app.exec_() isn't running yet in the former case, but in my actual application (not this minimal example), i do all this while the app is actually running (not via app.exec_() but via reactor.run() since I'm using qt4reactor which allows me to use PyQt with Twisted), and in my actual application QWidget.sizes() returns [0, 0]! </div><div><br></div><div>i'm trying to use sizes information to know what to pass to setSizes(), but i can't seem to do what I want. </div><div>the closest I've gotten is to pass the values [self.width()-50, 50], but it actually sets the rightmost widget to a width of approximately 80, for any number i use that's 80 or below. for larger numbers it actually does make the widget larger. but i want it smaller than 80.</div><div><br></div><div>i tried calling setFixedWidth() on the right-side widget, and that makes it the size I want, but it doesn't actually allow me to move the qsplitter handle, which is I want to be able to do</div><div>i tried calling resize() on the right-side widget, and that had no effect.</div><div><br></div><div><div class="gmail_extra">the only solution I can imagine that might work is to find a place in my actual application from which calling QSplitter.sizes() actually returns a value like [1208, 700] (like it does in the bottom QEditText's keyPress event) and setting it up somehow to call that and setSizes() at that time, but that would be a horrible and tenuous hack.</div><div><div class="h5"><div class="gmail_extra"> </div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
</blockquote></div><br></div></div>
</blockquote></div><br></div></div></div></div></div></div>
</blockquote></div><br></div></div>