本文整理汇总了C++中QWidget::getContentsMargins方法的典型用法代码示例。如果您正苦于以下问题:C++ QWidget::getContentsMargins方法的具体用法?C++ QWidget::getContentsMargins怎么用?C++ QWidget::getContentsMargins使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QWidget
的用法示例。
在下文中一共展示了QWidget::getContentsMargins方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findScrollParent
void EmbeddedWebView::findScrollParent()
{
if (m_scrollParent)
m_scrollParent->removeEventFilter(this);
m_scrollParent = 0;
m_scrollParentPadding = 4;
QWidget *runner = this;
int left, top, right, bottom;
while (runner) {
runner->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
runner->getContentsMargins(&left, &top, &right, &bottom);
m_scrollParentPadding += left + right + 4;
if (runner->layout()) {
runner->layout()->getContentsMargins(&left, &top, &right, &bottom);
m_scrollParentPadding += left + right;
}
QWidget *p = runner->parentWidget();
if (p && qobject_cast<MessageView*>(runner) && // is this a MessageView?
p->objectName() == "qt_scrollarea_viewport" && // in a viewport?
qobject_cast<QAbstractScrollArea*>(p->parentWidget())) { // that is used?
p->getContentsMargins(&left, &top, &right, &bottom);
m_scrollParentPadding += left + right + 4;
if (p->layout()) {
p->layout()->getContentsMargins(&left, &top, &right, &bottom);
m_scrollParentPadding += left + right;
}
m_scrollParent = p->parentWidget();
break; // then we have our actual message view
}
runner = p;
}
m_scrollParentPadding += style()->pixelMetric(QStyle::PM_ScrollBarExtent, 0, m_scrollParent);
if (m_scrollParent)
m_scrollParent->installEventFilter(this);
}
示例2: resizePopup
// -------------------------------------------------------------------------
void ctkTreeComboBox::resizePopup()
{
// copied from QComboBox.cpp
Q_D(ctkTreeComboBox);
QStyle * const style = this->style();
QWidget* container = qobject_cast<QWidget*>(this->view()->parent());
QStyleOptionComboBox opt;
this->initStyleOption(&opt);
QRect listRect(style->subControlRect(QStyle::CC_ComboBox, &opt,
QStyle::SC_ComboBoxListBoxPopup, this));
QRect screen = QApplication::desktop()->availableGeometry(
QApplication::desktop()->screenNumber(this));
QPoint below = this->mapToGlobal(listRect.bottomLeft());
int belowHeight = screen.bottom() - below.y();
QPoint above = this->mapToGlobal(listRect.topLeft());
int aboveHeight = above.y() - screen.y();
bool boundToScreen = !this->window()->testAttribute(Qt::WA_DontShowOnScreen);
const bool usePopup = style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this);
{
int listHeight = 0;
int count = 0;
QStack<QModelIndex> toCheck;
toCheck.push(this->view()->rootIndex());
#ifndef QT_NO_TREEVIEW
QTreeView *treeView = qobject_cast<QTreeView*>(this->view());
if (treeView && treeView->header() && !treeView->header()->isHidden())
listHeight += treeView->header()->height();
#endif
while (!toCheck.isEmpty())
{
QModelIndex parent = toCheck.pop();
for (int i = 0; i < this->model()->rowCount(parent); ++i)
{
QModelIndex idx = this->model()->index(i, this->modelColumn(), parent);
if (!idx.isValid())
{
continue;
}
listHeight += this->view()->visualRect(idx).height(); /* + container->spacing() */;
#ifndef QT_NO_TREEVIEW
if (this->model()->hasChildren(idx) && treeView && treeView->isExpanded(idx))
{
toCheck.push(idx);
}
#endif
++count;
if (!usePopup && count > this->maxVisibleItems())
{
toCheck.clear();
break;
}
}
}
listRect.setHeight(listHeight);
}
{
// add the spacing for the grid on the top and the bottom;
int heightMargin = 0;//2*container->spacing();
// add the frame of the container
int marginTop, marginBottom;
container->getContentsMargins(0, &marginTop, 0, &marginBottom);
heightMargin += marginTop + marginBottom;
//add the frame of the view
this->view()->getContentsMargins(0, &marginTop, 0, &marginBottom);
//marginTop += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(this->view()))->top;
//marginBottom += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(this->view()))->bottom;
heightMargin += marginTop + marginBottom;
listRect.setHeight(listRect.height() + heightMargin);
}
// Add space for margin at top and bottom if the style wants it.
if (usePopup)
{
listRect.setHeight(listRect.height() + style->pixelMetric(QStyle::PM_MenuVMargin, &opt, this) * 2);
}
// Make sure the popup is wide enough to display its contents.
if (usePopup)
{
const int diff = d->computeWidthHint() - this->width();
if (diff > 0)
{
listRect.setWidth(listRect.width() + diff);
}
}
//we need to activate the layout to make sure the min/maximum size are set when the widget was not yet show
container->layout()->activate();
//takes account of the minimum/maximum size of the container
listRect.setSize( listRect.size().expandedTo(container->minimumSize())
.boundedTo(container->maximumSize()));
// make sure the widget fits on screen
//.........这里部分代码省略.........
示例3: getContentsMargins
void QWidgetProto::getContentsMargins(int *left, int * top, int * right, int * bottom) const
{
QWidget *item = qscriptvalue_cast<QWidget*>(thisObject());
if (item)
item->getContentsMargins(left, top, right, bottom);
}