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 setTitleIconVisible(
bool on =
true);
298 bool isTitleIconVisible()
const;
301 void setRibbonStyle(RibbonStyles v);
302 RibbonStyles currentRibbonStyle()
const;
305 void setCurrentIndex(
int index);
314 bool isTwoRowStyle()
const;
315 bool isThreeRowStyle()
const;
318 bool isLooseStyle()
const;
319 bool isCompactStyle()
const;
322 void updateRibbonGeometry();
329 void setTabOnTitle(
bool on);
330 bool isTabOnTitle()
const;
333 void setTabBarBaseLineColor(
const QColor& clr);
334 QColor tabBarBaseLineColor()
const;
337 void setWindowTitleTextColor(
const QColor& clr);
338 QColor windowTitleTextColor()
const;
341 void setTitleVisible(
bool on =
false);
342 bool isTitleVisible()
const;
345 void setWindowTitleBackgroundBrush(
const QBrush& bk);
346 QBrush windowTitleBackgroundBrush()
const;
349 void setWindowTitleAligment(Qt::Alignment al);
350 Qt::Alignment windowTitleAligment()
const;
353 void setEnableWordWrap(
bool on);
354 bool isEnableWordWrap()
const;
357 void setButtonMaximumAspectRatio(qreal fac = 1.4);
358 qreal buttonMaximumAspectRatio()
const;
361 void setPanelTitleHeight(
int h);
362 int panelTitleHeight()
const;
365 void setEnableShowPanelTitle(
bool on);
366 bool isEnableShowPanelTitle()
const;
369 void setPanelSpacing(
int n);
370 int panelSpacing()
const;
373 void setPanelToolButtonIconSize(
const QSize& smallSize,
const QSize& largeSize);
374 QPair< QSize, QSize > panelToolButtonIconSize()
const;
377 void setPanelLargeIconSize(
const QSize& largeSize);
378 QSize panelLargeIconSize()
const;
381 void setPanelSmallIconSize(
const QSize& smallSize);
382 QSize panelSmallIconSize()
const;
388 void setContextCategoryColorList(
const QList< QColor >& cls);
389 QList< QColor > contextCategoryColorList()
const;
392 void setContextCategoryTitleTextColor(
const QColor& clr);
393 QColor contextCategoryTitleTextColor()
const;
399 void setRibbonAlignment(SARibbonAlignment al);
400 SARibbonAlignment ribbonAlignment()
const;
403 bool iterateCategory(FpCategoryIterate fp)
const;
405 bool iteratePanel(FpPanelIterate fp)
const;
408 void setCornerWidgetVisible(
bool on, Qt::Corner c = Qt::TopLeftCorner);
411 void setApplicationButtonVerticalExpansion(
bool on =
true);
412 bool isApplicationButtonVerticalExpansion()
const;
415 QList< QAction* > allActions()
const;
417 bool isUseRibbonFrame()
const;
459 bool eventFilter(QObject* obj, QEvent* e)
override;
461 int calcMinTabBarWidth()
const;
463 void updateCategoryTitleToTabName();
465 void setSystemButtonGroupSize(
const QSize& s);
467 void setMainWindowStyles(SARibbonMainWindowStyles s);
469 void onWindowTitleChanged(
const QString& title);
470 void onWindowIconChanged(
const QIcon& i);
471 void onCategoryWindowTitleChanged(
const QString& title);
472 void onStackWidgetHided();
473 virtual void onCurrentRibbonTabChanged(
int index);
474 virtual void onCurrentRibbonTabClicked(
int index);
475 virtual void onCurrentRibbonTabDoubleClicked(
int index);
477 void onContextsCategoryCategoryNameChanged(
SARibbonCategory* category,
const QString& title);
478 void onTabMoved(
int from,
int to);
482 void paintInLooseStyle();
483 void paintInCompactStyle();
486 void updateContextCategoryManagerData();
487 void synchronousCategoryData(
bool autoUpdate =
true);
489 QString toDisplayTitleText(
const QString& title)
const;
491 QRect getWindowTitleRect()
const;
494 void setRibbonMainwindowStyle();
495 virtual void paintEvent(QPaintEvent* e)
override;
496 virtual void moveEvent(QMoveEvent* e)
override;
497 virtual void changeEvent(QEvent* e)
override;
499 virtual void paintTabbarBaseLine(QPainter& painter);
500 virtual void paintWindowTitle(QPainter& painter,
const QString& title,
const QRect& titleRegion);
502 paintContextCategoryTab(QPainter& painter,
const QString& title,
const QRect& contextRect,
const QColor& color);
503#if SA_DEBUG_PRINT_SARIBBONBAR
504 SA_RIBBON_EXPORT
friend QDebug operator<<(QDebug debug,
const SARibbonBar& ribbon);
管理上下文标签的类
Definition SARibbonContextCategory.h:11
如果要使用SARibbonBar,必须使用此类代替QMainWindow
Definition SARibbonMainWindow.h:60