<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python GUIs</title><link>https://www.pythonguis.com/</link><description>Create GUI applications with Python and Qt</description><atom:link href="https://www.pythonguis.com/feeds/all.rss.xml" rel="self"/><lastBuildDate>Wed, 06 May 2026 06:00:00 +0000</lastBuildDate><item><title>Sorting and Filtering a QTableView with QSortFilterProxyModel — Learn how to add interactive sorting and filtering to your PyQt/PySide table views without touching your underlying data</title><link>https://www.pythonguis.com/faq/add-some-explanation-on-sorting-a-qtableview/</link><description>I'm using QTableView to show some data, which works well. But I would like to be able to sort the data by different columns. How can I do this without sorting the data manually?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 06 May 2026 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-05-06:/faq/add-some-explanation-on-sorting-a-qtableview/</guid><category>PyQt5</category><category>PyQt6</category><category>PySide2</category><category>PySide6</category><category>QTableView</category><category>QSortFilterProxyModel</category><category>Model-View</category></item><item><title>Streamlit Buttons — Making things happen with Streamlit buttons</title><link>https://www.pythonguis.com/tutorials/streamlit-buttons/</link><description>Streamlit is a popular choice for creating interactive web applications in Python. With its simple syntax and intuitive interface, developers can quickly create visually appealing dashboards.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 01 May 2026 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-05-01:/tutorials/streamlit-buttons/</guid><category>streamlit</category><category>foundation</category><category>buttons</category><category>streamlit-foundation</category></item><item><title>Actions in one thread changing data in another — How to communicate between threads and windows in PyQt6</title><link>https://www.pythonguis.com/faq/actions-in-one-thread-changing-data-in-another/</link><description>I have a main window that starts background threads (e.g., handling GPIO data). From the main window I open secondary windows using buttons. When I press a button in a secondary window, I can't change anything in the background threads. But if I press a button in the main window, everything works. How do I communicate between a secondary window and a thread that was started from the main window?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 29 Apr 2026 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-04-29:/faq/actions-in-one-thread-changing-data-in-another/</guid><category>pyqt6</category><category>multithreading</category><category>signals</category><category>qthread</category><category>python</category><category>qt</category><category>qt6</category></item><item><title>Streamlit Widgets — An Overview of Commonly Used Widgets in Streamlit</title><link>https://www.pythonguis.com/tutorials/streamlit-widgets/</link><description>Streamlit is a powerful Python library designed to build interactive web apps with minimal code. One of its core features is an extensive collection of widgets that allow users to interact with the app in various ways, such as providing inputs, triggering actions, or visualizing data. Streamlit makes it easy to create these elements with simple, intuitive syntax.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 24 Apr 2026 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-04-24:/tutorials/streamlit-widgets/</guid><category>streamlit</category><category>foundation</category><category>streamlit-foundation</category></item><item><title>Checkboxes in Table Views with a Custom Model — Show checkboxes for boolean values in PyQt/PySide table views</title><link>https://www.pythonguis.com/faq/abstract-table-model-question/</link><description>I have a QTableView with a custom QAbstractTableModel, and I want to add a column of checkboxes. Should I create a custom delegate class for the checkbox, or is there a simpler way to do this?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 22 Apr 2026 09:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-04-22:/faq/abstract-table-model-question/</guid><category>pyqt6</category><category>pyqt</category><category>pyside6</category><category>pyside</category><category>qtableview</category><category>qabstracttablemodel</category><category>checkbox</category><category>python</category><category>qt</category><category>qt6</category></item><item><title>What does @pyqtSlot() do? — Is the pyqtSlot decorator even necessary?</title><link>https://www.pythonguis.com/faq/what-does-pyqtslot-do/</link><description>When working with Qt slots and signals in PyQt6 you will discover the &lt;code&gt;@pyqtSlot&lt;/code&gt; decorator. This decorator is used to &lt;em&gt;mark&lt;/em&gt; a Python function or method as a &lt;em&gt;slot&lt;/em&gt; to which a Qt signal can be connected. However, as you can see in our &lt;a href="https://www.pythonguis.com/tutorials/pyqt6-signals-slots-events/"&gt;signals and slots tutorials&lt;/a&gt; you don't &lt;em&gt;have&lt;/em&gt; to use this. Any Python function or method can be used, normally, as a slot for Qt signals. But elsewhere, in our &lt;a href="https://www.pythonguis.com/tutorials/multithreading-pyqt6-applications-qthreadpool/"&gt;threading tutorials&lt;/a&gt; we &lt;em&gt;do&lt;/em&gt; use it.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 12 Jan 2026 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2026-01-12:/faq/what-does-pyqtslot-do/</guid><category>pyqt6</category><category>pyqt5</category><category>pyqt</category><category>threading</category><category>threads</category><category>signals</category><category>slots</category><category>python</category><category>qt</category><category>qt6</category><category>qt5</category></item><item><title>Getting Started With Flet for GUI Development — Your First Steps With the Flet Library for Desktop and Web Python GUIs</title><link>https://www.pythonguis.com/tutorials/getting-started-flet/</link><description>Getting started with a new GUI framework can feel daunting. This guide walks you through the essentials of Flet, from installation and a first app to widgets, layouts, and event handling.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo Well</dc:creator><pubDate>Mon, 15 Dec 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-12-15:/tutorials/getting-started-flet/</guid><category>flet</category><category>python</category><category>widget</category><category>layout</category><category>getting-started</category><category>application</category><category>cross-platform</category></item><item><title>Getting Started With NiceGUI for Web UI Development in Python — Your First Steps With the NiceGUI Library for Web UI Development</title><link>https://www.pythonguis.com/tutorials/getting-started-nicegui/</link><description>NiceGUI is a Python library that allows developers to create interactive web applications with minimal effort. It's intuitive and easy to use. It provides a high-level interface for building modern web-based graphical user interfaces (GUIs) without requiring deep knowledge of web technologies like HTML, CSS, or JavaScript.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo Well</dc:creator><pubDate>Thu, 27 Nov 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-11-27:/tutorials/getting-started-nicegui/</guid><category>nicegui</category><category>python</category><category>widget</category><category>layout</category><category>application</category><category>web-ui</category></item><item><title>Getting Started With DearPyGui for GUI Development — Your First Steps With the DearPyGui Library for Desktop Python GUIs</title><link>https://www.pythonguis.com/tutorials/getting-started-dearpygui/</link><description>Getting started with a new GUI framework can feel daunting. This guide walks you through the essentials of &lt;strong&gt;DearPyGui&lt;/strong&gt;&amp;mdash;from installation and your first app to widgets, layouts, event handling, and plotting.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo Well</dc:creator><pubDate>Wed, 19 Nov 2025 08:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-11-19:/tutorials/getting-started-dearpygui/</guid><category>dearpygui</category><category>widget</category><category>layout</category><category>application</category><category>python</category><category>getting-started</category></item><item><title>Saving and Restoring Application Settings with QSettings in PyQt6 — Learn how to use QSettings to remember user preferences, window sizes, and configuration options between sessions</title><link>https://www.pythonguis.com/faq/pyqt6-qsettings-how-to-use-qsettings/</link><description>Most desktop applications need to remember things between sessions. Maybe your user picked a dark theme, resized the window, or toggled a feature on or off. Without a way to save those choices, your app would forget everything the moment it closes. That's where &lt;code&gt;QSettings&lt;/code&gt; comes in.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 09 Oct 2025 09:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-10-09:/faq/pyqt6-qsettings-how-to-use-qsettings/</guid><category>pyqt6</category><category>python</category><category>intermediate</category><category>settings</category><category>qsettings</category><category>qt</category><category>qt6</category></item><item><title>How can I enable editing on a QTableView in PySide6? — Modifying your model to allow editing of your data source</title><link>https://www.pythonguis.com/faq/editing-pyside6-tableview/</link><description>In the Model-Views course, we covered &lt;a href="https://www.pythonguis.com/tutorials/qtableview-modelviews-numpy-pandas/"&gt;Displaying Tabular Data in Qt ModelViews&lt;/a&gt;. This takes a data source, such as a list of lists, a NumPy array, or a Pandas &lt;code&gt;DataFrame&lt;/code&gt;, and displays it in a &lt;code&gt;QTableView&lt;/code&gt;. But often, displaying is just the first step&amp;mdash;you also want your users to be able to add and edit the table, updating the underlying data object.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Tue, 19 Aug 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-08-19:/faq/editing-pyside6-tableview/</guid><category>pyside6</category><category>pyside</category><category>qtableview</category><category>model-views</category><category>editing</category><category>python</category><category>qt</category><category>qt6</category></item><item><title>How can I enable editing on a QTableView in PyQt6? — Modifying your model to allow editing of your data source</title><link>https://www.pythonguis.com/faq/editing-pyqt6-tableview/</link><description>In the Model-Views course, we covered &lt;a href="https://www.pythonguis.com/tutorials/qtableview-modelviews-numpy-pandas/"&gt;Displaying Tabular Data in Qt ModelViews&lt;/a&gt;. This takes a data source, such as a list of lists, a NumPy array, or a Pandas &lt;code&gt;DataFrame&lt;/code&gt;, and displays it in a &lt;code&gt;QTableView&lt;/code&gt;. But often, displaying is just the first step&amp;mdash;you also want your users to be able to add and edit the table, updating the underlying data object.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sat, 19 Jul 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-07-19:/faq/editing-pyqt6-tableview/</guid><category>pyqt6</category><category>pyqt</category><category>qtableview</category><category>model-views</category><category>editing</category><category>python</category><category>qt</category><category>qt6</category></item><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.pythonguis.com/blog/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 both &lt;strong&gt;PyQt6&lt;/strong&gt; and &lt;strong&gt;PySide6&lt;/strong&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 11 Jun 2025 08:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-06-11:/blog/pyqt6-pyside6-books-updated-2025/</guid><category>pyqt6</category><category>pyqt</category><category>qt6</category><category>python</category><category>pyside6</category><category>python-gui</category><category>gui-programming</category><category>mvc</category><category>qt</category></item><item><title>Tkinter Widgets — A walkthrough of Tkinter's basic widgets</title><link>https://www.pythonguis.com/tutorials/tkinter-basic-widgets/</link><description>In Tkinter (and most GUI libraries), &lt;strong&gt;widget&lt;/strong&gt; is the name given to a component of the GUI that the user can interact with. User interfaces are made up of multiple widgets arranged within the window to make it functional and intuitive to use.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo Well</dc:creator><pubDate>Mon, 19 May 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-05-19:/tutorials/tkinter-basic-widgets/</guid><category>python</category><category>tkinter</category><category>widgets</category><category>foundation</category><category>tk</category><category>tkinter-foundation</category></item><item><title>What does @Slot() do? — Is the Slot decorator even necessary?</title><link>https://www.pythonguis.com/faq/what-does-slot-do/</link><description>When working with Qt slots and signals in PySide6 you will discover the &lt;code&gt;@Slot&lt;/code&gt; decorator. This decorator is used to &lt;em&gt;mark&lt;/em&gt; a Python function or method as a &lt;em&gt;slot&lt;/em&gt; to which a Qt signal can be connected. However, as you can see in our &lt;a href="/tutorials/pyside6-signals-slots-events/"&gt;PySide6 signals and slots tutorial&lt;/a&gt; you don't &lt;em&gt;have&lt;/em&gt; to use this. Any Python function or method can be used, normally, as a slot for Qt signals. But elsewhere, in our &lt;a href="/tutorials/multithreading-pyside6-applications-qthreadpool/"&gt;PySide6 multithreading tutorial&lt;/a&gt; we &lt;em&gt;do&lt;/em&gt; use it.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 12 May 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-05-12:/faq/what-does-slot-do/</guid><category>pyside6</category><category>pyside2</category><category>pyside</category><category>threading</category><category>threads</category><category>signals</category><category>slots</category><category>python</category><category>qt</category><category>qt6</category><category>qt5</category></item><item><title>Build an Image Noise Reduction Tool with Streamlit and OpenCV — Clean up noisy images using OpenCV denoising algorithms in Python</title><link>https://www.pythonguis.com/examples/streamlit-denoiser-application/</link><description>Image noise is a random variation of brightness or color in images, which can make it harder to discern finer details in a photo. Noise is an artefact of how the image is captured. In digital photography, sensor electronic noise causes random fuzziness over the true image. It is more noticeable in low light, where the lower signal from the sensor is amplified, amplifying the noise with it. Similar noisy artifacts are also present in analog photos and film, but there it is caused by the film grain. Finally, you can also see noise-like artifacts introduced by lossy compression algorithms such as JPEG.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 05 May 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-05-05:/examples/streamlit-denoiser-application/</guid><category>streamlit</category><category>application</category><category>image-processing</category><category>opencv</category><category>python</category></item><item><title>Kivy's Complex Widgets — Learn How to Use Kivy's Complex UX Widgets in Your Apps</title><link>https://www.pythonguis.com/tutorials/kivy-complex-ui-widgets/</link><description>Kivy is a powerful framework for developing multi-touch GUI applications using Python. It provides a set of rich built-in widgets which you can use to build complex GUI applications.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Leo Well</dc:creator><pubDate>Mon, 28 Apr 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-28:/tutorials/kivy-complex-ui-widgets/</guid><category>kivy</category><category>widgets</category><category>ux</category><category>advanced</category><category>foundation</category><category>kivy-foundation</category></item><item><title>Building a Currency Converter Application using Tkinter — Convert between currencies with real-time exchange rates</title><link>https://www.pythonguis.com/examples/currency-converter-tkinter/</link><description>In this tutorial, you'll create a &lt;strong&gt;currency converter&lt;/strong&gt; application with Python and Tkinter. The app will allow users to select a source currency, choose a target currency, and input the amount to convert. The application will use real-time exchange rates from an external API to perform accurate and up-to-date currency conversions.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Khumbo Klein</dc:creator><pubDate>Fri, 25 Apr 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-25:/examples/currency-converter-tkinter/</guid><category>tkinter</category><category>requests</category><category>currency</category><category>api</category><category>python</category><category>tk</category></item><item><title>Multithreading PyQt6 applications with QThreadPool — Run background tasks concurrently without impacting your UI</title><link>https://www.pythonguis.com/tutorials/multithreading-pyqt6-applications-qthreadpool/</link><description>A common problem when building Python GUI applications is the interface "locking up" when attempting to perform long-running background tasks. In this tutorial, we'll cover quick ways to achieve concurrent execution in PyQt6 using &lt;code&gt;QThreadPool&lt;/code&gt; and &lt;code&gt;QRunnable&lt;/code&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 20 Apr 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-20:/tutorials/multithreading-pyqt6-applications-qthreadpool/</guid><category>multithreading</category><category>responsive</category><category>threading</category><category>qt</category><category>pyqt</category><category>pyqt6</category><category>concurrency</category><category>performance</category><category>qthreadpool</category><category>qrunnable</category><category>python</category><category>qt6</category><category>pyqt6-concurrency</category></item><item><title>How to Show Only Icons in QTableView Cells (Hide Text) — Use custom model roles to display icons without text in your PyQt6 tables</title><link>https://www.pythonguis.com/faq/show-only-icon-in-qtableview-cell-pyqt6/</link><description>When you're building a table-based interface with &lt;code&gt;QTableView&lt;/code&gt; in PyQt6, you'll often want to show icons in certain cells &amp;mdash; for example, a checkmark for &lt;code&gt;True&lt;/code&gt; and a cross for &lt;code&gt;False&lt;/code&gt;. But by default, Qt will also display the underlying data value as text alongside the icon. That means you end up with something like a green tick next to the word "True", which looks cluttered and unprofessional.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 13 Apr 2025 06:52:05 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-13:/faq/show-only-icon-in-qtableview-cell-pyqt6/</guid><category>pyqt6</category><category>pyqt</category><category>qtableview</category><category>python</category><category>icons</category><category>model-view</category><category>qt</category><category>qt6</category></item><item><title>How to Show Only Icons in QTableView Cells (Hide Text) — Use custom model roles to display icons without text in your PySide6 tables</title><link>https://www.pythonguis.com/faq/show-only-icon-in-qtableview-cell-pyside6/</link><description>When you're building a table-based interface with &lt;code&gt;QTableView&lt;/code&gt; in PySide6 or PyQt6, you'll often want to show icons in certain cells &amp;mdash; for example, a checkmark for &lt;code&gt;True&lt;/code&gt; and a cross for &lt;code&gt;False&lt;/code&gt;. But by default, Qt will also display the underlying data value as text alongside the icon. That means you end up with something like a green tick next to the word "True", which looks cluttered and unprofessional.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 13 Apr 2025 06:52:05 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-13:/faq/show-only-icon-in-qtableview-cell-pyside6/</guid><category>pyside6</category><category>pyqt6</category><category>qtableview</category><category>python</category><category>qt</category><category>model-view</category><category>qt6</category></item><item><title>PySide6 Toolbars &amp; Menus — QAction — Defining toolbars, menus, and keyboard shortcuts with QAction</title><link>https://www.pythonguis.com/tutorials/pyside6-actions-toolbars-menus/</link><description>Next, we'll look at some of the common user interface elements you've probably seen in many other applications &amp;mdash; toolbars and menus. We'll also explore the neat system Qt provides for minimizing the duplication between different UI areas &amp;mdash; &lt;code&gt;QAction&lt;/code&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 11 Apr 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-11:/tutorials/pyside6-actions-toolbars-menus/</guid><category>menus</category><category>toolbars</category><category>QMenu</category><category>QAction</category><category>QToolbar</category><category>actions</category><category>qt</category><category>pyside</category><category>pyside6</category><category>foundation</category><category>python</category><category>qt6</category><category>pyside6-foundation</category></item><item><title>Build a Desktop Sticky Notes Application with PySide6 &amp; SQLAlchemy — Create moveable desktop reminders with Python</title><link>https://www.pythonguis.com/examples/pyside6-desktop-sticky-notes/</link><description>Do you ever find yourself needing to take a quick note of some information but have nowhere to put it? Then this app is for you! This virtual sticky notes (or Post-it notes) app allows you to keep short text notes quickly from anywhere via the system tray. Create a new note, paste what you need in. It'll stay there until you delete it.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 03 Apr 2025 12:01:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-03:/examples/pyside6-desktop-sticky-notes/</guid><category>pyside6</category><category>sticky-notes</category><category>qt6</category><category>app</category><category>notes</category><category>notetaking</category><category>pyside</category><category>sql</category><category>database</category><category>system-tray</category><category>python</category><category>qt</category><category>databases</category></item><item><title>Getting Started with Streamlit — Build your first Streamlit app and explore some basic features</title><link>https://www.pythonguis.com/tutorials/getting-started-with-streamlit/</link><description>Streamlit is an open-source Python library that makes it easy to create and share custom web apps for machine learning and data science. In this tutorial we'll take a first look at Streamlit, walking through how to install it, set it up, and build a simple interactive app with Python.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 02 Apr 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-04-02:/tutorials/getting-started-with-streamlit/</guid><category>streamlit</category><category>getting-started</category><category>python</category><category>web-apps</category><category>data-science</category><category>streamlit-getting-started</category></item><item><title>PyQt6 Toolbars &amp; Menus — QAction — Defining toolbars, menus, and keyboard shortcuts with QAction</title><link>https://www.pythonguis.com/tutorials/pyqt6-actions-toolbars-menus/</link><description>In this tutorial, we'll look at some of the common user interface elements you've probably seen in many other applications &amp;mdash; toolbars and menus. We'll also explore the neat system Qt provides for minimizing the duplication between different UI areas &amp;mdash; &lt;code&gt;QAction&lt;/code&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sat, 29 Mar 2025 06:00:00 +0000</pubDate><guid>tag:www.pythonguis.com,2025-03-29:/tutorials/pyqt6-actions-toolbars-menus/</guid><category>pyqt6</category><category>menus</category><category>toolbars</category><category>QMenu</category><category>QAction</category><category>QToolbar</category><category>actions</category><category>qt</category><category>pyqt</category><category>foundation</category><category>python</category><category>qt6</category><category>pyqt6-foundation</category></item></channel></rss>