Long-lost Qt Goodies – QPieMenu

I bet every single coder out there has some long-forgotten pieces of code, which when rediscovered bring this “WTH. I wrote that?” kind of feeling. I happen to have a lot of such candies 😉 Today, it’s an eye-appealing one – a pie menu. Nothing too innovative, but quite useful from time to time. Every item in a pie menu is equidistant from the center, which sometimes gives a significant boost in clicking performance, especially when the radius is rather small. I used it once to implement a context menu in medical application (you can see it in the demo). I know that Qt Solutions offer a pie menu component called QtPieMenu, but mine is… animated… uhhh… and prettier 😀 And probably easier to use. See it for yourself (the source code is just two small files + a few lines for the demo) and give it a try. I’d appreciate your feedback.

Now then… as an exercise I’m going to write this post in French, lol. Please forgive me my mistakes but it’s the only way I can motivate myself to train writing in French right now 😉

Je parie que chaque coder la-bas a quelque piece de code oublie depuis longtemps que, au moment de redécouverte provoque la “Ce que l’enfer. J’ai ecrit cela?” genre de sentiment. J’ai beaucoup de bonbons tels (can I say that? Anybody knows? 😉 😉 Aujourd’hui c’est un oeil-appel – un menu circulaire. Rien de trop novateur, mais assez util de temps en temps. Chaque item de menu circulaire est à égale distance de centre de menu – un fait qui donne quelquefois une augmentation significative de performance de cliquant avec souris PC, en particuler lorsque le radius est plutôt petit. Je l’ai utilisé une fois dans une application médicale pour mettre en place un menu contextuel (vous pouvez le voir dans le demo). Je sais que Qt Solutions offrent un menu circulaire que s’appele QtPieMenu, mais mon solution est… animé… et plus joli ;D Et probablement plus facile pour usage. Le voir par vous-méme (le source code se compose de seulment deux fichiers petits + quelques lignes pour le demo) et faire un essai. Je vous serais reconnaissant de vos commantaires.

Lovely language indeed 🙂

Source code (BSD-licensed): qpiemenu_20110610.tar

4 Comments

  • Howdy,
    I just wanted to thank you for posting this source! I’m pretty sure I’ll be able to use this in my first major software project – an algorithm visualization tool.

    Are you using the BSD license or the revised version (Check the bottom of the page for a quick overview on the differences)?
    http://producingoss.com/en/license-choosing.html

    I’m not entirely sure how this wordpress business works, but I’ll definitely throw a trackback your way when I do a write up on it.

    Philip Bjorge

  • Hi! In this case I mean the revised version. Thanks for pointing this out. It’s nice to hear that you found my bits of code useful 🙂

  • A little correction 🙂 ( not perfect, but pretty good, I think 😉 ) :

    Je parie que chaque développeur à quelques morceaux de codes oubliés depuis longtemps et que, lorsqu’il les redécouvrent cela provoque un sentiment du style : “pourquoi diable j’ai écrit ça ?”. J’ai beaucoup de perle comme ça, aujourd’hui c’est un menu circulaire. Rien de trop novateur, mais assez utile de temps en temps. Chaque “item” du menu circulaire est à égale distance du centre du menu, ce qui parfois résulte en une augmentation significative de la performance de clique, en particulier lorsque le “radius” est plutôt petit. Je l’ai utilisé une fois dans une application médicale pour mettre en place un menu contextuel (vous pouvez voir ça dans la démo). Je sais que “Qt Solutions” offrent un menu circulaire qui s’appelle “QtPieMenu”, mais ma solution est, …, animé, …, et plus joli ;D, et probablement plus facile à l’usage. Mais allez voir par vous-même (le source code se compose de seulement deux petits fichiers + quelques lignes pour la démo). Je vous serais reconnaissant de vos commentaires.


Leave a Reply

Your email address will not be published. Required fields are marked *