
This course introduces PyQt5 from a to z, explains accessing the Qt toolkit from Python, and covers essential widgets, properties, methods, and signals, plus setup guidance.
Explore Python as an open-source, cross-platform, interpretive language, highlighting its simplicity, readability, and multi-paradigm strengths, its vast modules, and GUI potential with Kutty in the PyQt5 course.
Explore how Qt underpins graphical user interfaces and how PyQt5 provides Python bindings to access C++ classes. Use Designer to design interfaces and learn signals and slots.
Learn how graphical user interfaces enable Python programs to respond to user events using widgets, signals, and slots in a cross-platform Qt framework.
Set up a PyQt5 environment and program. Import modules, create a QApplication, build main canvas or dialog, set a window title, and run the event loop with app.exec_.
Refactor a simple PyQt5 program into an object-oriented class, initialize widgets in __init__, and connect a button to update the window title from a line edit.
Explore how PyQt5 and SIP enable Python bindings to Qt, compare PySide2 and SIP, and review Riverbank Computing licensing options including GPL and commercial licenses.
Set up your PyQt5 environment by installing Python (3.x), choosing an IDE like PyCharm, and using Qt Designer with pyuic5 and pyrcc5 to convert UI and resources.
Set up a macOS development environment for PyQt5 by verifying Python versions, creating a virtual environment, installing PyQt5 and PyQt5 Web Engine, and applying the Q Talk Style.
Install and configure Python on Windows, install PyCharm community edition, create a dedicated virtual environment, and install PyQt5 with PyQtWebEngine and Qt dark style for GUI development.
Explore where to find PyQt5 help, including official docs, open source contributions, and community references. Rely on Tutorials Point, Stack Exchange, YouTube, and forums to learn common widgets and methods.
Explore signals and slots in PyQt5, comparing predefined signals and custom slots with the new style syntax, showing how to connect, emit, and handle data across threads and classes.
learn how Python uses objects as data structures with properties and methods, understand self, dot notation, instances, and classes, and see how constructors create point objects.
Define a custom point class in Python with an __init__ constructor, use self for instance data, and implement a distance_to method using the Pythagorean theorem to measure distance between points.
Learn how to create a point class in a module, instantiate objects, access SRS, call distance_to, print results, and observe default object representations and type.
Define a custom string representation for a point object by implementing __str__, enabling clear printouts with x and y coordinates formatted to five decimals and the EPG code.
Explore how object inheritance extends a 2d point into a 3d point by adding a z coordinate, updating representations, and computing distances in three dimensional space.
Implement private properties and methods in Python with double underscores, using getter and setter methods in a 3d point example with a default meters unit stored privately and validated.
Explore the four principles of object oriented programming in Python—inheritance, polymorphism, abstraction, and encapsulation—through clear examples and the isinstance function.
This lecture explains how to use the PyQt5 QMessageBox dialog. It covers static method and constructor-based approaches, button options like OK, Cancel, and Yes/No, and handling user responses with constants.
Explore how to gather user input with QInputDialog in PyQt5 using static methods such as getText, getInt, getDouble, and getItem, handling OK or cancel results and defaults.
Explore selecting files with PyQt5's QFileDialog, using getOpenFileName, getSaveFileName, and getOpenFileNames to open, save, or choose multiple files across Mac, Windows, and Linux, handling directories, file types, and returned results.
Learn to create and choose colors in PyQt5 with the color object and RGB and alpha. Explore predefined color constants, and use QColorDialog with a default color.
Explore how to create fonts from scratch using a QFont object, select via the QFontDialog, and apply the chosen font to widgets.
Explore creating and manipulating dates and times in PyQt5 with QDate and QTime, including Julian day, Unix time, time zones, and formatting date and time as strings.
Learn to work with images in PyQt5 using QPixmap, including loading images, inspecting size and height, scaling with aspect ratio, and saving, with file-based constructors.
Explore the QWidget class in PyQt5 from a to z, covering widget state, visibility, modal dialogs, positioning, sizing, geometry, styling with fonts and style sheets, and tooltips.
Learn to use PyQt5 QLabel to display simple and rich text, show images with setPixmap, apply fonts and bold/italic styles, and render HTML-like formatting and image scaling.
Explore the PyQt5 QPushButton class, its inheritance from QAbstractButton (and QWidget), and its features: text and icon support via QPixmap, setFlat, setDefaultButton, and the clicked signal with auto repeat.
Learn how to implement two- and three-state checkboxes in PyQt5, using isChecked, setChecked, isTristate, checkState, and setCheckState, with stateChanged signals and enum values.
Learn to implement QRadioButton with QButtonGroup to create exclusive color and size controls. Connect shared events and style the label using stylesheets to adjust color and font size.
Master QLineEdit in PyQt5 by entering text, using placeholder text, and toggling read-only or password modes. Learn to set alignment, maximum characters, and respond to textChanged, textEdited, and editingFinished signals.
Explore PyQt5 spin boxes for numeric input, including integer and decimal variants, with min/max ranges, single step values, read-only states, prefix and suffix, and validation signals.
Learn to edit dates and times with PyQt5's QDateTimeEdit, including constructors for date, time, or date-time values and optional calendar popup. Handle dateChanged, dateTimeChanged, and timeChanged signals.
Explore simple combo boxes in Qt with PyQt5. Learn to add, insert, and remove items, access text, data, and icons, and handle signals such as current index changed and highlighted.
Learn to implement editable combo boxes in PyQt5, enabling user-added items and updates via setEditable, isEditable, line edit, and signals, demonstrated with a plant species example.
Learn how to replace absolute positioning with flexible PyQt5 layouts, including box, form, and grid layouts, adding widgets and sub-layouts, using stretches to push content, and configuring alignment and directions.
Learn to build PyQt5 forms with QFormLayout, creating labeled fields for first name, last name, started date, and age, and adjust label alignment and word wrapping.
Master PyQt5's QGridLayout by placing push buttons in a grid with row and column coordinates, and control sizing with stretch factors. Learn to encapsulate layout setup in a dedicated method.
Learn to design compound layouts in PyQt5 by combining vertical and horizontal box layouts to create a stretchable, size-adaptive form with a listbox, push buttons, and percent-based sizing.
Explore how to build a QStackedLayout with a combo box in PyQt5, switching visible container widgets (general, species, location, surveys) via current index and signals.
Explore the QTabWidget in PyQt5, learn to add tabs with addTab, set tab text and position, and enable movable or closable tabs with relevant signals.
Explore how to use QListWidget and QListWidgetItem in PyQt5, adding items with icons and data, configuring selection and sorting, and handling signals like current item changed and item clicked.
Explore a live PyQt5 QListWidget programming example that builds a two-list interface with add, remove, and do something actions, showcasing item transfer, selection modes, and dynamic button states.
Connect the do something button click to a custom slot, check the languages list box count, and show a message box listing the languages or noting none.
Explore the QTreeWidget for handling hierarchical data in PyQt5, using tree items with multiple columns, parent-child relationships, and common methods to add, search, and display nested structures.
Learn to build and populate a multi-column QTreeWidget in PyQt5, create top-level and child items, sort, resize columns, and handle item double-click events with signals and slots.
Learn to enhance a PyQt5 QTreeWidget by enabling double-click actions, displaying messages, and adding new classes via a combo box, line edit, and button.
Explore the QPlainTextEdit widget in PyQt5 and learn to populate, insert, and append multi-line plain text, with placeholder text and signals for cursor, selection, and text changes.
Demonstrate rich text editing with QTextEdit in PyQt5, including text cursor, selection, color, font, and HTML or markdown formatting. Build a simple editor UI with formatting controls.
Learn to use the lightweight text browser widget to display a restricted HTML subset in read-only mode, with links, lists, images, and simple CSS, loadable via set source.
Render modern html with qwebengineview using setHtml and setUrl, and navigate history with back and forward, installing pyqt web engine to load docs or local html plots.
Learn to implement a PyQt5 app with QWebEngineView that updates class documentation on item double-click, and add back, forward, and home navigation within a responsive layout.
Explore how the PyQt5 QTableWidget handles data in rows and columns, with headers, signals, and the ability to add QTableWidgetItem with text, icons, and alignment.
Implements a show history toggle for a QTableWidget under a QWebEngineView, populating browser history with class, module, URL, and last visited, and updating on navigation.
Organize user interfaces with PyQt5's qgroupbox, learning to nest radio buttons, apply checkable and flat styles, and control alignment via layouts and signals.
Explore how to display numbers with PyQt5's QLCDNumber widget, control digits and mood (decimal, hex, auto, binary), handle overflow, and style via segment style and stylesheets with practical coding demos.
Learn to use PyQt5 QSlider and QDial to adjust numeric values, display them on an LCD, and synchronize slider and dial with signals.
Learn how to use QProgressBar to display progress of long-running tasks by setting values programmatically, configuring range and orientation, enabling text display, and responding to value-changed signals, without user input.
Explore QTimer class in PyQt5 to start, stop, and set intervals. Understand timeout signals and interval types—precise, coarse, and very coarse—and see a color-changing label example with signals and slots.
Explore how to customize PyQt5 widgets with Qt style sheets. Apply global or widget-specific styles using selectors and properties like color, background, border, font, padding, and margins.
Learn to implement and customize PyQt5 widgets with style sheets, apply per-button and global styles, explore default and hover states, and tune padding, margin, borders, and colors for polished UI.
Explore styling PyQt5 widgets with stateful selectors and sub-controls. Apply hover, open, checked, and read-only states across push buttons, checkboxes, radios, combo boxes, line edits, sliders, and list items.
Learn to apply styles with QStyleFactory in PyQt5 by listing available styles with Keys and creating a QStyle with create. Apply it via setStyle to the app or individual widgets.
Use style functions to centralize button styling with return strings from style sheets, ensuring consistent add and delete button styles across the app and simplifying color, padding, and borders.
Apply dark mode in PyQt5 with the Q Dark Style module by importing it and setting the application stylesheet. Toggle modes with signals and customize widget styles via style functions.
Learn how to design interfaces with Qt Designer, dragging and dropping widgets, and connect signals to slots; save as an XML UI file and convert to Python for PyQt5 development.
Learn to connect a slider's value change signal to an LCD display using Qt Designer's signal editor, exploring predefined slots, drag-and-drop connections, and editing signals and slots.
Recreate a group box interface in QtDesigner by building a dialog with a horizontal layout, three group boxes, and radio buttons.
Convert xml ui files from cute designer to python code with PyQt5 uic, generating a class for your main dialog that wires signals and slots.
Learn to connect signals to custom slots in PyQt5 Qt Designer interfaces, create slots for toggled and radio button events, and apply group box colors via stylesheets.
Decouple the PyQt5 gui from application code by exporting the ui as a module or loading the ui file with UIC, enabling flexible development and signals and slots integration.
Explore building PyQt5 interfaces with QMainWindow and QMenu, using QAction objects, icons, shortcuts, and nested menus, then connect actions to Python slots and design with cute designer.
Discover how to create and customize toolbars in PyQt5, connect actions to signals and slots, and use designer tools to add icons, tooltips, and keyboard shortcuts for a polished UI.
Learn to use the QMainWindow status bar to show temporary messages, display a progress bar, and add permanent widgets, with Windows style and Mac OS style options.
Explore how to use the QSplitter class in PyQt5, adjusting orientation and handle to create resizable panels, and preview splitter moved signals in the cute designer.
Learn to build multi-dialog PyQt5 applications with menus, toolbars, and text editing, using class-based dialogs, show and exec, and practical module import patterns for scalable GUIs.
Learn to develop modern graphical user interfaces in Python that have the look and feel of your native operating system, whether its Windows, MacOs, or Linux. Learn when and how to use text boxes, comboboxes, file dialogs, date and color pickers, web page viewers, images, and more to create state of the art applications with menus, toolbars, and user size-able windows.
When your GUI is finished learn how to populate it with data from a SQL database and allow users to modify that data and save their changes in full featured applications. Learn how to create multi-threaded applications so that data processing doesn't interfere with the user interface.