SARibbon 2.2.3
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonToolButton::PrivateData类 参考

Public 成员函数

 PrivateData (SARibbonToolButton *p)
 
void updateStatusByMousePosition (const QPoint &pos)
 根据鼠标的位置更新状态,主要用于判断鼠标是否位于subcontrol
 
void updateDrawRect (const QStyleOptionToolButton &opt)
 更新绘图的几个关键尺寸
 
void updateSizeHint (const QStyleOptionToolButton &opt)
 更新sizehint
 
void calcDrawRects (const QStyleOptionToolButton &opt, QRect &iconRect, QRect &textRect, QRect &indicatorArrowRect, int spacing, int indicatorLen) const
 计算绘图的几个关键区域
 
void calcSmallButtonDrawRects (const QStyleOptionToolButton &opt, QRect &iconRect, QRect &textRect, QRect &indicatorArrowRect, int spacing, int indicatorLen) const
 计算小按钮模式下的绘制尺寸
 
void calcLargeButtonDrawRects (const QStyleOptionToolButton &opt, QRect &iconRect, QRect &textRect, QRect &indicatorArrowRect, int spacing, int indicatorLen) const
 计算大按钮模式下的绘制尺寸(普通)
 
QSize adjustIconSize (const QRect &buttonRect, const QSize &originIconSize) const
 适应iconsize
 
bool hasIndicator (const QStyleOptionToolButton &opt) const
 判断是否有Indicator
 
QSize calcSizeHint (const QStyleOptionToolButton &opt)
 计算sizehint
 
QSize calcSmallButtonSizeHint (const QStyleOptionToolButton &opt)
 
QSize calcLargeButtonSizeHint (const QStyleOptionToolButton &opt)
 
int calcTextDrawRectHeight (const QStyleOptionToolButton &opt) const
 计算文本高度
 
int estimateLargeButtonTextWidth (int buttonHeight, int textDrawRectHeight, const QString &text, const QFontMetrics &fm, float widthHeightRatio=SARIBBONTOOLBUTTON_WORDWRAP_WIDTH_PER_HEIGHT_RATIO, int maxTrycount=3)
 估算一个最优的文字尺寸,在可以换行的情况下会进行换行,且只会换一行
 
QPixmap createIconPixmap (const QStyleOptionToolButton &opt, const QSize &iconsize) const
 
int getTextAlignment () const
 
bool isTextNeedWrap () const
 确认文字是否确切要换行显示
 

静态 Public 成员函数

static QString simplified (const QString &str)
 仅仅对
进行剔除
 

Public 属性

bool mMouseOnSubControl { false }
 这个用于标记MenuButtonPopup模式下,鼠标在文本区域
 
bool mMenuButtonPressed { false }
 由于Indicator改变,因此hitButton不能用QToolButton的hitButton
 
bool mWordWrap { false }
 标记是否文字换行 @default false
 
SARibbonToolButton::RibbonButtonType mButtonType { SARibbonToolButton::LargeButton }
 
int mSpacing { 1 }
 按钮和边框的距离
 
int mIndicatorLen { 8 }
 Indicator的长度
 
QRect mDrawIconRect
 记录icon的绘制位置
 
QRect mDrawTextRect
 记录text的绘制位置
 
QRect mDrawIndicatorArrowRect
 记录IndicatorArrow的绘制位置
 
QSize mSizeHint
 保存计算好的sizehint
 
bool mIsTextNeedWrap { false }
 标记文字是否需要换行显示
 

静态 Public 属性

static bool s_enableWordWrap = false
 在lite模式下是否允许文字换行,如果允许,则图标相对比较小,默认不允许
 

成员函数说明

◆ adjustIconSize()

QSize SARibbonToolButton::PrivateData::adjustIconSize ( const QRect & buttonRect,
const QSize & originIconSize ) const

适应iconsize

参数
buttonRect
originIconSize
返回

◆ calcDrawRects()

void SARibbonToolButton::PrivateData::calcDrawRects ( const QStyleOptionToolButton & opt,
QRect & iconRect,
QRect & textRect,
QRect & indicatorArrowRect,
int spacing,
int indicatorLen ) const

计算绘图的几个关键区域

参数
opt
iconRect绘制图标的矩形区域
textRect绘制文本的矩形区域
indicatorArrowRect绘制菜单下箭头的矩形区域
spacing
indicatorLen

◆ calcLargeButtonDrawRects()

void SARibbonToolButton::PrivateData::calcLargeButtonDrawRects ( const QStyleOptionToolButton & opt,
QRect & iconRect,
QRect & textRect,
QRect & indicatorArrowRect,
int spacing,
int indicatorLen ) const

计算大按钮模式下的绘制尺寸(普通)

参数
opt
iconRect
textRect
indicatorArrowRect
spacing
indicatorLen

3行模式的图标比较大,文字换行情况下,indicator会动态调整

◆ calcLargeButtonSizeHint()

QSize SARibbonToolButton::PrivateData::calcLargeButtonSizeHint ( const QStyleOptionToolButton & opt)

Qt6.4 取消了QApplication::globalStrut

◆ calcSizeHint()

QSize SARibbonToolButton::PrivateData::calcSizeHint ( const QStyleOptionToolButton & opt)

计算sizehint

此函数非常关键,因为所有尺寸计算都是基于原始的rect来的

参数
opt
返回

◆ calcSmallButtonDrawRects()

void SARibbonToolButton::PrivateData::calcSmallButtonDrawRects ( const QStyleOptionToolButton & opt,
QRect & iconRect,
QRect & textRect,
QRect & indicatorArrowRect,
int spacing,
int indicatorLen ) const

计算小按钮模式下的绘制尺寸

参数
opt
iconRect
textRect
indicatorArrowRect
spacing
indicatorLen

◆ calcSmallButtonSizeHint()

QSize SARibbonToolButton::PrivateData::calcSmallButtonSizeHint ( const QStyleOptionToolButton & opt)

Qt6.4 取消了QApplication::globalStrut

◆ calcTextDrawRectHeight()

int SARibbonToolButton::PrivateData::calcTextDrawRectHeight ( const QStyleOptionToolButton & opt) const

计算文本高度

参数
opt
返回

◆ estimateLargeButtonTextWidth()

int SARibbonToolButton::PrivateData::estimateLargeButtonTextWidth ( int buttonHeight,
int textDrawRectHeight,
const QString & text,
const QFontMetrics & fm,
float widthHeightRatio = SARIBBONTOOLBUTTON_WORDWRAP_WIDTH_PER_HEIGHT_RATIO,
int maxTrycount = 3 )

估算一个最优的文字尺寸,在可以换行的情况下会进行换行,且只会换一行

参数
buttonHeight按钮的高度
textDrawRectHeight文本绘制的高度
fmQFontMetrics
widthHeightRatio宽高比,宽度/高度的比值,如果大于这个比值,则会进行尝试换行以获取更低的宽度
maxTrycount尝试次数
返回

< 建议的宽度

说明文字带有换行符,是用户手动换行,这种情况就直接返回字体尺寸,不进行估算

大于宽高比尝试进行文字换行 这里先对文本长度逐渐加长估算,一直到和原来长度一致为止

先计算两行文本的紧凑矩形 从一半开始逐渐递增 第1次为 w/2 + w/2 * (0/3) 第2次为 w/2 + w/2 * (1/3) 第3次为 w/2 + w/2 * (2/3)

说明是不换行

◆ hasIndicator()

bool SARibbonToolButton::PrivateData::hasIndicator ( const QStyleOptionToolButton & opt) const

判断是否有Indicator

参数
opt
返回

◆ isTextNeedWrap()

bool SARibbonToolButton::PrivateData::isTextNeedWrap ( ) const

确认文字是否确切要换行显示

返回

◆ simplified()

QString SARibbonToolButton::PrivateData::simplified ( const QString & str)
static

仅仅对
进行剔除

参数
str
返回

◆ updateDrawRect()

void SARibbonToolButton::PrivateData::updateDrawRect ( const QStyleOptionToolButton & opt)

更新绘图的几个关键尺寸

包括:

  • DrawIconRect 绘制图标的矩形区域
  • DrawTextRect 绘制文本的矩形区域
  • DrawIndicatorArrowRect 绘制菜单下箭头的矩形区域
参数
opt

◆ updateSizeHint()

void SARibbonToolButton::PrivateData::updateSizeHint ( const QStyleOptionToolButton & opt)

更新sizehint

参数
opt

◆ updateStatusByMousePosition()

void SARibbonToolButton::PrivateData::updateStatusByMousePosition ( const QPoint & pos)

根据鼠标的位置更新状态,主要用于判断鼠标是否位于subcontrol

此函数主要应用在action menu模式下

参数
pos

该类的文档由以下文件生成: