<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: wxPython in XSI</title>
	<atom:link href="http://www.xsi-blog.com/archives/138/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xsi-blog.com/archives/138</link>
	<description>People and thoughts behind XSI in production...</description>
	<pubDate>Tue, 06 Jan 2009 06:28:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Steven Caron</title>
		<link>http://www.xsi-blog.com/archives/138#comment-15097</link>
		<dc:creator>Steven Caron</dc:creator>
		<pubDate>Thu, 26 Apr 2007 20:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-15097</guid>
		<description>just sharing a blogger's comments on wxPython being programmed as if was java, causing it to be slow...

http://dirtsimple.org/2004/12/python-is-not-java.html</description>
		<content:encoded><![CDATA[<p>just sharing a blogger&#8217;s comments on wxPython being programmed as if was java, causing it to be slow&#8230;</p>
<p><a href="http://dirtsimple.org/2004/12/python-is-not-java.html" onclick="javascript:pageTracker._trackPageview('/outbound/comment/dirtsimple.org');" rel="nofollow">http://dirtsimple.org/2004/12/python-is-not-java.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ana</title>
		<link>http://www.xsi-blog.com/archives/138#comment-14738</link>
		<dc:creator>Ana</dc:creator>
		<pubDate>Fri, 16 Mar 2007 13:45:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-14738</guid>
		<description>It haven't worked. Anyway, thanks. 
Application is visible in the constructor but not in the run function. And if i pass globals to the constructor and i save it as an attribute of the class, when i try to get the element Application from this attribute in the run function it returns None.
I'll keep trying and i want to try another solution without threads.</description>
		<content:encoded><![CDATA[<p>It haven&#8217;t worked. Anyway, thanks.<br />
Application is visible in the constructor but not in the run function. And if i pass globals to the constructor and i save it as an attribute of the class, when i try to get the element Application from this attribute in the run function it returns None.<br />
I&#8217;ll keep trying and i want to try another solution without threads.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Boucher</title>
		<link>http://www.xsi-blog.com/archives/138#comment-14737</link>
		<dc:creator>Patrick Boucher</dc:creator>
		<pubDate>Fri, 16 Mar 2007 12:51:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-14737</guid>
		<description>Ana:
I'm not familiar with XSI on Linux nor pyGTK but you could try passing the result of the globals() function to your new thread's constructor. The Application object and it's siblings are defined in the script editor's global scope so, especially if your thread is defined in an external module that you import, your thread might not have access to the appropriate scope.</description>
		<content:encoded><![CDATA[<p>Ana:<br />
I&#8217;m not familiar with XSI on Linux nor pyGTK but you could try passing the result of the globals() function to your new thread&#8217;s constructor. The Application object and it&#8217;s siblings are defined in the script editor&#8217;s global scope so, especially if your thread is defined in an external module that you import, your thread might not have access to the appropriate scope.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ana</title>
		<link>http://www.xsi-blog.com/archives/138#comment-14736</link>
		<dc:creator>Ana</dc:creator>
		<pubDate>Fri, 16 Mar 2007 11:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-14736</guid>
		<description>Hi! I'm trying to make a window with pygtk on linux. The problem is that the main loop event blocks XSI so i've created a thread with the event loop. But the thread doesn't see the XSI sdk  (it can't see Application and so on). What do i have to do to create the thread?</description>
		<content:encoded><![CDATA[<p>Hi! I&#8217;m trying to make a window with pygtk on linux. The problem is that the main loop event blocks XSI so i&#8217;ve created a thread with the event loop. But the thread doesn&#8217;t see the XSI sdk  (it can&#8217;t see Application and so on). What do i have to do to create the thread?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Agedito</title>
		<link>http://www.xsi-blog.com/archives/138#comment-12365</link>
		<dc:creator>Agedito</dc:creator>
		<pubDate>Tue, 23 Jan 2007 01:58:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-12365</guid>
		<description>is not there an Win64 version?</description>
		<content:encoded><![CDATA[<p>is not there an Win64 version?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andre De Angelis</title>
		<link>http://www.xsi-blog.com/archives/138#comment-11556</link>
		<dc:creator>Andre De Angelis</dc:creator>
		<pubDate>Sat, 13 Jan 2007 22:40:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-11556</guid>
		<description>Very interesting post Aloys.  I was curious to try this approach, but until now, hadn't heard of anyone doing it from within XSI.

Much appreciated.</description>
		<content:encoded><![CDATA[<p>Very interesting post Aloys.  I was curious to try this approach, but until now, hadn&#8217;t heard of anyone doing it from within XSI.</p>
<p>Much appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Crouzet</title>
		<link>http://www.xsi-blog.com/archives/138#comment-11344</link>
		<dc:creator>Christopher Crouzet</dc:creator>
		<pubDate>Fri, 12 Jan 2007 09:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-11344</guid>
		<description>The problem I had with the XSI look were some interactions issues with widgets like the grid. I don't remember what exactly, but it was some annoying problems like as clicking two times in a cell to edit it's value, or when editing the value the text was white with a white background, ...
I didn't used any thread with wx, because the main loop event was correctly handled by XSI. I just had to create a thread for Qt.</description>
		<content:encoded><![CDATA[<p>The problem I had with the XSI look were some interactions issues with widgets like the grid. I don&#8217;t remember what exactly, but it was some annoying problems like as clicking two times in a cell to edit it&#8217;s value, or when editing the value the text was white with a white background, &#8230;<br />
I didn&#8217;t used any thread with wx, because the main loop event was correctly handled by XSI. I just had to create a thread for Qt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aloys Baillet</title>
		<link>http://www.xsi-blog.com/archives/138#comment-11314</link>
		<dc:creator>Aloys Baillet</dc:creator>
		<pubDate>Thu, 11 Jan 2007 23:36:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-11314</guid>
		<description>Plenty of questions here!

Kim: unfortunately those complex widget are not easy to find... with some work you could use the OGL module of wxPython, it does not look really good, but it's an editable graph.
For the display only of graphs, you could use the graphviz python library called pydot: http://dkbza.org/pydot.html

Julien: yes wxWindows in C++ should be straightforward to use inside XSI. I wanted a easy to use solution with wxPython only, that's why I didn't even try wxWindows.
What should be possible as well is to use a combination of wxWindows and embedded wxPython.

Christopher: I like the fact that the widget are "XSI-like", I think it would be less disruptive for the user. I just tried the SuspendWin32ControlsHook trick, and it works!
The problem if you use a different thread to run your GUI is that you will sure get into a dead lock at some point and get a crash, as the XSI SDK is not thread-safe.
The way I start the wxFrame makes it completely integrated with the XSI event loop and unless you don't play too much with wxThread, wxPython in XSI should be crash-free.

Patrick: Thanks for the plugin link!
I was using the exact same technique to redirect stdout and stderr in XSI 4.2, but I ended up removing that after some weird failure of automated XSI jobs on the farm... The fact that XSI 5.11 was giving us that for free was a good thing that we lost in XSI 6, Luc-Eric tried to bring it back for us, but it was not possible.

Luc-Eric: Thanks for the trick, it seems to work perfectly!
I created a C++ command to enable disable the Win32ControlsHook that I call before and after creating wxPython widgets.
But I must confess I prefer the rounded buttons... Do you know if it's possible to use the rounded text controls from wx?</description>
		<content:encoded><![CDATA[<p>Plenty of questions here!</p>
<p>Kim: unfortunately those complex widget are not easy to find&#8230; with some work you could use the OGL module of wxPython, it does not look really good, but it&#8217;s an editable graph.<br />
For the display only of graphs, you could use the graphviz python library called pydot: <a href="http://dkbza.org/pydot.html" onclick="javascript:pageTracker._trackPageview('/outbound/comment/dkbza.org');" rel="nofollow">http://dkbza.org/pydot.html</a></p>
<p>Julien: yes wxWindows in C++ should be straightforward to use inside XSI. I wanted a easy to use solution with wxPython only, that&#8217;s why I didn&#8217;t even try wxWindows.<br />
What should be possible as well is to use a combination of wxWindows and embedded wxPython.</p>
<p>Christopher: I like the fact that the widget are &#8220;XSI-like&#8221;, I think it would be less disruptive for the user. I just tried the SuspendWin32ControlsHook trick, and it works!<br />
The problem if you use a different thread to run your GUI is that you will sure get into a dead lock at some point and get a crash, as the XSI SDK is not thread-safe.<br />
The way I start the wxFrame makes it completely integrated with the XSI event loop and unless you don&#8217;t play too much with wxThread, wxPython in XSI should be crash-free.</p>
<p>Patrick: Thanks for the plugin link!<br />
I was using the exact same technique to redirect stdout and stderr in XSI 4.2, but I ended up removing that after some weird failure of automated XSI jobs on the farm&#8230; The fact that XSI 5.11 was giving us that for free was a good thing that we lost in XSI 6, Luc-Eric tried to bring it back for us, but it was not possible.</p>
<p>Luc-Eric: Thanks for the trick, it seems to work perfectly!<br />
I created a C++ command to enable disable the Win32ControlsHook that I call before and after creating wxPython widgets.<br />
But I must confess I prefer the rounded buttons&#8230; Do you know if it&#8217;s possible to use the rounded text controls from wx?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Crouzet</title>
		<link>http://www.xsi-blog.com/archives/138#comment-11293</link>
		<dc:creator>Christopher Crouzet</dc:creator>
		<pubDate>Thu, 11 Jan 2007 16:56:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-11293</guid>
		<description>Yes Luc-Eric, I tried this but the result was really weird because wxWidgets didn't used any GUI, not even the Windows one.

Thank you for your answer.</description>
		<content:encoded><![CDATA[<p>Yes Luc-Eric, I tried this but the result was really weird because wxWidgets didn&#8217;t used any GUI, not even the Windows one.</p>
<p>Thank you for your answer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luc-Eric</title>
		<link>http://www.xsi-blog.com/archives/138#comment-11291</link>
		<dc:creator>Luc-Eric</dc:creator>
		<pubDate>Thu, 11 Jan 2007 16:24:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.xsi-blog.com/archives/138#comment-11291</guid>
		<description>You can turn off the subsclassing of controls by XSI during the creation of your window.  Look up SuspendWin32ControlsHook  in the XSI SDK</description>
		<content:encoded><![CDATA[<p>You can turn off the subsclassing of controls by XSI during the creation of your window.  Look up SuspendWin32ControlsHook  in the XSI SDK</p>
]]></content:encoded>
	</item>
</channel>
</rss>
