<div dir="ltr">On Fri, Oct 24, 2014 at 2:48 PM,  <span dir="ltr"><<a href="mailto:peter_karasev@keysight.com" target="_blank">peter_karasev@keysight.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div>
<div style="direction:ltr;font-family:Tahoma;color:rgb(0,0,0);font-size:12pt">Related question to this:
<br>
<br>
 in C++ you can do this <font face="Courier New"><font face="Courier New"><font face="Courier New">to make events start running before QApplication.exec() is called<font face="Courier New">:
</font></font></font></font><br>
<br>
<i><font face="Courier New">                QApplication::sendPostedEvents();<br>
                QApplication::processEvents(<font face="Courier New"> </font>);<br>
                // if you do this in<font face="Courier New"> a while-loop, you can interact with widgets ...
</font><br>
</font></i><font face="Courier New"><font face="Courier New"><font face="Courier New"><br>
Is it not possible to do this from PySide?  </font></font></font></div></div></blockquote><div></div><div style class="markdown-here-wrapper"><p style="margin:1.2em 0px!important">I’m not sure, but this:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:none repeat scroll 0% 0% rgb(248,248,248)" class="hljs language-cpp">QApplication::sendPostedEvents();
QApplication::processEvents();
 <span style="color:rgb(153,153,136);font-style:italic" class="hljs-comment">// if you do this in a while-loop, you can interact with widgets ...</span>
</code></pre>
<p style="margin:1.2em 0px!important">…is pretty much what <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">PySide.QtGui.QApplication.exec_()</code> does (see <a href="http://pages.citebite.com/n3n8v4q9r1dti">here</a>). So why not just use <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">exec_()</code>, unless you have really specific requirements?</p>
<div title="MDH:PGRpdj48YnI+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PkknbSBub3Qgc3VyZSwgYnV0IHRoaXM6PGJy
PjwvZGl2PjxkaXY+YGBgY3BwPGJyPjwvZGl2PjxkaXY+PGk+PGZvbnQgZmFjZT0iQ291cmllciBO
ZXciPlFBcHBsaWNhdGlvbjo6PHdicj5zZW5kUG9zdGVkRXZlbnRzKCk7PGJyPlFBcHBsaWNhdGlv
bjo6cHJvY2Vzc0V2ZW50cyg8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+IDwvZm9udD4pOzxicj4K
Ly8gaWYgeW91IGRvIHRoaXMgaW48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+IGEgd2hpbGUtbG9v
cCwgeW91IGNhbiBpbnRlcmFjdCB3aXRoIHdpZGdldHMgLi4uPC9mb250PjwvZm9udD48L2k+PGJy
PmBgYDxicj48L2Rpdj48ZGl2Pi4uLmlzIHByZXR0eSBtdWNoIHdoYXQgYFB5U2lkZS5RdEd1aS5R
QXBwbGljYXRpb24uZXhlY18oKWAgZG9lcyAoc2VlIFtoZXJlXShodHRwOi8vcGFnZXMuY2l0ZWJp
dGUuY29tL24zbjh2NHE5cjFkdGkpKS4gU28gd2h5IG5vdCBqdXN0IHVzZSBgZXhlY18oKWAsIHVu
bGVzcyB5b3UgaGF2ZSByZWFsbHkgc3BlY2lmaWMgcmVxdWlyZW1lbnRzPzwvZGl2Pg==" style="height:0;font-size:0em;padding:0;margin:0">​</div></div><div></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="direction:ltr;font-family:Tahoma;color:rgb(0,0,0);font-size:12pt"><font face="Courier New"><font face="Courier New"><font face="Courier New">I tried to make a C++ w<font face="Courier New">rapper object<br>
<font face="Courier New">but it seem<font face="Courier New">ed like the PySide objects weren'<font face="Courier New">t getting updated, although C++ QT widgets would appear and allow you to interact before
<br>
<font face="Courier New">QApplication<font face="Courier New">.exec() starts. </font>
</font><br>
</font></font></font></font></font></font></font><i><font face="Courier New"></font></i><br>
        regards,<br>
     Peter Karasev<br>
<br>
________________________________________<br>
От: pyside-bounces+peter_karasev=<a href="mailto:keysight.com@qt-project.org" target="_blank">keysight.com@qt-project.org</a> [pyside-bounces+peter_karasev=<a href="mailto:keysight.com@qt-project.org" target="_blank">keysight.com@qt-project.org</a>] от имени Jim Byrnes [<a href="mailto:jf_byrnes@comcast.net" target="_blank">jf_byrnes@comcast.net</a>]<br>
Отправлено: 24 октября 2014 г. 11:29<br>
Кому: <a href="mailto:pyside@qt-project.org" target="_blank">pyside@qt-project.org</a><br>
Тема: Re: [PySide] Why doesn't this example work?<br>
<br>
On 10/22/2014 11:26 PM, Sean Fisk wrote:<br>
> Hi Jim,<br>
><br>
> With all due respect to the author of the book, I don’t think this is a<br>
> very good example. The most important thing to realize is that nothing<br>
> really happens before the event loop is started. The line:<br>
><br>
> myApp.exec_()<br>
><br>
> is what starts the event loop. Without the event loop running, windows<br>
> won’t appear, user input cannot be handled, and basically nothing<br>
> QtGui-related will work. *Even if* windows show up before the event loop is<br>
> started, they won’t be able to respond to user interaction (as far as I<br>
> understand).<br>
><br>
> I would personally achieve the desired behavior like so:<br>
><br>
> #!/usr/bin/env python<br>
> import sys<br>
> from PySide import QtCore, QtGui<br>
> class SampleWindow(QtGui.QWidget):<br>
> def __init__(self, parent=None):<br>
> super(SampleWindow, self).__init__(parent)<br>
> self.setWindowTitle('Sample Window')<br>
> self.setGeometry(300, 300, 200, 150)<br>
> self.setMinimumHeight(100)<br>
> self.setMinimumWidth(250)<br>
> self.setMaximumHeight(200)<br>
> self.setMaximumWidth(800)<br>
><br>
> @QtCore.Slot()<br>
> def do_resize(self):<br>
> self.resize(300, 300)<br>
> self.setWindowTitle('Sample Window Resized')<br>
> def main(argv):<br>
> app = QtGui.QApplication(argv)<br>
><br>
> # Create and show the window.<br>
> window = SampleWindow()<br>
> window.show()<br>
> # PySide windows don't auto-raise on Mac OS X.<br>
> window.raise_()<br>
><br>
> # Set up a timer to fire 3 seconds *after the event loop starts*.<br>
> QtCore.QTimer.singleShot(3000, window.do_resize)<br>
><br>
> # Start the event loop. Nothing Qt-related happens until this call.<br>
> return app.exec_()<br>
> if __name__ == '__main__':<br>
> raise SystemExit(main(sys.argv))<br>
><br>
> The key take-away is that nothing QtGui-related *actually* happens before<br>
> the event loop is started, and everything is done by the time that it exits.<br>
><br>
> Hope this helps. Feel free to let me know if anything doesn’t make sense.<br>
> ​<br>
<br>
Thanks for the code and the explanation. It works and I can follow it<br>
and understand what is happening.<br>
<br>
Thanks, Jim<br>
<br>
><br>
> --<br>
> Sean Fisk<br>
><br>
> On Wed, Oct 22, 2014 at 8:17 PM, Jim Byrnes <<a href="mailto:jf_byrnes@comcast.net" target="_blank">jf_byrnes@comcast.net</a>> wrote:<br>
><br>
>> In looking at the lists archives, I see that most of the participants<br>
>> seem to be experienced developers. As a novice programmer I hope I am<br>
>> not intruding by asking some basic questions.<br>
>><br>
>> I am working my way through examples in a PySide book I bought.<br>
>> According to the author the example should display a 200 x 150 window,<br>
>> pause 3 seconds and then display a 300 x 300 window. On my system<br>
>> (Ubuntu 12.04) there is a approx 3 second delay after starting the<br>
>> program and then I see the 300 x 300 window. I never see the first window.<br>
>><br>
>> Could someone explain to me why it does not act as described?<br>
>><br>
>> # Import required modules<br>
>> import sys<br>
>> import time<br>
>> from PySide.QtGui import QApplication, QWidget<br>
>><br>
>> class SampleWindow(QWidget):<br>
>> """ Our main window class<br>
>> """<br>
>><br>
>> # Constructor function<br>
>> def __init__(self):<br>
>> QWidget.__init__(self)<br>
>> self.setWindowTitle("Sample Window")<br>
>> self.setGeometry(300, 300, 200, 150)<br>
>> self.setMinimumHeight(100)<br>
>> self.setMinimumWidth(250)<br>
>> self.setMaximumHeight(200)<br>
>> self.setMaximumWidth(800)<br>
>><br>
>> if __name__ == '__main__':<br>
>> # Exception Handling<br>
>> try:<br>
>> myApp = QApplication(sys.argv)<br>
>> myWindow = SampleWindow()<br>
>> myWindow.show()<br>
>> time.sleep(3)<br>
>> myWindow.resize(300, 300)<br>
>> myWindow.setWindowTitle("Sample Window Resized")<br>
>> myWindow.repaint()<br>
>> myApp.exec_()<br>
>> sys.exit(0)<br>
>> except NameError:<br>
>> print("Name Error:", sys.exc_info()[1])<br>
>> except SystemExit:<br>
>> print("Closing Window...")<br>
>> except Exception:<br>
>> print (sys.exc_info()[1])<br>
>><br>
>> Thanks, Jim<br>
>><br>
>> _______________________________________________<br>
>> PySide mailing list<br>
>> <a href="mailto:PySide@qt-project.org" target="_blank">PySide@qt-project.org</a><br>
>> <a href="http://lists.qt-project.org/mailman/listinfo/pyside" target="_blank">http://lists.qt-project.org/mailman/listinfo/pyside</a><br>
>><br>
><br>
><br>
><br>
> _______________________________________________<br>
> PySide mailing list<br>
> <a href="mailto:PySide@qt-project.org" target="_blank">PySide@qt-project.org</a><br>
> <a href="http://lists.qt-project.org/mailman/listinfo/pyside" target="_blank">http://lists.qt-project.org/mailman/listinfo/pyside</a><br>
><br>
<br>
<br>
_______________________________________________<br>
PySide mailing list<br>
<a href="mailto:PySide@qt-project.org" target="_blank">PySide@qt-project.org</a><br>
<a href="http://lists.qt-project.org/mailman/listinfo/pyside" target="_blank">http://lists.qt-project.org/mailman/listinfo/pyside</a><br>
</div>
</div>

<br>_______________________________________________<br>
PySide mailing list<br>
<a href="mailto:PySide@qt-project.org">PySide@qt-project.org</a><br>
<a href="http://lists.qt-project.org/mailman/listinfo/pyside" target="_blank">http://lists.qt-project.org/mailman/listinfo/pyside</a><br>
<br></blockquote></div><br></div></div>