<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Martin Fitzpatrick - python</title><link>https://www.martinfitzpatrick.com/</link><description>Python tutorials, projects and books</description><atom:link href="https://www.martinfitzpatrick.com/feeds/python.tag.rss.xml" rel="self"/><lastBuildDate>Thu, 12 Jun 2025 08:00:00 +0000</lastBuildDate><item><title>6th Edition - Create GUI Applications with Python &amp; Qt, Released — PyQt6 &amp; PySide6 Books updated for 2025 with model view controller architecture, new Python/Qt features and more examples</title><link>https://www.martinfitzpatrick.com/pyqt6-pyside6-books-updated-2025/</link><description>The 6th edition of my book &lt;em&gt;Create GUI Applications with Python &amp;amp; Qt&lt;/em&gt; is now
available, for PyQt6 &amp;amp; PySide6.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 12 Jun 2025 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2025-06-12:/pyqt6-pyside6-books-updated-2025/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>PyQt6 Book now available in Korean: 파이썬과 Qt6로 GUI 애플리케이션 만들기 — The hands-on guide to creating GUI applications with Python gets a new translation</title><link>https://www.martinfitzpatrick.com/pyqt6-book-now-available-in-korean/</link><description>I am very happy to announce that my Python GUI programming book
&lt;strong&gt;Create GUI Applications with Python &amp;amp; Qt6 / PyQt6 Edition&lt;/strong&gt; is now available
in Korean from &lt;a href="http://www.acornpub.co.kr/book/python-qt6"&gt;Acorn Publishing&lt;/a&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 04 May 2023 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-05-04:/pyqt6-book-now-available-in-korean/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>Getting Started With Git and GitHub in Your Python Projects — Version-Controlling Your Python Projects With Git and GitHub</title><link>https://www.martinfitzpatrick.com/git-github-python/</link><description>Using a &lt;a href="https://en.wikipedia.org/wiki/Version_control"&gt;version control system (VCS)&lt;/a&gt; is crucial for any software development project. These systems allow developers to track changes to the project's codebase over time, removing the need to keep multiple copies of the project folder.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 20 Mar 2023 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-03-20:/git-github-python/</guid><category>python</category></item><item><title>Working With Classes in Python — Understanding the Intricacies of Python Classes</title><link>https://www.martinfitzpatrick.com/python-classes/</link><description>Python supports &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;object-oriented programming (OOP)&lt;/a&gt; through classes, which allow you to bundle data and behavior in a single entity. Python classes allow you to quickly model concepts by creating representations of real objects that you can then use to organize your code.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 06 Mar 2023 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-03-06:/python-classes/</guid><category>python</category></item><item><title>Getting started with VS Code for Python — Setting up a Development Environment for Python programming</title><link>https://www.martinfitzpatrick.com/getting-started-vs-code-python/</link><description>Setting up a working development environment is the first step for any project. Your development environment setup will determine how easy it is to develop and maintain your projects over time. That makes it important to choose the &lt;em&gt;right tools for your project&lt;/em&gt;. This article will guide you through how to set up Visual Studio Code, which is a popular free-to-use, cross-platform code editor developed by Microsoft, in order to develop Python applications.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 21 Sep 2022 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-09-21:/getting-started-vs-code-python/</guid><category>python</category></item><item><title>PyQt6, PySide6, PyQt5 and PySide2 Books -- updated for 2022! — New editions extended and updated, now 780+ pages</title><link>https://www.martinfitzpatrick.com/pyqt6-pyqt5-books-updated-2022/</link><description>Hello! Today I have released new digital editions of my PyQt5, PyQt6, PySide2 and PySide6 book &lt;em&gt;Create GUI Applications with Python &amp;amp; Qt&lt;/em&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 19 May 2022 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-05-19:/pyqt6-pyqt5-books-updated-2022/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>DiffCast: Hands-free Python Screencast Creator — Create reproducible programming screencasts without typos or edits</title><link>https://www.martinfitzpatrick.com/diffcast-python-screencast-creator/</link><description>Programming screencasts are a popular way to teach programming and demo tools. Typically people will open up their favorite editor and record themselves tapping away. But this has a few problems. A good setup for coding isn't necessarily a good setup for video -- with text too small, a window too big, or too many distractions. Typing code in live means mistakes, which means more time editing or confusion for the people watching.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 26 Jan 2022 11:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-01-26:/diffcast-python-screencast-creator/</guid><category>python</category><category>mac</category></item><item><title>PySide6 tutorial now available — Complete course, updated for PySide2 &amp; PySide6</title><link>https://www.martinfitzpatrick.com/pyside-tutorial-now-available/</link><description>Hello! With the release of Qt6 versions of PyQt and PySide the course was getting a little crowded. So, today I've split the PySide tutorials into their own standalone &lt;a href="https://www.pythonguis.com/pyside2-tutorial/"&gt;PySide2 course&lt;/a&gt; and &lt;a href="https://www.pythonguis.com/pyside6-tutorial/"&gt;PySide6 course&lt;/a&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 14 May 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-05-14:/pyside-tutorial-now-available/</guid><category>pyside</category><category>qt6</category><category>python</category><category>qt</category></item><item><title>PyQt6 Book now available: Create GUI Applications with Python &amp; Qt6 — The hands-on guide to making apps with Python</title><link>https://www.martinfitzpatrick.com/pyqt6-book-create-gui-applications-python-qt6/</link><description>Hello! Today I have released the first PyQt6 edition of my book &lt;strong&gt;&lt;a href="https://www.martinfitzpatrick.com/pyqt6-book/"&gt;Create GUI Applications, with Python &amp;amp; Qt6&lt;/a&gt;&lt;/strong&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 09 Apr 2021 15:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-04-09:/pyqt6-book-create-gui-applications-python-qt6/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>PySide6 Book now available: Create GUI Applications with Python &amp; Qt6 — The hands-on guide to making apps with Python</title><link>https://www.martinfitzpatrick.com/pyside6-book-create-gui-applications-python-qt6/</link><description>Hello! This morning I released the first &lt;strong&gt;Qt6 edition of my PySide book &lt;a href="https://www.martinfitzpatrick.com/pyside6-book/"&gt;Create GUI Applications, with Python &amp;amp; Qt6&lt;/a&gt;&lt;/strong&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 15 Mar 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-03-15:/pyside6-book-create-gui-applications-python-qt6/</guid><category>pyside</category><category>qt6</category><category>python</category><category>qt</category><category>pyqt</category></item><item><title>Using MicroPython and uploading libraries on Raspberry Pi Pico — Using rshell to upload custom code</title><link>https://www.martinfitzpatrick.com/using-micropython-raspberry-pico/</link><description>MicroPython is an implementation of the Python 3 programming language, optimized to run microcontrollers. It's one of the options available for programming your Raspberry Pi Pico and a nice friendly way to get started with microcontrollers.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 22 Feb 2021 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-02-22:/using-micropython-raspberry-pico/</guid><category>python</category><category>micropython</category><category>electronics</category></item><item><title>Writing a SAM Coupé SCREEN$ Converter in Python — Interrupt optimizing image converter</title><link>https://www.martinfitzpatrick.com/writing-a-sam-coupe-screen-converter-in-python/</link><description>The &lt;a href="/tag/sam-coupe"&gt;SAM Coup&amp;eacute;&lt;/a&gt; was a British 8 bit home computer that was pitched as a successor to the ZX Spectrum, featuring improved graphics and sound and higher processor speed.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 28 Jan 2021 14:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-01-28:/writing-a-sam-coupe-screen-converter-in-python/</guid><category>sam-coupe</category><category>python</category></item><item><title>Squeezing Space Invaders onto the BBC micro:bit's 25 pixels — MicroPython retro game in just 25 pixels</title><link>https://www.martinfitzpatrick.com/squeezing-space-invaders-onto-the-bbc-microbit/</link><description>How much game can you fit into 25 pixels? Quite a bit it turns out.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 21 Jan 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-01-21:/squeezing-space-invaders-onto-the-bbc-microbit/</guid><category>python</category><category>micropython</category><category>games</category></item><item><title>Etch-A-Snap — The Raspberry Pi powered Etch-A-Sketch camera</title><link>https://www.martinfitzpatrick.com/etch-a-snap/</link><description>&lt;strong&gt;Etch-A-Snap&lt;/strong&gt; is (probably) the worlds first &lt;strong&gt;Etch-A-Sketch Camera&lt;/strong&gt;. Powered by a Raspberry Pi Zero (or Zero W) it snaps photos just like any other camera, but outputs them by drawing to an &lt;em&gt;Pocket Etch-A-Sketch&lt;/em&gt; screen. Quite slowly.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 07 Apr 2019 15:20:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-04-07:/etch-a-snap/</guid><category>etch-a-snap</category><category>etch-a-sketch</category><category>python</category><category>raspberry-pi</category></item><item><title>Gyroscopic 3D wireframe cube — Using a 3-axis gyro for live 3D perspective</title><link>https://www.martinfitzpatrick.com/gyroscopic-wireframe-cube/</link><description>This little project combines the previous &lt;a href="/3-axis-gyro-micropython/"&gt;accelerometer-gyroscope&lt;/a&gt; code with the &lt;a href="/3d-rotating-cube-micropython-oled/"&gt;3D rotating OLED cube&lt;/a&gt; to produce a 3D cube which responds to gyro input, making it possible to "peek around" the cube with simulated perspective, or make it spin with a flick of the wrist.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 11 Jan 2019 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-01-11:/gyroscopic-wireframe-cube/</guid><category>python</category><category>micropython</category></item><item><title>3-axis Accelerometer-Gyro — Measuring acceleration and orientation with an MPU6050</title><link>https://www.martinfitzpatrick.com/3-axis-gyro-micropython/</link><description>Measuring acceleration and rotation has a lot of useful applications, from drone or rocket stablisation to making physically interactive handheld games.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Tue, 01 Jan 2019 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-01-01:/3-axis-gyro-micropython/</guid><category>python</category><category>micropython</category></item><item><title>Dictionary Views &amp; Set Operations — Working with dictionary view objects</title><link>https://www.martinfitzpatrick.com/python-dictionary-sets/</link><description>The &lt;em&gt;keys&lt;/em&gt;, &lt;em&gt;values&lt;/em&gt; and &lt;em&gt;items&lt;/em&gt; from a dictionary can be accessed using the &lt;code&gt;.keys()&lt;/code&gt;, &lt;code&gt;.values()&lt;/code&gt; and &lt;code&gt;.items()&lt;/code&gt; methods. These methods return &lt;em&gt;view objects&lt;/em&gt; which provide a view on the source dictionary.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 30 Sep 2018 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-09-30:/python-dictionary-sets/</guid><category>python</category></item><item><title>Creating a 3D wireframe cube with MicroPython on an OLED display — Basic 3D model rotation and projection</title><link>https://www.martinfitzpatrick.com/creating-a-3d-rotating-cube-with-micropython-and-oled-display/</link><description>An ESP2866 is never going to compete with an actual graphics card. But it has more than enough oomph to explore the fundamentals of 3D graphics. In this short tutorial we'll go through the basics of creating a 3D scene and displaying it on an OLED screen using MicroPython.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 23 Sep 2018 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-09-23:/creating-a-3d-rotating-cube-with-micropython-and-oled-display/</guid><category>python</category><category>micropython</category><category>electronics</category></item><item><title>Displaying images on OLED screens — Using 1-bpp images in MicroPython</title><link>https://www.martinfitzpatrick.com/displaying-images-oled-displays/</link><description>We've previously covered the &lt;a href="/oled-displays-i2c-micropython/"&gt;basics of driving OLED I2C displays from MicroPython&lt;/a&gt;, including simple graphics commands and text. Here we look at displaying monochrome 1 bit-per-pixel images and animations using MicroPython on a Wemos D1.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 27 Aug 2018 16:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-08-27:/displaying-images-oled-displays/</guid><category>python</category><category>micropython</category><category>electronics</category></item><item><title>Dictionaries — A rather long guide to Python's key:value hash type</title><link>https://www.martinfitzpatrick.com/python-dictionaries/</link><description>Dictionaries are key-value stores, meaning they store, and allow retrieval of data (or &lt;em&gt;values&lt;/em&gt;) through a unique key. This is analogous with a real dictionary where you look up &lt;em&gt;definitions&lt;/em&gt; (data) using a given &lt;em&gt;key&lt;/em&gt; &amp;mdash; the word. Unlike a language dictionary however, keys in Python dictionaries are &lt;em&gt;not&lt;/em&gt; alphabetically sorted.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 26 Aug 2018 12:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-08-26:/python-dictionaries/</guid><category>python</category></item><item><title>Driving I2C OLED displays with MicroPython — I2C monochrome displays with SSD1306</title><link>https://www.martinfitzpatrick.com/oled-displays-i2c-micropython/</link><description>These mini monochrome OLED screens make great displays for projects &amp;mdash;&amp;nbsp;perfect for data readout, simple UIs or monochrome games.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sat, 25 Aug 2018 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-08-25:/oled-displays-i2c-micropython/</guid><category>python</category><category>micropython</category><category>electronics</category></item><item><title>Turning a Lucky Cat into a Persistence of Vision display — Python-powered Maneki-neko persistence of vision scroller</title><link>https://www.martinfitzpatrick.com/turning-a-lucky-cat-into-a-persistence-of-vision-display/</link><description>This build started as something simple: a lucky cat which would
turn on and off automatically in response to some event. Since lucky cats are
associated with &lt;em&gt;good fortune&lt;/em&gt; the idea was to make one do this every time I got paid.
This was working pretty well but unfortunately,
after some over-zealous poking I managed to completely knacker the internals.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 14 May 2018 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-05-14:/turning-a-lucky-cat-into-a-persistence-of-vision-display/</guid><category>python</category><category>micropython</category></item></channel></rss>