首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新子部件的sizeHint

如何更新子部件的sizeHint
EN

Stack Overflow用户
提问于 2016-03-24 12:54:24
回答 1查看 1K关注 0票数 0

我有一个父小部件(重角形状),我想在它里面放置一个子小部件。孩子的位置应该是可配置的。当按下按钮时,会动态地将子部件添加到父部件中。当按下按钮时,会创建ChildWidget实例。

代码语言:javascript
复制
ChildWidget::ChildWidget(QWidget* pParent)
{
    setParent(pParent)

    show();

    SetChildPosition();

}

/*********** Protected methods ************/

void ChildWidget::paintEvent(QPaintEvent* pEvent)
{
   QPainter painter(this);
   painter.drawRect(0, 0, sizeHint().width() - 1, sizeHint().height() - 1);
   resize(sizeHint());

   QWidget::paintEvent(pEvent);
}

/*********** Private methods ************/

void ChildWidget::SetChildPosition()
{
   QPoint childPos = QPoint(parentWidget()->width() - sizeHint().width() - 5, 5);

   move(childPos);
}

在调用PaintEvent时,sizeHint()是正确的(绘制的矩形具有小部件的大小。但是,似乎sizeHint().width() = -1在"SetChildPosition“函数中。在我调用"SetChildPosition“之前,是否有任何方法更新该大小提示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-24 15:24:25

我用建议的布局解决了这个问题。

我在QGridLayout上放置了一个parentWidget,并将子小部件放在其中。然后,我使用“setColumnMinimumWidth”和“setRowMinimumHeight”的QGridLayout得到它在正确的像素坐标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36200712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档