a# QR Studio — PyQt6 Offline QR Code Generator
A modern, dark-mode PyQt6 desktop app for generating, customizing, exporting, and decoding QR codes — fully offline. Includes guided forms (URL, Wi-Fi, vCard, Contact, Email, SMS, Geo, Event), gradient and transparent colors, logo overlays, PNG/SVG/PDF exports, CSV batch generation, and a Windows launcher that auto-installs dependencies.
- Guided Forms: Text, URL, Wi-Fi, vCard, Contact (full details), Email, SMS, Geo, Event (iCalendar).
- Live Preview: Adjustable size (128–4096 px), margin, error correction L/M/Q/H.
- Color Options: Solid foreground, optional gradient; background color or transparent PNG.
- Branding: Center logo overlay with adjustable size.
- Export: PNG, SVG, and PDF sheet (N×M grid for printing).
- Batch: Generate multiple codes from CSV (
data,filename). - Decode: Read QR content from an image (file picker or drag & drop).
- UI/UX: Clean dark theme, visible focus/selection, clear checkbox state.
Everything runs locally. No data leaves your machine.
- Windows 10/11
- Python 3.10+
- Packages:
PyQt6,qrcode[pil],pillow,opencv-python,reportlab
The included launcher installs missing packages automatically on first run.
/your-folder
├─ qr_studio.py # main application (PyQt6)
├─ QRLuncher.py # Python launcher (checks/installs deps -> runs app)
└─ Launch_QR.vbs # Silent Windows launcher (double-clickable)
- Place
QRLuncher.py,Launch_QR.vbs, andqr_studio.pyin the same folder. - Double-click
Launch_QR.vbs.- Tries
py -3first, thenpython. - Runs
QRLuncher.py, which auto-installs any missing dependencies and starts the app.
- Tries
# Navigate to the folder
cd "path\to\your\folder"
# Run the launcher (handles installs automatically)
py -3 ".\QRLuncher.py"
# or, if py is not on PATH
python ".\QRLuncher.py"Manual install (alternative):
py -3 -m pip install --upgrade pip
py -3 -m pip install PyQt6 qrcode[pil] pillow opencv-python reportlab
py -3 ".\qr_studio.py"Checks dependencies → installs missing → runs qr_studio.py from the same folder.
Handles spaces in paths safely.
Double-click launcher that silently runs QRLuncher.py.
Tries py -3 → python. Shows a message if Python is missing.
Example:
data,filename
https://example.com,example
WIFI:T:WPA;S:MySSID;P:Secret123;;,wifi_home
BEGIN:VCARD
VERSION:3.0
FN:John Doe
TEL:+971500000000
EMAIL:[email protected]
END:VCARD
,contact_john
Then in the app click CSV Batch, select the CSV, and choose an output folder.
- Click Export PDF Sheet, choose columns and rows (e.g. 3×4).
- Saves an A4 PDF with a grid of the current QR repeated.
- Colors: FG #1 (and optional FG #2 with Gradient). Use BG Transparent for sticker-like PNGs.
- Logos: Transparent logos at ~15–20% size work best. Use error correction Q/H to preserve scannability.
- SVG: Some viewers ignore transparency — use PNG for guaranteed results.
py -3 -m pip install pyinstaller
py -3 -m PyInstaller --noconfirm --onefile --windowed --icon=icon.ico --name QRStudio qr_studio.py- Output:
dist\QRStudio.exe
Your path contains spaces and wasn’t quoted. Use:
py -3 "path\to\QRLuncher.py"or just double-click Launch_QR.vbs.
Install Python 3.10+ from python.org and ensure py or python is available in PATH.
Update to the latest qr_studio.py. Make sure Gradient is off if you only want a solid color.
Latest stylesheet includes QCheckBox::indicator:checked. Replace with updated code if you don’t see ticks.
- 100% offline
- No telemetry
- No network connections
GPL-3.0