本文整理汇总了C++中QWidget::heightForWidth方法的典型用法代码示例。如果您正苦于以下问题:C++ QWidget::heightForWidth方法的具体用法?C++ QWidget::heightForWidth怎么用?C++ QWidget::heightForWidth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QWidget
的用法示例。
在下文中一共展示了QWidget::heightForWidth方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateSize
void ItemWidget::updateSize(const QSize &maximumSize, int idealWidth)
{
QWidget *w = widget();
w->setMaximumSize(maximumSize);
const int idealHeight = w->heightForWidth(idealWidth);
const int maximumHeight = w->heightForWidth(maximumSize.width());
if (idealHeight <= 0 && maximumHeight <= 0)
w->resize(w->sizeHint());
else if (idealHeight != maximumHeight)
w->setFixedSize( maximumSize.width(), maximumHeight );
else
w->setFixedSize(idealWidth, idealHeight);
}
示例2: eventFilter
bool eventFilter(QObject* obj, QEvent* event) override
{
// check input
if (event->type() != QEvent::MouseButtonDblClick)
return false;
QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
if (mouseEvent->button() != Qt::LeftButton)
return false;
QSplitterHandle* splitterHandle = qobject_cast<QSplitterHandle*>(obj);
if (!splitterHandle)
return false;
QSplitter* splitter = splitterHandle->splitter();
if (!splitter || splitter->count() < 2)
return false;
// change splitter sizes to make description panel occupy ideal height
QWidget* bottomWidget = splitter->widget(1);
QList<int> sizes = splitter->sizes();
if (sizes.size() != 2)
return false;
sizes[0] += sizes[1];
sizes[1] = bottomWidget->heightForWidth(bottomWidget->size().width());
sizes[0] -= qMax(sizes[1], 0);
splitter->setSizes(sizes);
return true;
}
示例3: heightForWidth
int QWidgetProto::heightForWidth(int w) const
{
QWidget *item = qscriptvalue_cast<QWidget*>(thisObject());
if (item)
return item->heightForWidth(w);
return 0;
}