This guide covers modern icon alternatives to Font Awesome for PyFlowGraph's dark theme Qt application. Research conducted January 2025 to identify the best icon solutions for PySide6 applications.
Current Implementation: Font Awesome icons via embedded fonts Issue: Font Awesome icons don't look modern/professional in dark theme Solution: Migrate to QtAwesome with modern icon sets
Why Phosphor is the best choice for PyFlowGraph:
- 4,470 icons with 5 different weights (Thin, Light, Regular, Bold, Fill)
- Designed at 16px×16px - perfect for Qt toolbar elements
- Excellent legibility at small sizes
- Consistent design language across all icons
- Multiple weights allow perfect matching with Qt's design system
Implementation:
import qtawesome as qta
# Different weights for different UI elements
file_icon = qta.icon('ph.file-thin') # Thin for subtle elements
save_icon = qta.icon('ph.floppy-disk-fill') # Fill for primary actions
settings_icon = qta.icon('ph.gear-bold') # Bold for important actions
search_icon = qta.icon('ph.magnifying-glass-light') # Light for secondary- 2,271 modern icons
- Neutral and timeless look
- Sharp aesthetic with adjustable stroke width
- Good for Qt's design language
truck_icon = qta.icon('ri.truck-fill')
home_icon = qta.icon('ri.home-line')- Follows Google's Material Design guidelines
- Explicit dark theme color guidance
- High versatility and platform optimization
network_icon = qta.icon('mdi6.access-point-network')
cloud_icon = qta.icon('mdi6.cloud-upload')- 569 professional icons
- Clean, technical aesthetic
- Perfect for developer tools
code_icon = qta.icon('msc.code')
terminal_icon = qta.icon('msc.terminal')import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QToolBar
import qtawesome as qta
import qdarktheme
app = QApplication(sys.argv)
qdarktheme.setup_theme() # Apply modern dark theme
# Create toolbar with Phosphor icons
toolbar = QToolBar()
toolbar.addAction(qta.icon('ph.file-thin'), "New")
toolbar.addAction(qta.icon('ph.floppy-disk-fill'), "Save")
toolbar.addAction(qta.icon('ph.gear-bold'), "Settings")For Material Design Icons on dark backgrounds:
- Active icons: White at 100% opacity
- Inactive icons: White at 30% opacity
For Phosphor Icons:
- Use Bold or Fill weights for better visibility on dark backgrounds
- Thin and Light weights for subtle/secondary elements
pip install QtAwesome # Icon library with multiple icon sets
pip install pyqtdarktheme # Modern dark themeQtAwesome includes a browser to preview all available icons:
qta-browserUse this tool to:
- Search for specific icons
- Compare different icon sets
- Copy exact icon names for implementation
- Replace Font Awesome toolbar icons with Phosphor equivalents
- Use Bold/Fill weights for primary actions
- Use Thin/Light weights for secondary actions
- Implement PyQtDarkTheme
- Adjust icon weights for optimal dark theme visibility
- Test icon legibility across different screen densities
- Replace all Font Awesome icons throughout application
- Ensure consistent icon weights and styles
- Document icon usage patterns for future development
| Weight | Use Case | Example |
|---|---|---|
| Thin | Subtle UI elements, secondary actions | Navigation arrows, minor controls |
| Light | Supporting actions, informational icons | Help icons, status indicators |
| Regular | Standard UI elements, default choice | General toolbar actions |
| Bold | Important actions, emphasized elements | Primary save/load actions |
| Fill | Critical actions, active states | Active tool selection, alerts |
- QtAwesome integrates seamlessly with existing PySide6 code
- No changes required to existing icon loading infrastructure
- Icons are vector-based and scale perfectly at any size
- All icon sets are included in single QtAwesome package
- Phosphor icons work exceptionally well with Qt's native styling
- QtAwesome GitHub Repository
- Phosphor Icons Website
- PyQtDarkTheme Documentation
- Research conducted: January 2025
- Monitor QtAwesome updates for new icon sets
- Consider custom icon creation for PyFlowGraph-specific actions
- Evaluate user feedback on icon clarity and recognition
- Potential integration with Qt's native dark mode detection