本文整理汇总了C++中QStyle::alignedRect方法的典型用法代码示例。如果您正苦于以下问题:C++ QStyle::alignedRect方法的具体用法?C++ QStyle::alignedRect怎么用?C++ QStyle::alignedRect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QStyle
的用法示例。
在下文中一共展示了QStyle::alignedRect方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: paint
/**
* @todo enable eliding (use QFontMetrics::elidedText() )
*/
void bicItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
// Background
QStyle *style = opt.widget ? opt.widget->style() : QApplication::style();
style->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget);
const int margin = style->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1;
const QRect textArea = QRect(opt.rect.x() + margin, opt.rect.y() + margin, opt.rect.width() - 2 * margin, opt.rect.height() - 2 * margin);
// Paint name
painter->save();
QFont smallFont = getSmallFont(opt);
QFontMetrics metrics(opt.font);
QFontMetrics smallMetrics(smallFont);
QRect nameRect = style->alignedRect(opt.direction, Qt::AlignBottom, QSize(textArea.width(), smallMetrics.lineSpacing()), textArea);
painter->setFont(smallFont);
style->drawItemText(painter, nameRect, Qt::AlignBottom, QApplication::palette(), true, index.model()->data(index, bicModel::InstitutionNameRole).toString(), option.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Mid);
painter->restore();
// Paint BIC
painter->save();
QFont normal = painter->font();
normal.setBold(true);
painter->setFont(normal);
QRect bicRect = style->alignedRect(opt.direction, Qt::AlignTop, QSize(textArea.width(), metrics.lineSpacing()), textArea);
const QString bic = index.model()->data(index, Qt::DisplayRole).toString();
style->drawItemText(painter, bicRect, Qt::AlignTop, QApplication::palette(), true, bic, option.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text);
painter->restore();
}
示例2: option
void K3b::DeviceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& optionOrig, const QModelIndex& index ) const
{
if ( index.data( K3b::DeviceModel::IsDevice ).toBool() ) {
painter->save();
painter->setRenderHint(QPainter::Antialiasing);
// HACK: we erase the branch
QStyleOptionViewItemV4 option( optionOrig );
option.rect.setLeft( 0 );
painter->fillRect( option.rect, option.palette.base() );
QStyle* style = QApplication::style();
const FontsAndMetrics fam( option.font );
const QPalette::ColorRole textRole = (option.state & QStyle::State_Selected) ?
QPalette::HighlightedText : QPalette::Text;
const QRect itemRect( option.rect.left() + fam.margin, option.rect.top() + fam.margin,
option.rect.width() - 2*fam.margin, option.rect.height() - 2*fam.margin );
const QSize iconSize( itemRect.height(), itemRect.height() );
const QSize mediumSize( itemRect.width() - iconSize.width() - fam.margin,
itemRect.height() - fam.spacing - fam.deviceFontM.height() );
const QSize devicemSize( itemRect.width() - iconSize.width() - fam.margin,
itemRect.height() - fam.spacing - fam.mediumFontM.height() );
const QRect iconRect = style->alignedRect( option.direction, Qt::AlignLeft | Qt::AlignVCenter, iconSize, itemRect );
const QRect mediumRect = style->alignedRect( option.direction, Qt::AlignRight | Qt::AlignTop, mediumSize, itemRect );
const QRect deviceRect = style->alignedRect( option.direction, Qt::AlignRight | Qt::AlignBottom, devicemSize, itemRect );
// draw background
style->drawPrimitive( QStyle::PE_PanelItemViewItem, &option, painter );
// draw decoration
QPixmap pixmap = decoration( option, index, iconSize );
painter->drawPixmap( iconRect, pixmap );
// draw medium text
painter->setFont( fam.mediumFont );
QString text = index.data( Qt::DisplayRole ).toString();
style->drawItemText( painter, mediumRect, option.displayAlignment, option.palette,
option.state & QStyle::State_Enabled,
fam.mediumFontM.elidedText( text, option.textElideMode, mediumRect.width() ),
textRole );
// draw fixed device text
painter->setFont( fam.deviceFont );
text = index.data( K3b::DeviceModel::Vendor ).toString() + " - " + index.data( K3b::DeviceModel::Description ).toString();
style->drawItemText( painter, deviceRect, option.displayAlignment, option.palette,
option.state & QStyle::State_Enabled,
fam.deviceFontM.elidedText( text, option.textElideMode, deviceRect.width() ),
textRole );
painter->restore();
}
else {
KFileItemDelegate::paint( painter, optionOrig, index );
}
}
示例3: paint
/** @todo elide texts */
void ibanBicItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
// Background
QStyle *style = opt.widget ? opt.widget->style() : QApplication::style();
style->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget);
const int margin = style->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1;
const QRect textArea = QRect(opt.rect.x() + margin, opt.rect.y() + margin, opt.rect.width() - 2 * margin, opt.rect.height() - 2 * margin);
// Do not paint text if the edit widget is shown
const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(opt.widget);
if (view && view->indexWidget(index))
return;
// Get data
payeeIdentifierTyped<payeeIdentifiers::ibanBic> ibanBic = ibanBicByIndex(index);
// Paint Bic
painter->save();
const QFont smallFont = painter->font();
const QFontMetrics metrics(opt.font);
const QFontMetrics smallMetrics(smallFont);
const QRect bicRect = style->alignedRect((opt.direction == Qt::RightToLeft) ? Qt::LeftToRight : Qt::RightToLeft, Qt::AlignTop, QSize(textArea.width(), smallMetrics.lineSpacing()),
QRect(textArea.left(), metrics.lineSpacing() + textArea.top(), textArea.width(), smallMetrics.lineSpacing())
);
painter->setFont(smallFont);
style->drawItemText(painter, bicRect, Qt::AlignBottom | Qt::AlignRight, QApplication::palette(), true, ibanBic->storedBic(), opt.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text);
painter->restore();
// Paint Bank name
painter->save();
const QRect nameRect = style->alignedRect(opt.direction, Qt::AlignTop, QSize(textArea.width(), smallMetrics.lineSpacing()),
QRect(textArea.left(), metrics.lineSpacing() + textArea.top(), textArea.width(), smallMetrics.lineSpacing())
);
style->drawItemText(painter, nameRect, Qt::AlignBottom, QApplication::palette(), true, ibanBic->institutionName(), opt.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text);
painter->restore();
// Paint IBAN
painter->save();
QFont normal = painter->font();
normal.setBold(true);
painter->setFont(normal);
const QRect ibanRect = style->alignedRect(opt.direction, Qt::AlignTop, QSize(textArea.width(), metrics.lineSpacing()), textArea);
const QString bic = index.model()->data(index, Qt::DisplayRole).toString();
style->drawItemText(painter, ibanRect, Qt::AlignTop, QApplication::palette(), true, ibanBic->paperformatIban(), opt.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text);
painter->restore();
// Paint type
painter->save();
QRect typeRect = style->alignedRect(opt.direction, Qt::AlignTop | Qt::AlignRight, QSize(textArea.width() / 5, metrics.lineSpacing()), textArea);
style->drawItemText(painter, typeRect, Qt::AlignTop | Qt::AlignRight, QApplication::palette(), true, i18n("IBAN & BIC"), opt.state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text);
painter->restore();
}