A modern, feature-rich desktop application for generating customizable QR codes with logo integration, built with Python and Tkinter.
- Modern, professional design with excellent typography
- Responsive layout that adapts to different screen sizes
- Intuitive control panel with organized sections
- Real-time QR code preview with instant updates
- Upload and embed logos directly into QR codes
- Supports multiple image formats (PNG, JPG, JPEG, GIF, BMP, TIFF)
- Automatic logo resizing and optimal positioning
- Smart background handling for better logo visibility
- Interactive color picker for foreground and background
- Visual color buttons showing current selections
- Real-time color preview and updates
- Unlimited color combinations
- High-resolution QR code export (superior to preview quality)
- Multiple output formats (PNG, JPEG)
- Batch export capabilities
- Quality preservation during export
- Light and dark theme toggle
- Consistent theming across all components
- Settings persistence between application sessions
- Eye-friendly design for extended use
- Error Correction Levels: Low (7%), Medium (15%), Quartile (25%), High (30%)
- Module Styles: Square, Rounded, Circle patterns
- Content Types: URLs, text, contact info, WiFi credentials, and more
- Auto-generation: QR codes update as you type
- Python: 3.7 or higher
- Operating System: Windows, macOS, or Linux
- Memory: Minimum 512MB RAM
- Storage: 50MB free space
git clone https://github.com/yourusername/qr-code-generator.git
cd qr-code-generator
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Or install manually:
pip install qrcode[pil] pillow
python qr_generator.py
- Launch the application
- Enter your content in the text area (URL, text, etc.)
- Watch the preview update automatically
- Customize appearance using the style options
- Save your QR code using the download button
- Click "π Upload Logo" button
- Select an image file from your computer
- The logo will automatically appear in the QR code center
- Use "β Remove Logo" to remove it
- Click the colored squares next to "Foreground Color" and "Background Color"
- Use the color picker to select your preferred colors
- The QR code will update instantly
- Click the theme toggle button (π/βοΈ) in the top-right corner
- Your preference will be saved automatically
Level | Recovery Capacity | Use Case |
---|---|---|
Low (7%) | Basic protection | Clean environments |
Medium (15%) | Standard protection | General use (recommended) |
Quartile (25%) | High protection | Potentially damaged codes |
High (30%) | Maximum protection | Harsh conditions |
- Square: Traditional, clean appearance
- Rounded: Modern, soft corners
- Circle: Distinctive, artistic look
qr-code-generator/
βββ qr_generator.py # Main application file
βββ requirements.txt # Python dependencies
βββ qr_settings.json # User settings (auto-generated)
βββ README.md # This file
βββ assets/ # Optional assets folder
βββ screenshots/ # Application screenshots
The application automatically saves:
- Theme preference (light/dark)
- Color selections (foreground/background)
- Window position and size
Settings are stored in qr_settings.json
in the application directory.
- URLs:
https://example.com
- Plain Text: Any text content
- Email:
mailto:user@example.com
- Phone Numbers:
tel:+1234567890
- WiFi:
WIFI:T:WPA;S:NetworkName;P:Password;;
- SMS:
sms:+1234567890:Message
Application won't start:
# Check Python version
python --version
# Reinstall dependencies
pip install --upgrade qrcode[pil] pillow
Logo upload fails:
- Ensure image file is not corrupted
- Try converting to PNG format
- Check file permissions
QR code not generating:
- Verify input content is not empty
- Check error correction level settings
- Try restarting the application
Theme not saving:
- Ensure write permissions in application directory
- Check if
qr_settings.json
is not read-only
Error | Solution |
---|---|
"Invalid image file" | Use supported formats (PNG, JPG, etc.) |
"Failed to generate QR code" | Check input content and settings |
"Failed to save QR code" | Verify write permissions in target directory |
- No Data Collection: Application runs completely offline
- Local Processing: All QR generation happens on your device
- No Network Requests: No data sent to external servers
- Settings Privacy: Only UI preferences are saved locally
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name
- Make your changes and add tests
- Commit your changes:
git commit -am 'Add feature'
- Push to the branch:
git push origin feature-name
- Submit a Pull Request
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
python -m pytest
# Code formatting
black qr_generator.py
# Linting
flake8 qr_generator.py
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: Report bugs on GitHub Issues
- Discussions: Join conversations in GitHub Discussions
- Email: Contact us at support@example.com
Q: Can I generate QR codes for commercial use? A: Yes, the generated QR codes can be used for any purpose, including commercial applications.
Q: What's the maximum size for logos? A: Logos are automatically resized to 20% of the QR code dimensions for optimal scanning.
Q: Can I batch generate multiple QR codes? A: Currently, the application generates one QR code at a time. Batch processing is planned for future releases.
Q: Does the application work offline? A: Yes, completely offline. No internet connection required.
- Batch QR Generation: Generate multiple QR codes from CSV files
- QR Code Scanner: Built-in scanning functionality
- Templates: Pre-designed QR code templates
- History: Recent QR codes history
- Export Formats: SVG, PDF export options
- API Integration: Connect with popular services
- Plugins: Extensible plugin system
- v1.0.0: Initial release with core features
- v1.1.0: Added theme support and logo integration
- v1.2.0: Enhanced UI and color customization
- QRCode Library: python-qrcode for QR generation
- Pillow: PIL/Pillow for image processing
- Tkinter: Python's built-in GUI framework
- Icons: Emoji icons used throughout the interface
- Lines of Code: ~500+
- Features: 15+ major features
- Supported Formats: 6+ image formats
- Themes: 2 (Light/Dark)
- Platforms: 3 (Windows/macOS/Linux)
Made with β€οΈ by Usman