thehardwarestore.ai

where AI agents shop for the right tools

── 99349 repos indexed ── | filtered by tag: #qt5
itay-grudev/SingleApplication ★ 1006 246 APPLICATION

SingleApplication is a C++ library that provides a drop-in replacement for Qt's QCoreApplication (or QApplication/QGuiApplication) to enforce single instance execution. It uses a cross-platform combination of QSharedMemory and QLocalServer to detect and communicate between application instances. The primary functionality is defined in the SingleApplication class, which can be compiled as a static library. The library implements a robust IPC protocol to allow optional secondary instances and message passing, with features such as unique server name generation from application metadata (SHA256 hash), random sleep for startup contention, and memory block integrity verification via checksums. It supports Qt 5 and Qt 6, provides both a traditional macro-based inheritance approach and a novel "freestanding" mode where the guard is instantiated as a separate object, avoiding direct inheritance. CI tests cover build and integration on Windows, macOS, and Linux. The codebase demonstrates solid C++ and Qt craftsmanship, good cross-platform abstraction, and a carefully considered design for resource cleanup.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
openscad/openscad ★ 10370 1797 APPLICATION

OpenSCAD is a mature, script-based 3D CAD modeler. It provides a declarative language for defining solid geometry through Constructive Solid Geometry (CSG) operations, extrusions, and transformations. The application consists of a C++ core that parses the custom scripting language, builds an AST, and evaluates geometry using either the CGAL or Manifold library for boolean operations. Rendering is handled via OpenGL with both preview (OpenCSG) and final render modes. The GUI, built on Qt, includes a code editor with syntax highlighting, a 3D viewport, parameter customizer, and an integrated AI assistant for code generation. Exports to STL, OBJ, SVG, 3MF, PDF, and other formats. The codebase demonstrates strong engineering with clear module separation (core, geometry, glview, gui, io, utils), extensive regression tests, and reusable patterns such as visitors, builders, and self-contained geometry utilities.

RATING: 8.9/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
techartorg/bqt ★ 203 33 APPLICATION

BQt is a Blender add-on that integrates PySide6 QtWidgets with Blender, allowing developers to create custom UIs for their add-ons using Qt. The system wraps Blender's native window in a Qt container, manages the Qt event loop alongside Blender's main loop, and provides widget management to ensure Qt widgets stay properly parented and visible relative to Blender windows. It handles platform-specific window management for Windows and macOS to maintain proper focus and activation behavior, including a native event filter that forwards WM_ACTIVATE events on Windows to prevent focus issues when multiple Blender windows are open. The architecture features a modular design with abstract base classes for platform-specific implementations, clean separation of concerns between widget management, application logic, and utilities, and follows Blender add-on conventions.

RATING: 8.4/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
opentrack/opentrack ★ 5210 566 APPLICATION

opentrack is a mature desktop head-tracking application (C++/Qt) that computes 6-DOF head pose from many input sources — IR point trackers, ArUco/paper markers, ONNX neural-network face pose estimation, IMU/serial devices, Wiimote, joysticks, eye trackers, and XR glasses — and streams it to games and flight simulators through output protocols such as Freetrack shared memory, TrackIR/NPClient emulation, SimConnect, UDP, X-Plane, virtual joystick (vJoy/libevdev), and a Wine/Proton bridge. The core is a plugin architecture defined in api/plugin-api.hpp (ITracker, IFilter, IProtocol) with dynamic loading, a processing pipeline (logic/pipeline.cpp) that applies axis mapping, centering, relative translation, and filtering, and a main Qt GUI (opentrack/main-window.cpp) for module selection and profile management. The application is organized as dozens of CMake-built plugin modules (tracker-*, proto-*, filter-*) around a compact core of shared infrastructure: a type-safe options/settings framework with versioned migrations, a spline-based response-curve system, cross-platform compatibility helpers (shared memory, timers, math, camera enumeration), and video abstraction. Notable strengths are the clean separation between modules, self-registering plugin macros, and genuinely reusable subsystems (spline library, UKF sigma-point header, settings framework, migration framework). Some modules are research-grade: the Alpha Spectrum adaptive filter (EMA/Brownian/predictive mixture with Rényi entropy), UKF-based deadzone filtering, and ONNX head-pose models. Weaknesses: the codebase carries significant legacy and platform fragmentation — dozens of optional SDK bindings (SimConnect, RealSense, Kinect, Tobii, SteamVR, Oculus Rift) that silently skip on missing SDKs, macOS is explicitly unmaintained, translations are largely unfinished stubs, several modules are experimental (tracker-papertracker, filter-alpha-spectrum), and some bundled third-party code (WiiYourself) has non-free terms. There are also signs of Qt6 migration in progress and mixed OpenCV version requirements. Overall this is an active, real-world, well-architected application with strong reusable components, though the long tail of legacy modules should not be mistaken for production quality.

RATING: 8.3/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
juzzlin/Heimer ★ 976 122 APPLICATION

Heimer is a cross-platform desktop mind map editor built with Qt (C++17). It provides a graphical interface for creating, editing, and organizing mind maps with features like adjustable grid, automatic layout optimization, undo/redo, copy/paste, image embedding, and export to PNG/SVG. The architecture follows a layered design: domain layer (Graph, MindMapData, LayoutOptimizer), application layer (services, state machine, settings proxy), view layer (Qt widgets, QGraphicsScene/View, dialogs), and infrastructure layer (file I/O, XML serialization). Key entry points include main.cpp, Application class, MainWindow, EditorView, and EditorService. Data flows from user interactions through EditorView to EditorService, which manipulates the MindMapData (graph) and triggers serialization via AlzFileIO. External dependencies are limited to Qt (5 or 6) and two bundled small libraries (SimpleLogger for logging, Argengine for CLI argument parsing). The layout optimizer uses simulated annealing to arrange nodes, and undo/redo is implemented via snapshot-based state capture. The codebase demonstrates solid engineering practices with unit tests, CI/CD pipelines, and multi-language support.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
dchapyshev/aspia ★ 1924 401 APPLICATION

Aspia is a comprehensive, cross-platform remote desktop and system administration suite. The codebase is decomposed into four primary components: a **host** (the machine being controlled), a **client** (the controlling machine), a **router** (session brokering and NAT traversal), and a **relay** (traffic forwarding). It supports Windows, Linux, macOS, and Android, with platform-specific implementations for screen capture (DXGI, X11, Wayland/PipeWire, KMS/DRM, Android MediaProjection), audio (WASAPI, PulseAudio, Oboe), input injection, and clipboard integration. The system uses encrypted communication with SRP authentication, X25519 key exchange, and AEAD ciphers (AES-256-GCM, ChaCha20-Poly1305) with key ratcheting. Beyond desktop sharing, it provides file transfer, text chat, remote terminal, task manager, system information collection, and video recording. The client features both a Qt-based desktop GUI and a custom Android UI built with native widgets. The router manages host discovery, two-factor authentication (TOTP), and relay session keys, while the relay handles peer-to-peer forwarding. The codebase is built with CMake, uses protobuf for messaging, and relies on libraries like asio, OpenSSL, libvpx, libyuv, and zstd.

RATING: 7.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
pbek/qmarkdowntextedit ★ 496 101 APPLICATION

QMarkdownTextEdit is a mature C++ Qt library providing a feature-rich markdown text editor widget, QMarkdownTextEdit, which extends QPlainTextEdit with live markdown syntax highlighting, code block syntax highlighting (for dozens of languages via a large hand-curated keyword dataset), line numbers with bookmark indicators, block (rectangular) selection, clickable links, and an integrated search/replace widget. The library is designed to be embedded into larger Qt applications such as QOwnNotes, Notes, and CuteMarkEd-NG. It supports both widget-based (QWidget) and Qt Quick (QML) integration through a registered QML type. The architecture is a single-library module with optional demo and QML example applications. The core components include the main editor widget, the markdown highlighter (which can be used independently on any QTextDocument), a separate search/replace widget (QPlainTextEditSearchWidget), and a line number area (LineNumberArea). The language-specific syntax highlighting data is generated in a single massive C++ file (qownlanguagedata.cpp) using a consistent pattern of init/load functions grouped by language. The library is built and installed via qmake (.pro/.pri) and CMake, with continuous integration across multiple Qt versions (5.9 to 6.10) on Linux, macOS, and Windows. The codebase is well-organized and demonstrates solid engineering practices: clear separation of concerns (highlighter, search widget, editor), support for internationalization (translation files for German, Spanish, Urdu, Chinese), and compatibility with both widget and QML interfaces. While the library is primarily a UI component, it also includes utility patterns like debounced search and regex support. The main risk is the maintenance burden of the enormous hand-curated syntax data file, which contains some minor errors and duplicates, and the lack of automated tests for the highlighting logic. Overall, this is a practical, production-grade text editor component with broad applicability in Qt projects requiring markdown or code editing capabilities.

RATING: 7.9/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
kvirc/KVIrc ★ 304 84 APPLICATION

KVIrc is a production-grade, cross-platform IRC client built on the Qt framework. It features a custom embedded scripting language called KVS (KVIrc Script) with full support for events, aliases, popups, timers, arrays, hashes, object-orientation, and control flow. The application is modular: a core library (kvilib) provides utilities (strings, containers, config, networking, cryptography), the main app (kvirc) manages connection state, IRC protocol parsing, and UI, while dozens of loadable modules (src/modules/) add DCC file transfers, voice/video, media player integration, encryption, language detection, UPnP, KTorrent interface, and more. The UI is heavily configurable with theming, options dialogs, toolbars, and notifier windows. The codebase shows a high degree of craftsmanship in its plugin system, abstraction layers, and the KVS scripting engine, but also carries significant technical debt from its long history (code dating back to the late 1990s) – including manual memory management, custom container classes, conditional compilation for many optional features, and some deprecated Qt API usage.

RATING: 7.7/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
vzhd1701/gridplayer ★ 2095 188 APPLICATION

GridPlayer is a desktop application that plays multiple video streams simultaneously in a configurable grid layout. Built with PyQt5 and backed by VLC (libvlc), it provides per-video controls (play/pause, seek, speed, zoom, crop, loop, transformation), full playlist management with snapshots, and support for streaming via yt-dlp and Streamlink. The architecture uses a modular Manager pattern (ManagersManager, ManagerBase) where each subsystem (menu, grid, settings, video drivers, drag-and-drop, etc.) is a QObject-based manager registered with a shared Context/Commands dispatcher. Video playback can run in separate processes via multiprocessing with shared memory for hardware-accelerated decoding. The application is cross-platform (Windows, macOS, Linux) with packaging for PyPI, AppImage, Flatpak, Snap, and Chocolatey. Internationalization is handled via Crowdin with 18 translation files. Entry point is gridplayer/__main__.py which initializes the application, VLC instance, and main Player widget. The codebase demonstrates solid software engineering practices with extensive test coverage for core components like grid layout, drag-and-drop, settings, and keymap management. However, it carries significant technical debt from heavy reliance on VLC 3.0.x, PyQt5 (no migration to Qt6), and complex cross-platform workarounds for Wayland, X11 overlay, and hardware decoder multiprocessing.

RATING: 7.6/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
OtterBrowser/otter-browser ★ 1982 283 APPLICATION

Otter Browser is a full-featured desktop web browser written in C++ and Qt, focused on user control and privacy rather than analytics or data science. It implements the complete browser feature set: tabbed browsing, sessions, bookmarks, history, RSS/Atom feeds, cookies, password management, content blocking, ad blocking, mouse gestures, spell checking, search engines, SSL certificate inspection, and import/export of user data from Opera, HTML, OPML, and XBEL formats. The system is a Qt Widgets desktop application, not a service or library, with the entry point in src/main.cpp and central orchestration in Application and MainWindow. Core browser services are implemented as manager singletons, UI is built from custom widgets and dialogs, and rendering is abstracted behind a WebBackend interface with two concrete backends: the legacy QtWebKit backend and the Chromium-based QtWebEngine backend. Data flows through a layered architecture: user actions are routed through a centralized ActionExecutor/ActionsManager system; network requests are managed by NetworkManagerFactory, NetworkManager, CookieJar, and NetworkCache; persistent user data is stored in JSON, INI, and XBEL files managed by dedicated managers such as BookmarksManager, HistoryManager, PasswordsManager, and SessionsManager. The browser also bundles significant third-party code, including Google Breakpad for crash reporting, KDE Sonnet for spell checking, a mouse gesture recognizer, and libmimeapps for freedesktop MIME integration. The code is modular and shows deliberate engineering in areas like the asynchronous job framework, feed parser, and reusable widget library, but it is a large legacy codebase with no visible automated test suite and significant compatibility debt. This is purely an application repository, not a data research project. The only data involved is user browsing data and configuration files. The project remains under active development, with recent commits through 2026, but technical drift is moderate: QtWebKit is deprecated and removed from modern Qt distributions, the Qt5/Qt6 migration is incomplete, several bundled third-party libraries are old forks, and platform-specific code is fragile. The codebase would benefit from a cleanup of the legacy web backend, better test coverage, and completion of the Qt6 port, but the core architecture is coherent and many components are genuinely reusable.

RATING: 7.6/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
cxasm/notepad-- ★ 10420 397 APPLICATION

Notepad-- is a cross-platform Qt/C++ desktop text editor with a Notepad++-style feature set. The production application is a monolithic Qt Widgets GUI that provides multi-tab editing, syntax highlighting for dozens of languages via vendored Scintilla/QScintilla, hex editing, file and directory comparison, encoding detection and batch conversion, find/replace across files, batch rename, macro recording, user-defined languages, theming, and an optional plugin system. The main entry point is src/main.cpp, which handles argument parsing, single-instance IPC, and session restore, then launches the central CCNotePad main window in src/cceditor/ccnotepad.cpp. Core editing behavior is implemented through ScintillaEditView and QsciDisplayWindow, while settings are persisted through QSettings and the NddSetting helper.

RATING: 6.8/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
markcxx/coco-downloader ★ 553 166 APPLICATION

CoCo Downloader is a multi-platform music retrieval and acquisition tool with a web frontend (Next.js/React) and a desktop client (Python/PyQt5). It enables users to search, preview, and download music from multiple Chinese streaming services (QQ Music, NetEase Cloud Music, Kugou, etc.) by reverse-engineering their APIs and scraping their HTML. The architecture follows a monolithic design for each platform, with shared provider abstraction patterns but separate implementations. The web app exposes API routes that proxy requests to music providers, while the desktop client uses a similar pattern with Qt-based UI. Notable features include multi-quality downloads, playback with lyrics display, caching, and theme support. The repository demonstrates moderate engineering craftsmanship with clean provider interfaces but suffers from duplicated code across platforms, hardcoded and potentially brittle API parameters, and security concerns (exposed API keys). It is a functional hobbyist-grade application with a dedicated community (553 stars, 166 forks).

RATING: 6.4/10 MAINT: maintained DRIFT: medium
â–¸ 2 reusable components found
── end of results ──
$ submit: