Skip to content

Calendar Widgets

Custom calendar widgets for date selection and milestone display.

Available Widgets

MilestoneCalendarWidget

Custom QCalendarWidget for displaying milestones with visual indicators.

from src.main_hub.features.home_system.bound_subsystems.milestone_calendar.milestone_calendar import (
    MilestoneCalendarWidget,
)

# Create widget
calendar = MilestoneCalendarWidget(parent)

# Connect to signals
calendar.milestoneClicked.connect(self.on_milestone_clicked)
calendar.noMilestoneClicked.connect(self.show_default_content)

# Add milestones
calendar.add_milestone({
    "date": QDate(2026, 1, 26),
    "title": "Project Deadline",
    "description": "Final delivery",
    "icon": "milestone_icon",
})

# Set text browser for details
calendar.set_text_browser(self.ui.text_browser)

# Set default markdown content (when no milestone selected)
calendar.set_default_markdown(PathDef("documents/welcome.md"))

Signals

Signal Emitted When
milestoneClicked(dict) User clicks a date with a milestone
noMilestoneClicked() User clicks a date without a milestone

Files

calendar/
    __init__.py
    README.md
    milestone_calendar/
        __init__.py
        milestone_calender.py   # MilestoneCalendarWidget

What Belongs Here

Put here: - Calendar-based widgets - Date picker variants - Timeline widgets

Do NOT put here: - General date utilities (use shared_services/utils/) - Non-calendar date widgets