本文整理汇总了C++中QAbstractItemView::contentsMargins方法的典型用法代码示例。如果您正苦于以下问题:C++ QAbstractItemView::contentsMargins方法的具体用法?C++ QAbstractItemView::contentsMargins怎么用?C++ QAbstractItemView::contentsMargins使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QAbstractItemView
的用法示例。
在下文中一共展示了QAbstractItemView::contentsMargins方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _q_recomputeCompleterPopupSize
//-----------------------------------------------------------------------------
void ctkPathLineEditPrivate::_q_recomputeCompleterPopupSize()
{
QSize lineEditSize = this->LineEdit->size();
QAbstractItemView* view = this->LineEdit->completer()->popup();
const QFontMetrics& fm = view->fontMetrics();
int iconWidth = 0;
int textWidth = 0;
QStyleOptionFrame option;
int frameWidth = view->style()->pixelMetric(QStyle::PM_DefaultFrameWidth, &option, view);
int frame = 2 * frameWidth
+ view->contentsMargins().left()
+ view->contentsMargins().right();
QAbstractItemModel* model = this->LineEdit->completer()->completionModel();
for (int i = 0; i < model->rowCount(); ++i)
{
QVariant icon = model->data(model->index(i, 0), Qt::DecorationRole);
if (icon.isValid() && icon.canConvert<QIcon>())
{
iconWidth = qMax(iconWidth, icon.value<QIcon>().availableSizes().front().width() + 4);
}
textWidth = qMax(textWidth, fm.boundingRect(model->data(model->index(i, 0)).toString()).width());
}
view->setMinimumWidth(qMax(frame + iconWidth + textWidth, lineEditSize.width()));
}