Web Analytics Made Easy - Statcounter
Skip to content

Class SBGUIShortcutLabel#

ClassList > SBGUIShortcutLabel

Provides a label that can display keyboard shortcuts and mouse button icons. More...

  • #include <SBGUIShortcutLabel.hpp>

Inherits the following classes: QLabel, QLabel

Public Types#

Type Name
enum MouseButton
Represents mouse buttons that can be used as shortcuts.

Public Functions#

Type Name
SBGUIShortcutLabel (const QKeySequence & keySequence=QKeySequence(), QWidget * parent=nullptr)
Constructor for SBGUIShortcutLabel .
void setShortCut (const QString & shortcut)
Sets the shortcut to be displayed on the label.
QPixmap toPixmap () const
Converts the label's content to a QPixmap.

Public Static Functions#

Type Name
MouseButton getMouseShortcut (const QString & mouseShortcut)
Converts a string describing a mouse shortcut to the MouseButton enum.

Protected Functions#

Type Name
void paintEvent (QPaintEvent * event) override
Custom paint event handler.
void paintMouseIcon (QPainter & painter, const QRect & rectExt, const MouseButton & mouseShortcut)
Paints a mouse icon on the provided rectangle within the QPainter context.

Detailed Description#

SBGUIShortcutLabel extends QLabel to support displaying shortcuts that include both keyboard sequences and mouse buttons. This widget is suitable for use in GUIs where indicating shortcuts to the user is necessary.

Short name: SBShortcutLabel

  • Example to display nicely a shortcut (Ctrl + Left mouse button) as QLabel:
    #include "SBGUIShortcutLabel.h"
    SBGUIShortcutLabel* shortcutLabel = new SBGUIShortcutLabel();
    shortcutLabel->setShortCut("Ctrl + MOUSE_LEFT_BUTTON");
    shortcutLabel->show();
    

Public Types Documentation#

enum MouseButton#

Represents mouse buttons that can be used as shortcuts.

enum SBGUIShortcutLabel::MouseButton {
    NONE = 1,
    LEFT = 2,
    CENTER = 4,
    RIGHT = 8
};


Public Functions Documentation#

function SBGUIShortcutLabel#

Constructor for SBGUIShortcutLabel .

explicit SBGUIShortcutLabel::SBGUIShortcutLabel (
    const QKeySequence & keySequence=QKeySequence(),
    QWidget * parent=nullptr
) 

Constructs an SBGUIShortcutLabel with an optional keyboard shortcut.

The label is initialized with a fixed height and displays the provided key sequence.

Parameters:

  • keySequence The keyboard shortcut to display. Defaults to an empty QKeySequence.
  • parent The parent widget for the label. Defaults to nullptr.

function setShortCut#

Sets the shortcut to be displayed on the label.

void SBGUIShortcutLabel::setShortCut (
    const QString & shortcut
) 

Sets the shortcut string to be displayed on the label.

The provided shortcut string is processed to replace special tokens for plus and minus signs, and then set as the label's text.

Parameters:

  • shortcut The shortcut string (e.g., "Ctrl+C" or "Alt+D").

function toPixmap#

Converts the label's content to a QPixmap.

QPixmap SBGUIShortcutLabel::toPixmap () const

Returns a pixmap representation of the label's current visual appearance.

This function creates a transparent pixmap of the label's size, renders the label onto it, and returns the resulting pixmap.

Returns:

A QPixmap containing the rendered label.


Public Static Functions Documentation#

function getMouseShortcut#

Converts a string describing a mouse shortcut to the MouseButton enum.

static MouseButton SBGUIShortcutLabel::getMouseShortcut (
    const QString & mouseShortcut
) 

Converts a textual mouse shortcut description to the corresponding MouseButton enum value.

This function parses a string such as "LEFT", "RIGHT", "MOUSE_LEFT_BUTTON", or a combination of such identifiers, and returns the combined MouseButton enumeration representing the mouse buttons.

Parameters:

  • mouseShortcut The textual description of the mouse shortcut (case-insensitive).

Returns:

The MouseButton enum representing the parsed mouse button(s). If the string does not match any known button, the function returns MouseButton::NONE.


Protected Functions Documentation#

function paintEvent#

Custom paint event handler.

void SBGUIShortcutLabel::paintEvent (
    QPaintEvent * event
) override

Handles the paint event to draw the shortcut representation.

This function custom-paints the label, drawing keycaps, plus symbols, and mouse icons according to the current shortcut text.

Parameters:

  • event The paint event that triggered the repaint.

function paintMouseIcon#

Paints a mouse icon on the provided rectangle within the QPainter context.

void SBGUIShortcutLabel::paintMouseIcon (
    QPainter & painter,
    const QRect & rectExt,
    const MouseButton & mouseShortcut
) 

Paints a mouse button icon within the specified rectangle.

The function draws the mouse outline, background, and individual button indicators based on the provided mouse shortcut flags.

Parameters:

  • painter The QPainter used for drawing.
  • rectExt The rectangle defining the area where the mouse icon should be drawn.
  • mouseShortcut The MouseButton flags indicating which mouse buttons are active.