<story><title>PyQt5 Tutorial: Create a Python GUI in 2018</title><url>https://build-system.fman.io/pyqt5-tutorial</url></story><parent_chain><item><author>ehsankia</author><text>The API still looks messy and unpythonic though, sadly. Look at the basic hello world example. Why do I need to pass QApplication an empty array? Why am I calling a method ending with _ to launch the program? And the fact the label magically attaches to the app through some side effect is also confusing.&lt;p&gt;Does anyone know if there&amp;#x27;s any good shim&amp;#x2F;wrapper around PyQt that has a better API?</text></item><item><author>minimaxir</author><text>This is a case where the &amp;quot;in 2018&amp;quot; in the title is very helpful, as Googling information about Python and Qt usually returns something dreadfully out of date. (and as other comments note, there are lots of new companion tools&amp;#x2F;competitors like Electron)</text></item></parent_chain><comment><author>wiz21c</author><text>Maybe it&amp;#x27;s not pythonic but I can assure you, after having passed 6 years working with it that it&amp;#x27;s extremely efficient and very well integrated with python. It just works, and a complaint about aesthetics won&amp;#x27;t change that :-)</text></comment>
<story><title>PyQt5 Tutorial: Create a Python GUI in 2018</title><url>https://build-system.fman.io/pyqt5-tutorial</url></story><parent_chain><item><author>ehsankia</author><text>The API still looks messy and unpythonic though, sadly. Look at the basic hello world example. Why do I need to pass QApplication an empty array? Why am I calling a method ending with _ to launch the program? And the fact the label magically attaches to the app through some side effect is also confusing.&lt;p&gt;Does anyone know if there&amp;#x27;s any good shim&amp;#x2F;wrapper around PyQt that has a better API?</text></item><item><author>minimaxir</author><text>This is a case where the &amp;quot;in 2018&amp;quot; in the title is very helpful, as Googling information about Python and Qt usually returns something dreadfully out of date. (and as other comments note, there are lots of new companion tools&amp;#x2F;competitors like Electron)</text></item></parent_chain><comment><author>blattimwind</author><text>Since Python 3 you can use exec() instead of exec_() (in Python 2 exec was a keyword).&lt;p&gt;&amp;gt; And the fact the label magically attaches to the app through some side effect is also confusing.&lt;p&gt;Are you referring to the first &amp;quot;label.show()&amp;quot; example?&lt;p&gt;Typically that pattern is rare (~once per app for the main window). Regarding attachment to the app; QApplication is a process-wide singleton. &lt;i&gt;All&lt;/i&gt; objects belong to the same app.</text></comment>