Pie menus
Pie menus are circular popup menus.

Why pie menus? Because of faster selection than linear menus, due to the large slices near the cursor. Pie menus also aid muscle memory because selection is based on direction instead of distance. Additionally, pie menus only take up screen space when necessary, reducing visual distraction and clutter, unlike toolbars and menu bars.
A disadvantage of pie menus is the limited space on the menu surface. It is optimal to limit pie menus to 8 items and use submenus for additional items.
QPieMenu widget
Author: Peter Strath (email: pstrath@btinternet.com)
Features
- Keyboard acceleration using the number pad and arrow keys. Press F1 to show all tooltips.
- Submenu support a menu can popup another one.
- Factory method to easily create entire menus.
- Infinite edges for easy selection. While the Mac OS menu bar is "infinitely wide" due to its placement on the edge of the screen, pie menus are both infinitely wide and near the mouse cursor for faster selection.
- Text editor and file browser examples.
Screenshots
Example
import piemenu, sys
from qt import *
qapp = QApplication(sys.argv)
qapp.connect(qapp, SIGNAL('lastWindowClosed()'), qapp, SLOT('quit()'))
def printActivated(item):
print item.text()
menu = piemenu.createMenu(['Item 1', 'Item 2'])
menu.connect(menu, PYSIGNAL('activated'), printActivated)
qapp.setMainWidget(menu)
menu.eventLoop(QCursor.pos())
Dependencies
Software required to use the QPieMenu widget:API
piemenu.QPieMenu methods:- insertItem(text, icon)
- popup(x, y)
- setBackground(background)
- activated(item)
- highlighted(item)
- text()
- icon()
- setText(text)
- setIcon(icon)
Download
Version 0.11.0 for Linux (85KB, 2006.01.15, changes)
Development version
Latest version in development is available from a subversion repository. To check out a copy, use the following command:svn co http://neoui.org/svn/neoui-pyqt/trunk neoui
Links
- Pie Menu Central - more pie menu information; by Don Hopkins
- RadialContext - pie menus for Firefox and Mozilla; by Jens Timmerman