12class RibbonStyleOptionPrivate
16 RibbonStyleOptionPrivate();
19 int groupOtherHeight();
20 void calc(
int baseHeight);
22 int m_baseHeight = 17;
25 int m_ribbonBarHeightOfficeStyleThreeRow;
26 int m_ribbonBarHeightWpsLiteStyleThreeRow;
27 int m_ribbonBarHeightOfficeStyleTwoRow;
28 int m_ribbonBarHeightWpsLiteStyleTwoRow;
31RibbonStyleOptionPrivate::RibbonStyleOptionPrivate()
36int RibbonStyleOptionPrivate::baseHeight()
38#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
39 int s = QApplication::fontMetrics().lineSpacing();
41 int s = QFontMetricsF(QApplication::font()).lineSpacing();
46int RibbonStyleOptionPrivate::groupOtherHeight()
48 int h = RibbonGroupLayout::groupContentsMargins().top() + RibbonGroupLayout::groupContentsMargins().bottom();
49 if (RibbonGroup::titleVisible()) {
50 return h + RibbonGroup::groupTitleHeight();
55void RibbonStyleOptionPrivate::calc(
int baseHeight)
57 m_baseHeight = baseHeight;
59 m_titleBarHeight = m_baseHeight * 1.65;
60 m_tabBarHeight = m_baseHeight * 1.5;
62 m_ribbonBarHeightOfficeStyleThreeRow = m_titleBarHeight + m_tabBarHeight + m_tabBarHeight * 3 + groupOtherHeight();
63 m_ribbonBarHeightWpsLiteStyleThreeRow = m_ribbonBarHeightOfficeStyleThreeRow - m_tabBarHeight;
64 m_ribbonBarHeightOfficeStyleTwoRow = m_ribbonBarHeightOfficeStyleThreeRow - m_tabBarHeight;
65 m_ribbonBarHeightWpsLiteStyleTwoRow = m_ribbonBarHeightOfficeStyleThreeRow - m_tabBarHeight - m_tabBarHeight;
68RibbonStyleOption::RibbonStyleOption()
73RibbonStyleOption::~RibbonStyleOption()
82 case RibbonBar::OfficeStyle:
83 return d->m_ribbonBarHeightOfficeStyleThreeRow;
84 case RibbonBar::WpsLiteStyle:
85 return d->m_ribbonBarHeightWpsLiteStyleThreeRow;
86 case RibbonBar::OfficeStyleTwoRow:
87 return d->m_ribbonBarHeightOfficeStyleTwoRow;
88 case RibbonBar::WpsLiteStyleTwoRow:
89 return d->m_ribbonBarHeightWpsLiteStyleTwoRow;
93 return d->m_ribbonBarHeightOfficeStyleThreeRow;
96int RibbonStyleOption::titleBarHeight()
const
99 return d->m_titleBarHeight;
102int RibbonStyleOption::tabBarHeight()
const
105 return d->m_tabBarHeight;
108void RibbonStyleOption::recalc()
111 d->calc(d->baseHeight());
116 QDebugStateSaver saver(debug);
118#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
119 int lineSpacing = QApplication::fontMetrics().lineSpacing();
121 int lineSpacing = QFontMetricsF(QApplication::font()).lineSpacing();
123 debug.nospace() <<
"fontMetrics.lineSpacing=" << lineSpacing
126 <<
"\n,ribbonBarHeight(OfficeStyle)=" << c.
ribbonBarHeight(RibbonBar::OfficeStyle)
127 <<
"\n,ribbonBarHeight(OfficeStyleTwoRow)=" << c.
ribbonBarHeight(RibbonBar::OfficeStyleTwoRow)
128 <<
"\n,ribbonBarHeight(WpsLiteStyle)=" << c.
ribbonBarHeight(RibbonBar::WpsLiteStyle)
129 <<
"\n,ribbonBarHeight(WpsLiteStyleTwoRow)=" << c.
ribbonBarHeight(RibbonBar::WpsLiteStyleTwoRow);
定义了 ribbon 所有尺寸相关信息,ribbon 的建立都基于此类的尺寸,如果想调整, 可以通过 RibbonFactory (通过 RibbonManager 单例管理) 的 RibbonFact...
virtual int titleBarHeight() const
virtual int ribbonBarHeight(RibbonBar::RibbonStyle s) const
virtual int tabBarHeight() const
QDebug operator<<(QDebug debug, const RibbonStyleOption &c)
#define QX_INIT_PRIVATE(Class)
#define QX_DECLARE_PUBLIC(Class)
#define QX_FINI_PRIVATE()
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE