{"id":1597,"date":"2019-05-10T13:38:30","date_gmt":"2019-05-10T18:38:30","guid":{"rendered":"http:\/\/www.alandmoore.com\/blog\/?p=1597"},"modified":"2019-05-10T13:50:57","modified_gmt":"2019-05-10T18:50:57","slug":"did-i-say-september-i-meant-june","status":"publish","type":"post","link":"https:\/\/alandmoore.com\/blog\/2019\/05\/10\/did-i-say-september-i-meant-june\/","title":{"rendered":"Did I say September?  I meant JUNE!"},"content":{"rendered":"\n<p>It&#8217;s been a <em>crazy<\/em> six months working on my new book, <em>Mastering GUI Programming with Python<\/em>.  So crazy that I somehow finished up 3 months early!<\/p>\n\n\n\n<p>Right now the book is going through the last editing stages, gearing up for a release at the end of May, so eBook copies should be available by June at the latest (print copies take a little longer to become available).  With that being the case, I am way overdue to give an update on what this book is all about.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s in the book?<\/h2>\n\n\n\n<!--more-->\n\n\n\n<p>As you know from my last post, this book is about PyQt5; unlike the first book, it&#8217;s aimed at a little more experienced user and contains less of the meat-and-potatoes development stuff like the design process, unit testing, or documentation.  Instead, it&#8217;s focused on teaching as much PyQt5 as possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Part one: the basics<\/h3>\n\n\n\n<p>The first six chapters cover the basics:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>    Chapter 1<em>: Getting Started with PyQt<\/em>.<\/li><li>    Chapter 2: <em>Building Forms with QtWidgets<\/em><\/li><li>    Chapter 3: <em>Handling events with signals and slots<\/em><\/li><li>    Chapter 4: <em>Building applications with QMainWindow<\/em><\/li><li>    Chapter 5: <em>Creating data interfaces with Model\/View classes <\/em><\/li><li>    Chapter 6: <em>Styling Qt Applications   <\/em><\/li><\/ul>\n\n\n\n<p>These six chapters start from zero and walk you through creating simple, attractive form-based applications.  By the end of this section of the book, you&#8217;ll know enough about PyQt to build a GUI for a simple data-entry, configuration, or utility application.  Some of the example apps we build in this part of the book include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A text editor<\/li><li>A CSV viewer\/editor<\/li><li>A Calendar app<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Part two: Advanced Qt features<\/h3>\n\n\n\n<p>The next 10 chapters of the book comprise a tour of the more interesting capabilities of the Qt framework made available to us Python programmers by PyQt:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>    Chapter 7: <em>Working with Audio-visual Using QtMultimedia <\/em><\/li><li>    Chapter 8:<em> Networking with QtNetwork <\/em><\/li><li>    Chapter 9:<em> Exploring SQL with QtSQL <\/em><\/li><li>    Chapter 10:<em> Multithreading with QTimer and QThread <\/em><\/li><li>    Chapter 11: <em>Creating Rich text with QTextDocument<\/em><\/li><li>    Chapter 12: <em>Creating 2D graphics with Qpainter<\/em><\/li><li>    Chapter 13: <em>Creating 3D graphics with QtOpenGL<\/em><\/li><li>    Chapter 14: <em>Embedding data plots with QtCharts <\/em><\/li><li>    Chapter 15: <em>PyQt Raspberry Pi<\/em><\/li><li>    Chapter 16:<em>Web browsing with QtWebEngine    <\/em>    <\/li><\/ul>\n\n\n\n<p>As you can see, we step through a huge variety of functionality here, from graphics and multimedia to networks and databases.  There&#8217;s even a chapter on coding for the Raspberry Pi.  Each chapter in this section of the book contains one to three demo applications, so there is a ton of example code for you to follow.  Some of my favorite demo applications I wrote for this section include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sampling sound-board (chapter 7)<\/li><li>Video logging application (chapter 7)<\/li><li>Local-network chat (chapter 8)<\/li><li>Coffee review database (chapter 9)<\/li><li>File search (chapter 10)<\/li><li>File hasher (chapter 10)<\/li><li>Invoice generator (chapter 11)<\/li><li>Meme generator (chapter 12)<\/li><li>Tank combat game (chapter 12)<\/li><li>System monitor (chapter 14)<\/li><li>Temperature &amp; humidity monitor (chapter 15)<\/li><li>Basic web browser (chapter 16)<\/li><\/ul>\n\n\n\n<p>While I had to keep these apps simple for pedagogical purposes, many are surprisingly functional; and since all the code is licensed with the MIT open-source license, you can expand on them yourself and create some pretty awesome stuff.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The last chapter<\/h3>\n\n\n\n<p>While the rest of the book is focused on PyQt, the last chapter discusses deployment and sharing of your project; it covers the optimal project structure for collaboration, using <code>setuptools<\/code> for building PyPI packages, and finally the use of PyInstaller to generate standalone executables.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">We&#8217;re almost there!<\/h2>\n\n\n\n<p>I&#8217;ve put a ton of work into this book, and I can&#8217;t wait to share more with you.  Keep your eyes here for news about the book&#8217;s availability in the coming weeks.  I can&#8217;t wait for my Python peeps to get a look at it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a crazy six months working on my new book, Mastering GUI Programming with Python. So crazy that I somehow finished up 3 months early!<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[107,7,5],"tags":[97,110,111,47],"class_list":["post-1597","post","type-post","status-publish","format-standard","hentry","category-books","category-programming","category-technology","tag-books","tag-mastering-gui-programming-with-python","tag-pyqt","tag-python"],"_links":{"self":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/comments?post=1597"}],"version-history":[{"count":6,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1597\/revisions"}],"predecessor-version":[{"id":1605,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1597\/revisions\/1605"}],"wp:attachment":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/media?parent=1597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/categories?post=1597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/tags?post=1597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}