📄 sidemenu.h
字号:
#ifndef SIDEMENU_H#define SIDEMENU_H#include <qpixmap.h>#include <qtimer.h>#include <qwidget.h>class SideMenuEntry;class SideMenuLabels;class SideMenu : public QWidget { Q_OBJECT public: SideMenu(int itemcnt, QWidget *parent= NULL, const char *name= NULL); ~SideMenu(); void setEntry(int index, int visible, int id, const QString &label, const QString &icon_name); void setEntryVisible(int index, bool visible); void setSelection(int index); virtual QSize sizeHint() const; void strobeHideTimer(); signals: void entryActivated(int id); void hideOn(); public slots: virtual void polish(); virtual void hide(); virtual void hideLabels(); virtual void showMenuAndLabels(); protected: virtual bool eventFilter(QObject *obj, QEvent *evt); virtual void paintEvent(QPaintEvent *evt); virtual void showEvent(QShowEvent *evt); virtual void hideEvent(QHideEvent *evt); virtual void mousePressEvent(QMouseEvent * e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); private: friend class SideMenuLabels; SideMenuEntry *m_entries; SideMenuLabels *m_labels; int m_cnt, m_selpos, m_visible_entries; QTimer m_hideTimer; QPixmap menu_key_icon; QPixmap m_label_mask; static int timeoutInterval; bool m_trigger; int visibleEntries() const; int posToVisiblePos(int pos) const; int visiblePosToPos(int vpos) const; void paintButtons(QPainter *p); void paintButtonsMask(QPainter *p); bool keyIconArea(int y); void selectLastEntry(); inline int yOffset() { return height() - sizeHint().height() - 1; }};class SideMenuLabels : public QWidget { Q_OBJECT public: SideMenuLabels(SideMenu *menu); void setSelection(int pos); void updateMask(); virtual QSize sizeHint() const; public slots: virtual void polish(); protected: virtual void showEvent(QShowEvent *evt); virtual void paintEvent(QPaintEvent *evt); virtual void mousePressEvent(QMouseEvent * e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual bool event(QEvent* e); private: SideMenuEntry *m_entries; SideMenu *m_menu; int m_selpos; bool m_trigger; QRect selectionArea() const; void drawLabels(QPainter *p) const; int lineHeight() const;};#endif // SIDEMENU_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -