Important: Please read the Qt Code of Conduct -

Implementation advice needed: per-frame sound effect indicators

  • The software I'm working on is a simple stop-motion animation package for kids. It's got the ability to add sound effects, up to one per frame. In a normal use-case a student might put in 20-30 sound effects in a 1000 frame movie. Right now the interface has a slider along the bottom edge for moving between already-taken frames. I'd like to add indicators nearby showing where the sound effects are (that is, the frame they start playing at). In an ideal world those indicators would have a tooltip stating their frame number and the sound chosen, and could be clicked on to bring up the SFX editing dialog.

    I have three thoughts about how to implement this.

    1. Subclass QSlider and manually draw in "tick marks" at the frames that have SFX. Overload the mouse functions to handle the interactivity. Probably use a double-click to edit the SFX. Try to minimize interference with the normal function of the slider.
    2. Create an entirely separate single widget based on QGraphicsView and draw the ticks where I need them. Display it above (or below) the slider so it doesn't interfere. Manually code in the mouse handling.
    3. Create a widget based on a horizontal layout. Each frame gets a cell. The cells representing SFX get a button added to them. The buttons do their thing. I've never tried making a layout with that many cells, though. It seems kind of sketchy.

    Any thoughts on these ideas, or any other suggestions?

  • Lifetime Qt Champion


    If you need to show that many pictures, why not a horizontal QListView with a custom delegate ?

    You could also paint there information about the SFX as an "overlay" on the corresponding frames.

Log in to reply