99 Q_PROPERTY(RibbonStyles ribbonStyle READ currentRibbonStyle WRITE setRibbonStyle)
100 Q_PROPERTY(
bool minimumMode READ isMinimumMode WRITE setMinimumMode)
101 Q_PROPERTY(
bool minimumModeButton READ haveShowMinimumModeButton WRITE showMinimumModeButton)
102 Q_PROPERTY(QColor windowTitleTextColor READ windowTitleTextColor WRITE setWindowTitleTextColor)
103 Q_PROPERTY(QColor tabBarBaseLineColor READ tabBarBaseLineColor WRITE setTabBarBaseLineColor)
104 Q_PROPERTY(Qt::Alignment windowTitleAligment READ windowTitleAligment WRITE setWindowTitleAligment)
105 Q_PROPERTY(
bool enableWordWrap READ isEnableWordWrap WRITE setEnableWordWrap)
106 Q_PROPERTY(
bool enableShowPanelTitle READ isEnableShowPanelTitle WRITE setEnableShowPanelTitle)
107 Q_PROPERTY(
bool tabOnTitle READ isTabOnTitle WRITE setTabOnTitle)
113 RibbonStyleLoose = 0x0001,
114 RibbonStyleCompact = 0x0002,
115 RibbonStyleThreeRow = 0x0010,
116 RibbonStyleTwoRow = 0x0020,
118 RibbonStyleLooseThreeRow = RibbonStyleLoose | RibbonStyleThreeRow,
119 RibbonStyleCompactThreeRow = RibbonStyleCompact | RibbonStyleThreeRow,
120 RibbonStyleLooseTwoRow = RibbonStyleLoose | RibbonStyleTwoRow,
121 RibbonStyleCompactTwoRow = RibbonStyleCompact | RibbonStyleTwoRow
123 Q_ENUM(RibbonStyleFlag)
124 Q_DECLARE_FLAGS(RibbonStyles, RibbonStyleFlag)
138 using FpPanelIterate = SARibbonCategory::FpPanelIterate;
146 static bool isTwoRowStyle(RibbonStyles s);
147 static bool isThreeRowStyle(RibbonStyles s);
149 static bool isLooseStyle(RibbonStyles s);
150 static bool isCompactStyle(RibbonStyles s);
152 static QString versionString();
155 static QList< QColor > defaultContextCategoryColorList();
158 static void initHighDpi();
165 QAbstractButton* applicationButton();
168 void setApplicationButton(QAbstractButton* btn);
178 Q_INVOKABLE
void addCategoryPage(QWidget* category);
206 void moveCategory(
int from,
int to);
209 QList< SARibbonCategory* > categoryPages(
bool getAll =
true)
const;
216 addContextCategory(
const QString& title,
const QColor& color = QColor(),
const QVariant&
id = QVariant());
232 QList< SARibbonContextCategory* > contextCategoryList()
const;
238 QList< int > currentVisibleContextCategoryTabIndexs()
const;
241 void setMinimumMode(
bool isHide);
244 bool isMinimumMode()
const;
247 void showMinimumModeButton(
bool isShow =
true);
250 bool haveShowMinimumModeButton()
const;
253 QAction* minimumModeAction()
const;
256 bool isEnableTabDoubleClickToMinimumMode()
const;
257 void setTabDoubleClickToMinimumMode(
bool on =
true)
const;
263 int tabBarHeight()
const;
264 void setTabBarHeight(
int h,
bool resizeByNow =
true);
267 int titleBarHeight()
const;
268 void setTitleBarHeight(
int h,
bool resizeByNow =
true);
271 int categoryHeight()
const;
272 void setCategoryHeight(
int h,
bool resizeByNow =
true);
275 int normalModeMainBarHeight()
const;
278 int minimumModeMainBarHeight()
const;
296 void setRibbonStyle(RibbonStyles v);
297 RibbonStyles currentRibbonStyle()
const;
300 void setCurrentIndex(
int index);
309 bool isTwoRowStyle()
const;
310 bool isThreeRowStyle()
const;
313 bool isLooseStyle()
const;
314 bool isCompactStyle()
const;
317 void updateRibbonGeometry();
324 void setTabOnTitle(
bool on);
325 bool isTabOnTitle()
const;
328 void setTabBarBaseLineColor(
const QColor& clr);
329 QColor tabBarBaseLineColor()
const;
332 void setWindowTitleTextColor(
const QColor& clr);
333 QColor windowTitleTextColor()
const;
336 void setTitleVisible(
bool on =
false);
337 bool isTitleVisible()
const;
340 void setWindowTitleBackgroundBrush(
const QBrush& bk);
341 QBrush windowTitleBackgroundBrush()
const;
344 void setWindowTitleAligment(Qt::Alignment al);
345 Qt::Alignment windowTitleAligment()
const;
348 void setEnableWordWrap(
bool on);
349 bool isEnableWordWrap()
const;
352 void setButtonMaximumAspectRatio(qreal fac = 1.4);
353 qreal buttonMaximumAspectRatio()
const;
356 int panelTitleHeight()
const;
357 void setPanelTitleHeight(
int h);
360 bool isEnableShowPanelTitle()
const;
361 void setEnableShowPanelTitle(
bool on);
364 void setPanelSpacing(
int n);
365 int panelSpacing()
const;
368 void setPanelToolButtonIconSize(
const QSize& s);
369 QSize panelToolButtonIconSize()
const;
375 void setContextCategoryColorList(
const QList< QColor >& cls);
376 QList< QColor > contextCategoryColorList()
const;
379 void setContextCategoryTitleTextColor(
const QColor& clr);
380 QColor contextCategoryTitleTextColor()
const;
386 void setRibbonAlignment(SARibbonAlignment al);
387 SARibbonAlignment ribbonAlignment()
const;
390 bool iterateCategory(FpCategoryIterate fp)
const;
392 bool iteratePanel(FpPanelIterate fp)
const;
395 void setCornerWidgetVisible(
bool on, Qt::Corner c = Qt::TopLeftCorner);
398 QList< QAction* > allActions()
const;
400 bool isUseRibbonFrame()
const;
442 bool eventFilter(QObject* obj, QEvent* e)
override;
444 int calcMinTabBarWidth()
const;
446 void updateCategoryTitleToTabName();
448 void setSystemButtonGroupSize(
const QSize& s);
450 void setMainWindowStyles(SARibbonMainWindowStyles s);
452 void onWindowTitleChanged(
const QString& title);
453 void onWindowIconChanged(
const QIcon& i);
454 void onCategoryWindowTitleChanged(
const QString& title);
455 void onStackWidgetHided();
456 virtual void onCurrentRibbonTabChanged(
int index);
457 virtual void onCurrentRibbonTabClicked(
int index);
458 virtual void onCurrentRibbonTabDoubleClicked(
int index);
460 void onContextsCategoryCategoryNameChanged(
SARibbonCategory* category,
const QString& title);
461 void onTabMoved(
int from,
int to);
465 void paintInLooseStyle();
466 void paintInCompactStyle();
469 void updateContextCategoryManagerData();
470 void synchronousCategoryData(
bool autoUpdate =
true);
472 QString toDisplayTitleText(
const QString& title)
const;
474 QRect getWindowTitleRect()
const;
477 void setRibbonMainwindowStyle();
478 virtual void paintEvent(QPaintEvent* e)
override;
479 virtual void moveEvent(QMoveEvent* e)
override;
480 virtual void changeEvent(QEvent* e)
override;
482 virtual void paintTabbarBaseLine(QPainter& painter);
483 virtual void paintWindowTitle(QPainter& painter,
const QString& title,
const QRect& titleRegion);
485 paintContextCategoryTab(QPainter& painter,
const QString& title,
const QRect& contextRect,
const QColor& color);
486#if SA_DEBUG_PRINT_SARIBBONBAR
487 SA_RIBBON_EXPORT
friend QDebug operator<<(QDebug debug,
const SARibbonBar& ribbon);
管理上下文标签的类
Definition SARibbonContextCategory.h:11
如果要使用SARibbonBar,必须使用此类代替QMainWindow
Definition SARibbonMainWindow.h:60