Skip to content

Timeline Slider

A timeline slider with markers for frame-based or time-based navigation.

Preview

FXTimelineSlider

FXTimelineSlider

Bases: FXThemeAware, QWidget

A timeline/scrubber widget perfect for DCC applications.

This widget provides a timeline slider with: - Frame range display - Keyframe markers - Current frame indicator - Optional playback controls

Parameters:

Name Type Description Default

parent

Optional[QWidget]

Parent widget.

None

start_frame

int

Start frame of the timeline.

1

end_frame

int

End frame of the timeline.

100

current_frame

Optional[int]

Initial current frame.

None

fps

int

Frames per second for playback (default 24).

24

show_controls

bool

Whether to show playback controls.

True

show_spinbox

bool

Whether to show the frame spinbox.

True
Signals

frame_changed: Emitted when the current frame changes. playback_started: Emitted when playback starts. playback_stopped: Emitted when playback stops.

Examples:

>>> timeline = FXTimelineSlider(start_frame=1, end_frame=100)
>>> timeline.frame_changed.connect(lambda f: print(f"Frame: {f}"))
>>> timeline.add_keyframe(10)
>>> timeline.add_keyframe(50)

Methods:

Name Description
add_keyframe

Add a keyframe marker.

clear_keyframes

Remove all keyframe markers.

go_to_end

Go to the end frame.

go_to_start

Go to the start frame.

next_frame

Advance to the next frame.

play

Start playback.

previous_frame

Go to the previous frame.

remove_keyframe

Remove a keyframe marker.

set_fps

Set the frames per second.

set_frame

Set the current frame.

set_range

Set the frame range.

stop

Stop playback.

toggle_playback

Toggle playback state.

Attributes:

Name Type Description
current_frame int

Return the current frame.

fps int

Return the current FPS.

frame_range Tuple[int, int]

Return the frame range as (start, end).

current_frame property writable

current_frame: int

Return the current frame.

fps property

fps: int

Return the current FPS.

frame_range property

frame_range: Tuple[int, int]

Return the frame range as (start, end).

add_keyframe

add_keyframe(frame: int) -> None

Add a keyframe marker.

Parameters:

Name Type Description Default

frame

int

The frame number to mark.

required

clear_keyframes

clear_keyframes() -> None

Remove all keyframe markers.

go_to_end

go_to_end() -> None

Go to the end frame.

go_to_start

go_to_start() -> None

Go to the start frame.

next_frame

next_frame() -> None

Advance to the next frame.

play

play() -> None

Start playback.

previous_frame

previous_frame() -> None

Go to the previous frame.

remove_keyframe

remove_keyframe(frame: int) -> None

Remove a keyframe marker.

Parameters:

Name Type Description Default

frame

int

The frame number to remove.

required

set_fps

set_fps(fps: int) -> None

Set the frames per second.

Parameters:

Name Type Description Default

fps

int

Frames per second for playback.

required

set_frame

set_frame(frame: int, emit: bool = True) -> None

Set the current frame.

Parameters:

Name Type Description Default

frame

int

The frame number.

required

emit

bool

Whether to emit the frame_changed signal.

True

set_range

set_range(start: int, end: int) -> None

Set the frame range.

Parameters:

Name Type Description Default

start

int

Start frame.

required

end

int

End frame.

required

stop

stop() -> None

Stop playback.

toggle_playback

toggle_playback() -> None

Toggle playback state.