
Develop Python GUI skills with PyQt6 by exploring widgets, Qt Designer, Qt Quick, and QML, building projects from a notepad app to library management, databases, 2D graphics, charts, and multimedia.
Explore basics of PyQt and Qt5, install PyQt6, create your window, work with QtGUI module, and learn to use Qt Designer, convert UI files to .py, and load UI files.
Explore PyQt introduction, showing how PyQt binds Qt libraries to Python for cross-platform GUI development, and compare PyQt6 with PyQt5 licenses and core modules like QtDesigner and QtCharts.
install PyQt6 and set up Python 3.9 with a free PyCharm community edition to create your first gui window using a basic QWidget and QApplication in PyQt6.
Explore PyQt6 window type classes, including QMainWindow, QDialog, and QWidget, and learn how to add status bars, toolbars, menus, and dockable widgets to build versatile GUIs.
Learn to enhance a PyQt6 gui window by adding an icon, setting a title, and configuring geometry, fixed size, style, and opacity.
Explore how to design PyQt6 applications with Qt Designer, install pyqt6-tools, create and load UI files, and preview configurable windows and widgets.
Convert the Qt Designer UI file to a Python file with pyuic6 -X WindowUI.ui -o WindowUI.py after saving in the project folder, to generate a PyQt6 window from the designer.
Load a Qt Designer ui file in PyQt6 using uic.loadUi to load WindowUI.ui into a Python UI class, then create, show, and run the application.
Explore how to work with different widgets in PyQt, including labels, buttons, combobox, sliders, and radio buttons, manage layouts, create simple apps with Qt Designer, and understand the signal-slot mechanism.
Learn to create and customize PyQt6 labels with QLabel, displaying text, images, and GIFs using setText, setPixmap, and setMovie, with font and color styling.
Create and customize a push button in PyQt6 using QtWidgets. Set geometry, font and icon size, and attach a popup menu with copy and paste actions.
Create a QLineEdit in PyQt6 to let users enter and edit a single line of text with undo, redo, and cut-and-paste, configure echo mode, text, placeholder, enabled, and font settings.
Master layout management in PyQt by using QHBoxLayout to align four QPushButton widgets horizontally, add spacing and stretch, and set the layout on the main window.
Explore vertical layout management with QVBoxLayout in PyQt6, creating and arranging push buttons, setting the main window layout, and using addSpacing and addStretch to control vertical alignment.
Explore using QGridLayout to arrange pushbuttons in a grid, detailing how to create the grid, add widgets by row and column, and apply the layout to the main window.
learn how PyQt6 handles events through signals and slots, connecting widget signals like button clicked to slots that update a label, change text, font, and color.
Create a functional PyQt6 GUI with Qt Designer by adding a push button, line edit, and label, configuring layouts and styles, then implement event handling to display input text.
Designs a simple calculator UI in Qt Designer for PyQt6, with two inputs, four operation buttons, and a label showing addition, subtraction, multiplication, and division results.
Learn to use QRadioButton in PyQt6 to present a single-choice group with isChecked, setIcon, and setText. Implement signals like toggled and stateChanged to update a label when selection changes.
Build a dialog-based PyQt6 GUI in Qt Designer with a label and three radio buttons for flight class options, using layouts, stylesheets, and signal connections to update the result.
Group QRadioButton controls in Qt Designer to present language options (Python, Java, JavaScript) and payment methods, and use signals and slots to display the selections.
master QCheckBox in PyQt6 by handling the stateChanged signal and isChecked queries; build a practical interface with three checkboxes, icons, fonts, and a label showing selections.
Design and implement a PyQt6 GUI with Qt Designer to create checkboxes for pizza, salad, and sausage, calculate total price, and display the result via signals and slots.
Learn to create a QSpinBox in PyQt6, set minimum and maximum values, and handle the valueChanged signal to compute a total price with a simple UI.
Learn to create a QDoubleSpinBox in Qt Designer and use PyQt6 to load the UI, access widgets via object names, and implement signals to compute a total price.
Explore how the QSpinBox editingFinished signal, emitted when focus is lost, updates totals in a PyQt6 app designed with Qt Designer.
Learn to display a live system clock using the QLCDNumber widget in PyQt6, with base switching, display, and a timer that updates the time formatted by QTime.
Create a random number generator GUI with PyQt6 and Qt Designer: design a dialog, add a QLCDNumber and button, and display a 1-500 random value.
Explore the QComboBox in PyQt6: add items, set text, retrieve current text and index, and respond to current index changed and edit text changed signals.
Build a Qt Designer interface with a combobox and label, add language options, load the .ui file in Python, and update the label with the selected language.
Learn to use built-in signals and slots in Qt Designer for simple widget interactions in PyQt. Connect widgets, preview behavior, and apply slots like hide and setFocus.
Explore how to implement a QSlider in PyQt6, including horizontal and vertical orientations, setting minimum and maximum values, tick positions and intervals, and responding to value_changed to update a label.
Design a Qt Designer GUI with a horizontal QSlider and a line edit, displaying the value live. Connect valueChanged and returnPressed signals to sync slider and text input in PyQt6.
Learn to create and populate a QListWidget in PyQt6, manage items with insertItem and insertItems, and reflect selections in a label using signals like clicked, currentRowChanged, and currentTextChanged.
Create a QListWidget in Qt Designer, populate it with Python, Java, C Sharp, C++, and Kotlin, and connect item selection changed to display the current item text in a label.
Design a widget-based PyQt6 app in Qt Designer, convert the UI to Python, and dynamically add items to a QListWidget using a line edit and an add item button.
Create a PyQt6 GUI with Qt Designer to perform CRUD on a QListWidget using add, edit, remove, and sort buttons; convert .ui to .py and implement item operations.
Learn to use QFontComboBox in PyQt6 to change font type and style within a Qt Designer UI by building a practical example.
Learn to build a PyQt6 GUI using QTableWidget and QTableWidgetItem, set row and column counts, and populate a three-by-three table with name, email, and phone items in a vertical layout.
Build a widget-based interface with QTableWidget in Qt Designer, add columns name, email, and phone, fill rows and items, and apply a yellow background; export to a .py file.
Learn to use PyQt6's QCalendarWidget to display a monthly calendar, select dates, and handle the selection_changed signal while accessing the current month, year, and the first day of the week.
Build a PyQt6 calendar app in Qt designer with a calendar widget, labels, a spin box, date of reservation, and a calculate function that computes total room rent.
Learn to use QInputDialog in PyQt6 to collect values with getItem, getText, and getInt. Build a dialog with a combobox, label, and line edit that updates on selection.
Learn to create a color dialog in PyQt6 with QColorDialog, integrate it into a Qt Designer UI, and update the TextEdit and label with the chosen color.
Design a font dialog in PyQt6 with QFontDialog, open it via a push button, and apply the selected font to a text edit using setFont after getFont.
Learn to create QMessageBox dialogs in PyQt6 with Qt Designer, including warning, information, and about messages via push buttons and signal connections.
Learn to implement and customize a QTreeView in PyQt6, using the model-view paradigm with delegates and style sheets to display hierarchical data, support selection, sorting, filtering, and item icons.
Enable drag and drop in the QTreeView, including drag out, accept drops, and drop indicators. Implement drag enter, drag move, and drop handlers to move items inside the tree.
Create a PyQt6 GUI with a QTreeView backed by QFileSystemModel to display the file system. Use a file watcher to update the tree on directory and file changes.
Learn to customize the QTableWidget by populating data, enabling editing, selecting cells, sorting, and styling with style sheets to control background, fonts, borders, and headers.
Sort and filter a PyQt6 QTableWidget by connecting the horizontal header to sorting, and filtering with a line edit to hide nonmatching rows.
Learn to implement clipboard operations in a PyQt6 QTableWidget by enabling a context menu with copy and paste actions, handling selected cells, and transferring data through the system clipboard.
Learn to style and theme PyQt6 widgets using stylesheets with CSS-like syntax, customizing colors, fonts, and hover or pressed states on a push button in a basic window.
Explore advanced styling with stylesheets in PyQt6, applying custom styles to label, line edit, and push button, including layout setup, colors, padding, borders, and hover states.
Learn how to implement drag and drop in a PyQt6 interface by creating draggable and droppable labels, utilizing Q drag, mem data, and mouse press, drag enter, and drop events.
Explore dynamic layouts with layout item and spacer item in PyQt6, learning how items manage geometry and alignment and how spacer items create flexible empty space.
Explore how stretch factor controls space distribution in PyQt6 layouts, learning default zero and unit-based scaling to create responsive, proportioned interfaces.
Master nested layouts in PyQt6 by combining vertical and horizontal box layouts to place labels, line edit, and a push button in a main window.
Explore PyQt6 stacked layout, which shows one widget at a time and enables switching views in multi-page apps. Learn to add widgets and navigate by index with currentChanged signal.
Explore the PyQt6 splitter, a widget that creates resizable panels between two text edits via a draggable handle, with an example of setting initial sizes.
Explore PyQt6 QFormLayout to build structured, aligned forms with labeled fields and input widgets, using box layouts to create clear, visually appealing user interfaces.
Explore advanced event handling in PyQt6, using signals and slots, a button–label example, and an event filter to intercept key presses before the default handler.
Explore custom event handling in PyQt6 by defining a custom event class and a unique event type, emitting it via a custom signal, and updating a label in a window.
Explore event propagation in PyQt6 by propagating mouse clicks through the widget hierarchy, handling events with signals and slots at parent and child levels, and observing style changes.
Handle mouse events in PyQt6 by capturing presses, moves, releases, double clicks, and wheel actions to drag, track positions, and repaint with a painter.
Learn to handle keyboard events in a PyQt6 GUI by capturing key presses to move a label and close the app with the escape key, including key release feedback.
Learn to implement timers and delayed events in PyQt6 using queue timer and queue elapsed timer to schedule actions and measure elapsed time, updating the GUI with timeout signals.
Learn to build a simple notepad application using PyQt6, implementing features like new, open, save, print, print preview, export PDF, and quit, with edit and font formatting through dialogs.
Create a notepad-like PyQt6 app in Qt Designer with a 700-by-500 main window. Build a comprehensive menu bar with File, Edit, and Format menus, including items and shortcuts.
Learn how to add icons to menu items and toolbars in a PyQt6 and Qt Designer project by using a resources directory, including mapping open, save, print, and edit icons.
Separate the GUI design from logic by creating a new main file, importing UI_MainWindow, and subclassing QMainWindow to initialize and display the Notepad window.
Learn to save text from a PyQt6 text editor by creating a save_file method, using QFileDialog.getSaveFileName, writing to the chosen file in write mode, and notifying via a message box.
Develop new functionality in PyQt6 app by adding a maybe_save flow that prompts to save, discard, or cancel when the text is modified, and wire a file_new handler to actionNew.
Develops a PyQt6 open-file workflow by implementing QFileDialog.getOpenFileName flow to open a file, read text in read mode, and display it in a textEdit, with actionOpen triggering the open_file function.
Implement print functionality in PyQt6 by importing QPrinter and QPrintDialog from QtPrintSupport, creating a high‑resolution printer and a print dialog, and printing the textEdit content when the dialog is accepted.
Implement print preview functionality by adding two methods: print_preview and preview_dialog. Configure a high-resolution QPrinter, create a QPrintPreviewDialog, connect paintRequested to print_preview, wire actionPrintPreview triggered to preview_dialog, and execute it.
Implement pdf export in a PyQt6 app by creating export_pdf, using a save file dialog, validating .pdf suffix, configuring QPrinter for pdf output, and printing the textEdit document.
Implement the quit action in the file menu by wiring exit_app to the quit item's triggered signal and closing the main window with self.close; enable Ctrl+Q to quit.
Wire built-in textEdit methods in a PyQt6 GUI to enable undo, redo, cut, copy, and paste via triggered signals, and test by typing to use the edit menu.
Apply bold, italic, and underline formatting to a PyQt6 text editor using a QFont and setting bold, italic, and underline while connecting actionBold, actionItalic, and actionUnderline to textEdit.
Explore left, center, right, and justify text alignment in a PyQt6 text editor by implementing align_left, align_center, align_right, and justify methods, then wiring them to actions and testing results.
Implement font and color dialogs in a simple notepad app using PyQt6, enabling font selection via QFontDialog and text color changes via QColorDialog with an about dialog.
Explore building PyQt database apps by designing interfaces with Qt Designer, then connect to MySQL to insert and retrieve data and build a simple login form.
Connect a PyQt6 GUI designed in Qt Designer to a MySQL database using the MySQL Connector for Python. Install the connector, create a database, and verify the connection with feedback.
Create a PyQt6 widget with Qt Designer to collect username and password and insert them into a MySQL users table, with commit and error handling.
Learn to select data from a MySQL database and display it in PyQt6 QTableWidget, using Qt Designer with line edits for database name and table name and a fetch button.
Design a PyQt6 GUI with Qt Designer to search a password from a MySQL database. Learn building the interface and a search function with mysql.connector to fetch and display results.
Build a simple login interface with PyQt6 and MySQL using Qt Designer, featuring username and password fields, a login button, and credential feedback.
Learn how to manage database connections with QSqlDatabase, connect to SQLite or other DBMS, and execute queries while handling errors and transactions.
Create an SQLite table in a PyQt6 app using QSqlDatabase and QSqlQuery. Define employees with id integer primary key auto increment, name text, and age integer, with error handling.
Design a PyQt6 GUI with Qt Designer to insert data into a SQLite database (example.db) using QSqlDatabase, QSqlQuery, and prepared statements, showing status updates and input clearing.
Learn to select data from a sql database in a PyQt6 app by using QSqlQueryModel, setting a select query for employees table, and showing results in a table view.
Update data in a SQL database using a PyQt6 app with an update query on the employees table, binding inputs and refreshing the view after fetch.
Learn to filter and sort data in a PyQt6 app using SQL queries, connect to the database, fetch data, and display results in a table view with a filter input.
Learn to manage database operations as a single transaction in PyQt6 using QSqlDatabase, with begin, commit, and rollback for atomic updates.
Explore 2d graphics and painting in PyQt by drawing shapes with QPainter, applying gradients, and handling mouse and keypress events. Create shapes such as rectangles, circles, and ellipses.
Learn to draw a rectangle in PyQt6 using QPainter and the paintEvent method, and customize it with pen and brush colors and styles.
Learn to draw an ellipse with the QPainter class in PyQt by implementing paintEvent, creating a QPainter, and applying a pen and brush to customize color, style, and brush pattern.
Draw text with QPainter by building a simple window, implementing paintEvent, and using painter.drawText at coordinates or within a rect with alignment; render HTML text with QTextDocument and drawContents.
Explore the QGradient family in PyQt6, focusing on QLinearGradient to interpolate colors from a start point to an end point using setColorAt with red, green, and yellow on a rectangle.
Learn to create a PyQt6 radial gradient with QRadialGradient using center, radius, and focal point, set color stops, and render a rectangle with QPainter.
Track mouse movement with the PyQt6 mouse move event, display live X and Y coordinates in a label, and enable real-time updates in a PyQt6 GUI.
Explore mouse press and mouse release events in a PyQt6 GUI by updating two labels with the x and y coordinates on left button press and release.
Draw a point by clicking in a PyQt6 window by combining the paint event with mouse press events, rendering with a red pen through a painter.
Learn to draw a line by clicking in a PyQt6 GUI, using mouse press and release events, and a painter to render the line between two points.
Learn to draw a circle by clicking in a PyQt6 window using a painter, rect setup, and mouse events, updating the display on left button click.
Learn to draw a rectangle in a PyQt6 app by handling mouse press and release events with a painter, enabling interactive rectangle creation in a simple GUI.
Learn to draw text in a PyQt6 window by typing in a text editor, selecting a font size from a combo box, and clicking to render with QPainter.
Explain how the cube graphics view and scene render 2d items in a scrollable viewport, create a scene, add movable shapes, and implement a practical PyQt6 example.
Learn how to add a QGraphicsRectItem to a PyQt6 graphics scene by creating a window-based graphics view, initializing a scene, creating and configuring a rect item, and rendering it.
Learn to handle key press events in a PyQt6 and Qt Designer project by making a rectangle focusable, detecting arrow keys, and moving the rectangle on the scene.
Explore network programming in PyQt6 by building TCP/UDP sockets, a client–server model, and data serialization with Json, XML, or binary format, using signals, slots, and error handling.
Learn to handle network requests in PyQt6 using a network access manager with QNetworkRequest and QNetworkReply to call REST APIs and display responses in a practical UI.
Fetches JSON data from a remote server using PyQt6 networking, parses it, and displays titles and bodies in a text edit within a Qt Designer GUI.
This is a course on building Graphical User Interface (GUI) Applications with Python and PyQt6 in 2025, this course is divided in to different parts and sections, in the first part we are going to have a simple introduction to PyQt , after that we go through installation process and what IDE we want to use, in the second part we focus on using different widgets and UI components in PyQt6, in the third part we create a simple notepad application, fourth part is about database handling in PyQt6, basically we are using MySQL database, in the fifth part we work on 2D graphics and drawing, the sixth part is about QtQuick and QML (Qt Markup Language), in the seventh part we focus on working with different charts using PyQtChart, the charts will be created using PyQt and also QtQuick.
in the eight part we create a simple library management system with PyQt6 and Qt designer, in the ninth part we talk about QtMultiMedia and PyQtWebEngine, we will create a simple media player also a simple web browser in PyQt, also we convert our PyQt PY file to EXE file and at the end we create installer for our application. there are different versions of PyQt, in this course we want to use the latest version of PyQt and that is called PyQt6.